El término DevOps, que es una combinación de los términos ingleses development (desarrollo) y operations (operaciones),
Designa la unión de personas, procesos y tecnología para ofrecer valor a los clientes de forma constante.
Planificación: se definen los requisitos y valores empresariales
Codificación: implica el diseño del software y la creación del código
Construcción: se gestionan las versiones y las compilaciones del software,
Pruebas: es la realización de pruebas continuas (manuales o automatizadas) para garantizar la calidad de la programación.
Lanzamiento: se emplean herramientas que ayudan a gestionar, coordinar, programar y automatizar las tareas de producción de las versiones de productos
Operación: gestiona el software durante su producción
Monitoreo: identifica y recopila información sobre problemas que surgen en una versión de software específica que se encuentra en producción
Continuous Intregration: Es el continuo proceso de unir nuevo codigo/caracteristica a un repositorio centralizado, donde se pueden encontrar problemas de una manera facil
DevSecOps: Forma de union entre desarrolladores, seguridad y operacion
QAOps: Es la union entre QA y Operaciones
NoOps: Es un caso donde ya no se necesita el equipo de operaciones, Los quipos deben ser capaces de autoorganizarse para desplegar
DataOps: Es la union de Data Scientist y el equipo de operaciones
Continuous Delivery: es un enfoque en ingeneria de software en el cual los equipos producen software en un ciclo corto y se asegura que pueda ser lanzado en cualquier momento
Planificación: Algunas herramientas de muestra son Jira o Git
Codificación: Algunas herramientas de muestra son GitHub, GitLab, Bitbucket o Stash.
Construcción: Algunas herramientas de muestra son Docker, Ansible, Puppet, Chef, Gradle, Maven o JFrog Artifactory.
Pruebas: Algunas herramientas de muestra son JUnit, Codeception, Selenium, Vagrant, TestNG o BlazeMeter.
Lanzamiento: Algunas herramientas de muestra son Puppet, Chef, Ansible, Jenkins, Kubernetes, OpenShift, OpenStack, Docker o Jira.
Operación: Algunas herramientas de muestra son Ansible, Puppet, PowerShell, Chef, Salt o Otter.
Monitoreo: Algunas herramientas de muestra son New Relic, Datadog, Grafana, Wireshark, Splunk, Nagios o Slack.
Ventajas
Reducción del tiempo de comercialización
Reducción del tiempo de comercialización
Adaptación al mercado y a la competencia
Mantenimiento de la estabilidad y la confiabilidad del sistema
Mejora del tiempo medio de recuperación
La entrega continua es una práctica de desarrollo de software mediante la cual se compilan, prueban y preparan automáticamente los cambios en el código y se entregan a la fase de producción.
Microservicios: es un enfoque de diseño que sirve para crear una sola aplicación como conjunto de servicios pequeños.
Cultura DevOps
Colaboración, visibilidad y alineamiento: se distingue, entre otras cosas, por la colaboración entre los equipos
Cambios en el ámbito y en la responsabilidad: los equipos se alinean, asumen y participan en más fases del ciclo de vida
Ciclos de lanzamiento de versiones más cortos: mantienen la agilidad porque lanzan versiones de software en ciclos cortos
Aprendizaje continuo: establecen una mentalidad de crecimiento. Aceptan el fracaso y responden rápido a los errores