¿Qué es DevOps?
El término DevOps es una de los más mencionados hoy en día en la industria IT. Lo podemos definir como una filosofía de trabajo que nace para ofrecer una solución a las compañías que buscan agilizar, automatizar y escalar de forma más eficiente.
Por ello, la tendencia de crear un software, es trabajar con metodología DevOps, para así, optimizar los procesos, integrando a los administradores de sistemas junto con los desarrolladores de aplicaciones.
Como ya hablamos en otro artículo anterior sobre DevOps qué es y cómo beneficia a tu empresa, hoy nos centraremos en la profesión DevOps y qué se necesita para convertirse en un buen ingeniero DevOps.
Table of Contents
¿DevOps es una metodología o una profesión?
Al no encontrar una carrera universitaria con la formación específica para este perfil, pero sí cada vez más ofertas en el mercado que solicitan profesionales con características DevOps, resulta lógico dudar si DevOps es una profesión o no.
Realmente, para convertirse en un especialista en DevOps es conveniente reunir una serie de características que ayuden a cumplir los objetivos DevOps, además de una gran experiencia en desarrollo de software.
Por ejemplo, para un desarrollador, pasar a formar parte de una metodología DevOps resulta mucho más sencillo que para un ingeniero de sistemas, que necesita otras habilidades.
Una investigación de Puppet Labs, enumera estas habilidades en el siguiente orden: scripting, don de gentes, reingeniería de procesos y experiencia con herramientas especializadas.
Qué hace un ingeniero Devops
Un ingeniero DevOps trabaja en contacto con todos los integrantes del desarrollo del software y se encarga de coordinar el equipo para poder llevar a cabo este proceso de desarrollo.
Digamos que el ingeniero Devops es quién facilita la comunicación entre los desarrolladores y el personal de TI, para agilizar el trabajo, supervisar los lanzamientos de código y así, evitar cualquier posibilidad de error que pueda darse durante el camino.
¿Qué se necesita para convertirse en un ingeniero DevOps?
• Entendimiento práctico en la gestión de la configuración y las herramientas que se implementan como son: Puppet, Ansible, Chef, Terraform, etc.
• Instrucción en secuencias de comandos y flujos de trabajo Git y Git.
• Maestría en el desarrollo de tuberías de Integración Continua / Entrega Continua (CI / CD).
La colaboración y el trabajo en equipo es fundamental entre los miembros que participan en la metodología DevOps, por ello, trabajan con herramientas que favorecen esa integración.
Herramientas DevOps más utilizadas este año
La metodología DevOps depende de herramientas eficaces para implementar e innovar con rapidez. A continuación, hablamos sobre 5 herramientas imprescindibles que utiliza un DevOps:
Ansible
Es una de las herramientas DevOps de automatización de código abierto. Desarrollada por Michael DeHann, cuenta con soporte para la gran mayoría de distribuidores de Linux. También está disponible para Mac y por el momento, se puede manejar en plataformas Windows por medio de una máquina virtual.
Como dato curioso, su nombre hace un guiño al libro de ciencia ficción “El juego de Ender”.
Ansible es una herramienta de gestión de configuración especial para acelerar la productividad.
• Facilidad de uso, ya que no se requieren habilidades especiales de codificación.
• Eficaz, ya que ayuda a mejorar flujos de trabajo complejos.
• Adaptable, ya que permite manejar el entorno de la aplicación, sin que importe donde esté creada.
Si comparamos con otras herramientas DevOps, Ansible se distingue por su facilidad de uso y sencillez.
Chef
El creador de esta herramienta fue Adam Jacob y su lanzamiento inicial se produjo en enero de 2009.
Es una plataforma de gestión de la configuración (CM) que ayuda y permite definir la automatización de procesos en muchos servidores y administrar la infraestructura en sencillos pasos.
Una de sus ventajas es su enfoque aclarativo de configuración ya que aleja de la creación de guiones complejos de código que a largo plazo pueden causar agotamiento.
Así, esta herramienta DevOps, se puede extender en pocos clics en todos los dispositivos con los que trabaja una administración.
Chef, efectúa el software en modo cliente-servidor (Chef-servidor) y ‘Chef-solo’, planteando una configuración independiente que empaqueta las demás configuraciones en archivos JSON llamados ‘libros de cocina’.
Docker
La necesidad de agilizar los procesos y mantener la distribución de las aplicaciones en un entorno donde la flexibilidad sea la norma, ha llevado a que Docker sea una de las mayores referencias de tecnología de contenedores de software, ya que permite crear aplicaciones de la forma más segura, no solo en las instalaciones, también en la nube.
Así, esta herramienta DevOps tiene un diseño modular, lo que lleva a que sus usuarios creen aplicaciones de forma más segura y al ser un contenedor virtual se puede ejecutar en cualquier servidor.
Así, las empresas no necesitan una carga adicional del hipervisor y ganan flexibilidad y portabilidad, tanto en sus instalaciones físicas como en su cloud privada y cloud pública.
Kubernetes
Como hemos visto en el punto anterior, Docker permite ejecutar y enviar aplicaciones en contenedores de forma sencilla y Kubernetes nos ayuda a que la ejecución de contenedores en clústeres sea más sencilla.
Kubernetes crece a través de la Cloud Native Computing Foundation y nace para dar respuesta al deseo de muchas empresas que quieren pasar a la nube híbrida y la infraestructura multicloud, y que buscan nuevas aplicaciones online con soporte legacy dentro de la misma plataforma con una infraestructura de microservicios.
La gran aceptación de Kubernetes ha llevado a que empresas como Pivotal, Red Hat, OpenShift o IBM estén entre los patrocinadores del proyecto de esta herramienta.
Jenkins
Es un servidor de automatización escrito en Java y se emplea para avisar de los cambios, hacer pruebas en live y repartir código en diferentes máquinas.
Al igual que Atlassian, Jenkins tolera automatizar las diferentes etapas del proceso de la entrega de las aplicaciones.
Esta herramienta DevOps es un desarrollo Open Source y cuenta con más de 1.000 plugins, que posibilitan su integración en casi todas las herramientas DevOps.
Jenkins es considerada una herramienta fácil y potente.