DevOps
Pedro Antonio Esclante Martinez
Instituto Tecnologico de Nogales
DEVOPS
¿Qué es DevOps?
DevOps, es una práctica de ingeniería de software que tiene como objetivo unificar el
desarrollo de software (Dev) y la operación del software (Ops). La principal característica del
movimiento DevOps es defender enérgicamente la automatización y el monitoreo en todos los
pasos de la construcción del software, desde la integración, las pruebas, la liberación hasta la
implementación y la administración de la infraestructura. DevOps apunta a ciclos de desarrollo
más cortos, mayor frecuencia de implementación, lanzamientos más confiables, en estrecha
alineación con los objetivos comerciales.
Ciclo de vida
1. Plan
Sin importar la metodología que uses como Waterfall o Agile, en esta primera etapa
definimos las labores del equipo, los requerimientos necesarios a implementar en la plataforma o
producto.
Podemos hacer usos de herramientas como issues para hacer un monitoreo de nuestro
progreso, así como boards como Trello o Asana.
2. Create
Empezamos a escribir el código que necesitamos para resolver los problemas que
planteamos en el paso anterior.
Todo este código puede estar almacenado en un solo lugar como un repositorio de Github
o Gitlab para hacer uso de herramientas proporcionadas por estas páginas y por git en general
como branchs, tags y mucho más
DEVOPS
3. Verify
Como somos desarrolladores increíbles, hemos escritos diferentes pruebas de software
para disminuir la cantidad de bugs que podemos agregar a nuestro producto una vez estemos en
producción, también es una manera de descubrir errores. Estas pruebas son definidas con
antelación.
Se pueden usar varias herramientas de Continuous Integration como TravisCI, CircleCI o
Jenkins
4. Package
Empaquetamos nuestro código para correr en una infraestructura determinada. Esto
puede hacerse incluso desde la etapa de creación donde escribimos nuestro código de una forma
empaquetada y lista para que sea llevada a producción para no tener complicaciones y dolores de
cabeza en el futuro.
Es muy común realizarlo en contenedores de Docker.
5. Release
Automatizamos el proceso de enviar el código a producción, liberar una nueva versión de
nuestro producto cada vez que construyamos un feature nuevo o resolvamos un bug mientras
haya pasado por las etapas anteriores.
No es más que una nueva versión de nuestro código disponible para hacerlo de manera
manual o automática.
6. Configure
Configuramos nuestra aplicación e infraestructura ya en la nube, protegemos contraseñas
y toda la información para iniciar sesión mediante archivos .env o variables de entornos que
DEVOPS
pueden ser configuradas desde el panel de control de nuestra cloud provider o directamente
desde la línea de comandos o shell
Se puede cambiar nuestro cluster de Kubernetes y le damos nuevas instrucciones para
manejar el estado de nuestra aplicación.
7. Monitor
Necesitamos revisar las métricas necesarias de cómo nuestro código está funcionando,
qué tipo de performance ocurre en los dispositivos de nuestros clientes para tratar de optimizar
siempre que sea posible y mejorar nuestro producto.
Al ser un modelo iterativo es importante estar siempre en este constante proceso, no
podemos dar nunca por terminado nuestro producto, esa es la manera en la que las empresas
mueren
Actores
1. Evangelista de DevOps
2. Administrador de versiones
3. Arquitecto de automatización
4. El desarrollador / probador de software
5. El profesional de aseguramiento de la experiencia (XA)
6. El ingeniero de seguridad
7. El jugador de tecnología de servicios públicos o el ingeniero DevOps
DEVOPS
Ventajas y desventajas
Ventajas
● Eficiencia, ya que se producen pocos cambios en el contexto
● Independencia de otras aplicaciones
● Fácil de desarrollar
Desventajas
● Difícil de depurar
● Difícil de ampliar
● Difícil de distribuir
● Difícil de implantar
● Precisa mayor hardware
● Actualizaciones más costosas
● Más lentas en peticiones sencillas
● Sin acceso en línea a la red o requieren de implementaciones costosas
Diferencias
Fundamentalmente, DevOps reúne a dos grandes equipos aislados para permitir el
lanzamiento de software más rápido; en tanto, Agile se enfoca en lograr que los equipos más
pequeños colaboren entre sí para que pueda reaccionar rápidamente a las necesidades cambiantes
de los consumidores.
DEVOPS
Agile emplea sprints, que van desde una semana hasta meses como una forma de
administrar el programa de desarrollo, mientras que DevOps se enfoca en los lanzamientos
rápidos que comienzan con varios momentos por día.
Tanto DevOps como Agile pueden trabajar en conjunto ya que pueden complementarse
entre sí. DevOps promueve un proceso de integración y despliegue continuo completamente
automatizado para permitir lanzamientos frecuentes, mientras que Agile ofrece la capacidad de
adaptarse rápidamente a los requisitos cambiantes y una mejor colaboración entre diferentes
equipos más pequeños.
Conclusiones
DevOps, es una herramienta eficiente, por la gran medida de uso que se ha otorgado estos
últimos años, se ha ganado un puesto en el mercado. Tomado más como un estilo de vida que un
método, ha logrado grandes avances en cuanto el desarrollo de de proyectos y control de
versiones. Es una metodología fácil de aprender pero es costosa.
DEVOPS
Referencias
Cliclo de Vida DevOps. (2020). Platzi. [Link]
Colaboradores de Wikipedia. (2020, 27 noviembre). DevOps. Wikipedia, la enciclopedia libre.
[Link]
DevOps. (2020). UniTec. [Link]
Diferencias entre DevOps. (2020). RecluIT.
[Link]
Solazzo, M. (2020). The 7 main actors for a successful DevOps Strategy. Kiratech.
[Link]