Docker Containers
Contenedores
- Un contenedor consta de un entorno de ejecución completo: una aplicación, más todas sus dependencias, bibliotecas y otros archivos binarios y de configuración necesarios para ejecutarlo, agrupados en un solo paquete.
Software Testing
Humanos (imperfectos) desarrollando/utilizando software (perfecto)
- Al ser humanos por naturaleza cometemos errores.
- El Software a construir es cada vez más especializado y complejo, así como los requerimientos para su desarrollo y construcción.
- Desarrolladores introducen bugs/errors en la programación.
- Ineficiente análisis, diseño, interpetración y construcción.
- El usuario final no tiene un completo conocimiento del uso del Software (Plataforma/App/WebApp).
- Se efectua un uso incorrecto del Software (Maliciosamente).
- Se estresa el Software en condiciones para las cuales no fue diseñado.
- Diferentes setups y ambientes
Logs for Development
Evaluación de librerías para logs
- Considerar los mecanismos o protocolos de transporte:
- File
- Console
- Syslog
- HTTP
- Stream
- Buscar siempre que el mecanismo de logging sea de forma asíncrona
- Para el tema en particular de desarrollo fullstack (dependiendo del stack) considerar en la manera de lo posible que la librería corra sobre el stack completo.
- Buscar que la librería pueda integrarse con otros servicios o mecanismos de logging para cuestiones cómo: Persistencia, Búsqueda o Rastreo, Centralización, Agregación.
- Loggly
- Elasticsearch - Logstash - Kibana
Git Workflow
Reglas
- Se trabaja sobre un branch por feature / bug de JIRA
- El nombre del branch es el mismo del feature / bug que ataca
- Una vez terminado se debe hacer un merge sobre master
- Durante el desarrollo del feature / bug se debe de hacer rebase
- Al terminar el desarrollo se debe hacer un merge
- los rebases se deben de hacer al menos una vez al día
- Se debe hacer push sobre el branch dos veces al día mínimo