BLOG

Automatización, nubes y entrega continua: Aprenda lo que es necesario

Robert Haynes Miniatura
Robert Haynes
Publicado el 24 de octubre de 2017

En el buffet libre de habilidades en la nube y automatización, ¿cómo decide qué aprender? En artículos anteriores hemos analizado los cambios operativos que traen las nubes privadas y el nuevo tipo de trabajo que realizará un equipo de operaciones en la era de la nube.

Para la mayoría de nosotros, esto significará aprender algunos conceptos generales nuevos y algunas habilidades técnicas específicas. Si tiene suerte (o mala suerte, dependiendo de los detalles), entonces el conjunto de herramientas de automatización y orquestación para sus entornos se establece, ya sea por decreto o por adopción común. En ese caso, generalmente es solo cuestión de encontrar la forma en que te gusta aprender, conseguir algún tipo de laboratorio o entorno de prueba (y aquí es donde suelen entrar en juego los proveedores de nube pública y sus créditos de "el primer golpe es gratis") y ponerte manos a la obra.

¿Pero qué sucede si estás empezando desde cero, ya sea construyendo tu conjunto de herramientas de automatización o simplemente aprendiendo porque lo ves venir en un futuro no muy lejano? Es fantástico tener opciones, pero en el ámbito de la automatización sin duda hay mucho para elegir. Dividirlo en áreas amplias es una forma de centrarse en lo que debe aprender.

Sistemas de control de versiones de código fuente . Comprender los sistemas de control de versiones es importante porque A) a medida que crea los scripts y las herramientas que necesita para ser ese creador de botones, necesitará un lugar para guardarlos y administrar el control de versiones B) es lo que usarán sus pares en los equipos de desarrollo o los grupos de DevOps. El lugar más obvio para comenzar aquí es con Git/Github , aunque, por supuesto, hay muchos otros sistemas disponibles, algunos de los cuales incluso podrían adaptarse mejor a su organización. Pero Git es un conjunto de habilidades omnipresentes y portables.

Herramientas de integración continua/entrega continua (CI/CD) . En muchos casos, los cambios y las implementaciones serán administrados por una herramienta como Jenkins, que es un buen ejemplo de una aplicação CI/CD. Jenkins crea canales de implementación donde el código de la aplicação se puede compilar, probar e implementar en un flujo de trabajo ordenado y automatizado. La mayoría de las aplicações CI/CD son extensibles mediante el uso de complementos que pueden usarse para administrar una variedad de actividades, incluida la implementación de nuevas instancias de servidor o la configuración de componentes de infraestructura.

Las herramientas que un flujo de trabajo de CI/CD puede aprovechar y que nos interesan son principalmente para automatizar la infraestructura , y existe una amplia variedad de herramientas, todas con sus fortalezas y debilidades. Dado que F5 es un buen socio de muchos de los proveedores, no voy a recomendar uno en particular, pero hay muchos artículos excelentes que detallan las diferencias. Mi consejo es que empieces con el que, después de haber leído un poco sobre él, te parezca más fácil. Puede parecer un consejo muy subjetivo y poco específico, pero el cerebro de cada persona es diferente y, en ausencia de fuertes razones para lo contrario, vale la pena buscar una utilidad con la que pueda familiarizarse rápidamente. Herramientas como Ansible, Puppet, Chef, Salt o Terraform están bien documentadas y cuentan con un importante número de seguidores entre sus usuarios. 

Finalmente, o en primer lugar si decides creer el último párrafo de este blog, probablemente quieras familiarizarte con un lenguaje de programación básico . El ganador indiscutible en materia de automatización de redes es Python, ya que tiene SDK de muchos de los principales proveedores o proyectos de software disponibles, incluido F5 .

Así que ahí lo tienes: un resumen rápido de algunas tecnologías de automatización clave que quizás quieras dedicar un poco de tiempo a aprender. Bueno, más que un poco, diría que quedan algunos meses de estudio por delante, suponiendo que tengas un trabajo fijo.  Por último, mi consejo es empezar con el último de la lista, Python, y trabajar “upstream” a partir de allí. Si entiende cómo las herramientas se comunican con sus componentes de manera programática, tendrá más facilidad para resolver las complejidades a medida que avanza en la pila y, probablemente, tendrá una apreciación mucho mayor de las ventajas del control de fuente cuando llegue allí.