OpenWebinars

DevOps

La importancia de Linux para la ingeniería DevOps

La figura del Ingeniero DevOps es cada vez más popular en compañías IT, y vamos a explicar por qué Linux es tan importante para este tipo de perfiles.

Rodolfo Sáenz Escobar

Rodolfo Sáenz Escobar

Experto en Linux

Lectura 11 minutos

Publicado el 18 de febrero de 2022

Compartir

Los Ingenieros DevOps son cada vez más populares en las compañías medianas y grandes, la necesidad de automatizar procesos tanto en IT como institucionalmente y hacer más eficientes las labores diarias y periódicas que se dan cada cierto tiempo, que ponen a la gente a correr en los últimos días del mes.

En los últimos años la demanda por este tipo de profesionales ha aumentado en promedio casi un 10% porque las compañías se han dado cuenta de que al automatizar procesos se ahorran costos, recursos y tiempo, aparte de que en muchos casos se aumenta la calidad y la eficiencia de las empresas.

Al ser DevOps una rama relativamente nueva de la informática que como su nombre lo indica combina dos grandes campos de la Informática : Dev (Development o Desarrollo en inglés) y Ops (abreviatura en el idioma inglés de Operaciones) incluye lo más relevante de los dos mundos.

En la parte de desarrollo podemos mencionar que la piedra angular de la Ingeniería DevOps es la filosofía Integración Continua / Entrega Continua (CI/CD o Continuous Integration / Continuous Deployment por sus siglas en inglés), es pilar fundamental, y de allí todas sus herramientas giran en torno a esta filosofía, y en la parte de Operaciones es absolutamente fundamental el poder manejar los sistemas operativos que albergan las aplicaciones en las infraestructuras de las compañías a un nivel competente, y la posibilidad de que Linux sea protagonista en estas infraestructuras, sean locales o de nube, es sumamente alta.

Existe mucha ambigüedad con respecto a lo que las compañías esperan de los Ingenieros DevOps y eso hace que los requerimientos a veces sean muy variados, pero existe un elemento que es un requerimiento constante y seguro donde muchos Ingenieros DevOps no tienen la experiencia y/o conocimiento necesario: el Sistema Operativo Linux.

Linux es el sistema operativo open-source más popular en el mundo. Su capacidad para su personalización y poder de ser realmente modificable para las exigencias únicas de software y aplicaciones no tiene par. Aparte de su legendaria estabilidad, manejo súper eficiente de recursos de memoria, procesadores y almacenamiento; sus diferentes tipos de distribuciones para cada escenario lo hacen un elemento imprescindible para albergar las más exigentes y peculiares aplicaciones o plataformas de software.

Es muy claro que saber Linux es esencial para ser un excelente Ingeniero DevOps, pero no se necesita ser un gran experto, sino conocer bien las Distribuciones (comúnmente llamadas Distros) más usadas de Linux en los ambientes de infraestructuras locales y de nube, en especial las que tienen presencia más fuerte y son más conocidas, conocer bien la estructura jerárquica de directorios, archivos, comandos y manejadores de paquetes instalación de software que usan esas Distros, y saber desempeñarse bien desde la línea de comando haciendo las combinaciones necesarias para ser ágil.

Por qué Linux es tan importante en DevOps

Aparte de su virtual omnipresencia en casi todas las infraestructuras del mundo veremos los puntos principales del porqué se debe incursionar en este sistema operativo. Aún si la empresa para la que trabajas no tiene Linux en su infraestructura, o es mínima, lo más probable es que su presencia en las infraestructuras de la mayoría de las compañías aumente con los años.

He aquí algunos puntos específicos por los que Linux es crucial en Ingeniería DevOps:

· Linux se usa en todo

Desde que Linux fue creado por Linus Torvalds a principios de los años 1990s ha ido ganando popularidad de manera constante. Hoy en día Linux está detrás de muchas de las tecnologías que son el corazón de muchos dispositivos y servicios, desde teléfonos inteligentes, aplicaciones de los principales proveedores de servicios de contenido, herramientas de productividad personal, redes sociales de diversos tipos como Facebook, Twitter y otros.

Servicios de localización como Google Maps, plataformas de nubes, plataformas de Inteligencia Artificial, Machine Learning, aún la misma NASA, en la Estación Espacial Internacional usa Linux, y todo el gobierno de Rusia usa sus propias versiones de Linux en servidores convencionales y supercomputadoras.

Si eres un desarrollador de aplicaciones que trabaja en conjunto con otros desarrolladores a través del mundo por medio de plataformas hechas para trabajar de manera colaborativa como GitHub o si eres un consumidor de aplicaciones de teléfonos inteligentes, lo más probable es que en este momento estés usando Linux sin saberlo.

Hoy por hoy se sabe por fuentes fidedignas que más del 25% de los desarrolladores de software alrededor del mundo usan Linux como su sistema operativo personal el cual también usan para trabajar. Una meta primordial de la Ingeniería DevOps es realizar una entrega rápida de los productos de software, eso lo más seguro es que signifique que se deba construir sobre infraestructura existente de Linux.

· La infraestructura existente y futura de las compañías son responsabilidad de los Ingenieros DevOps

Independientemente de que seas parte de un equipo de Ingenieros DevOps o seas el único Ingeniero DevOps en la compañía (menudo reto), cada asignación de tareas requiere que se compartan o se atiendan por el ingeniero de turno. En un departamento de informática no se puede elegir qué sistema operativo de la infraestructura se va a atender y cual no, a la hora de hacer un deployment o tratar un incidente en una de las aplicaciones que tiene la peculiaridad de estar albergada en un server Linux no se puede esquivar esta responsabilidad solamente porque no es el sistema operativo que maneja bien el ingeniero.

Un Ingeniero DevOps verdaderamente profesional tiene que demostrar las habilidades necesarias al atender los proyectos o tickets, tareas o incidentes que se presentan en la infraestructura de su departamento que son asignados a él, y conocer bien Linux y tecnologías e infraestructura de red es de vital importancia.

· Linux, por ser un sistema operativo de código abierto u open-source, es altamente maleable y flexible

Una de las ventajas más poderosas de Linux sobre sus competidores es su apertura de código, que permite ser modificado a placer dándole un poder casi camaleónico para poderse convertir en lo que necesita cualquier aplicación o plataforma. Se puede instalar en cualquier dispositivo y personalizarlo como se desee. Desde el diseño de un flujo de trabajo en particular, las aplicaciones que necesite servir, o protocolos de seguridad específicos que se deseen implementar.

Linux es un sistema operativo tan versátil que se pueden usar servidores Linux para hacer la función de Routers o inclusive hacer la función de un sistema de respaldo redundante mediante un Arreglo de Discos o RAID (Redundant Array of Inexpensive Disks por sus siglas en inglés). Sin la necesidad de gastar en un Router o una tarjeta RAID.

· Linux es Altamente Escalable

La Escalabilidad es clave para que la filosofía CI/CD o Integración Continua / Entrega Continua sea llevada a la práctica en la operación DevOps. En otros sistemas operativos de Código Cerrado o Privado, esto no es posible sin gastar mucho dinero en licencias e implica también un gasto en tiempo. Afortunadamente Linux es escalable.

El Kernel de Linux puede guardar y procesar grandes cantidades de información en memoria y puede combinar varias tecnologías de almacenamiento de diferentes tecnologías en una sola unidad lógica de almacenamiento. En él se pueden correr tanto aplicaciones muy pequeñas, como por ejemplo en contenedores Docker, como plataformas grandes que demandan un mainframe enorme como es el caso de supercomputadoras.

· Linux es Altamente Compatible con Las Principales Herramientas DevOps

Muchas Herramientas poderosas DevOps usan Linux como base integral de su tecnología y son primariamente compatibles con este sistema operativo más que con cualquier otro sistema operativo existente. Podemos citar cuatro ejemplos claros de la ventaja de esta gran compatibilidad en estas herramientas DevOps ampliamente usadas:

  • Docker: Esta plataforma de contenedores de aplicaciones es altamente compatible con Sistemas Operativos Linux al grado de que su implementación es prácticamente transparente y mucho más fácil de echar a andar que en otros sistemas operativos. Inclusive muchos comandos que se usan para echar a andar contenedores, tirar de imágenes para proveer redundancia de servicios y otro tipo de configuraciones, tienen mucha similitud con ciertos comandos de Linux, lo que hace que su sintaxis se aprenda más rápidamente por un usuario de Linux.

  • Kubernetes: El ambiente de trabajo de Kubernetes que sirve para llevar a cabo la orquestación de contenedores usa Linux de manera casi nativa. En cambio, para poder implementar estos mismos ambientes de trabajos en otras plataformas se requiere de más configuraciones y preparación adicionales.

  • Ansible y Puppet: Tanto Ansible como Puppet, y otras plataformas DevOps que se usan para realizar configuraciones u operaciones masivas en cientos o miles de servers en paralelo mediante IaaS (Infrastructure as a Code en inglés), piden en sus requerimientos que las máquinas principales encargadas de llevar a cabo los despliegues de configuraciones masivas sean servidores Linux exclusivamente, ningún otro sistema operativo es aceptado. El despliegue de configuraciones u operaciones se puede hacer en nodos de diferentes sistemas operativos, pero las máquinas que tienen el rol de Controladores o Masters solo pueden recaer en servers Linux.

Imagen 0 en La importancia de Linux para la ingeniería DevOps

Distribuciones de Linux más apropiadas para Ingenieros DevOps

Las compañías que tienen una infraestructura grande o mediana ya sea en la nube, local o híbrida prefieren Distros que sean bien conocidas, muy bien establecidas en entorno de IT, que tengan documentación en línea y soporte técnico muy fuertes, debido a que hay software que es certificado para correr bien en estas Distros de Linux.

He aquí algunas de las más reconocidas Distros que tienen presencia fuerte en las infraestructuras corporativas a nivel mundial y que puedes conseguir para experimentar y eventualmente enfocarte en algunas de ellas.

Existen hoy por hoy dos vertientes principales de Linux que tienen ya muchos años de estar en el entorno IT y son reconocidas mundialmente: la vertiente Red Hat y la vertiente Debian. Red Hat y Debian son Sistemas Operativos Linux que son muy famosos, son legendariamente estables y ambos tienen más de 25 años de estar con nosotros.

En base a estas vertientes se han dado Distribuciones de Linux que se derivan de estas y tienen una presencia muy grande en todo tipo de infraestructuras, además de un soporte técnico y comunidades muy fuertes.

Vertiente Red Hat

A continuación, citamos algunas Distros basadas en Red Hat que son muy usadas en la actualidad:

Red Hat Enterprise Linux

Conocido también por sus siglas RHEL, es un sistema operativo muy estable y conocido ya por muchos años, usa RPM como su manejador de paquetería base y de allí se han creado manejadores de paquetes más inteligentes como YUM y DNF, ha sido el corazón de muchas infraestructuras desde mucho antes del advenimiento de los servicios corporativos de Nube.

Es muy usado en corporaciones grandes tales como bancos, compañías proveedoras de servicios de comunicaciones y/o servicio de teléfonos móviles. Es una Distro esencialmente corporativa, y debe ser adquirida en esquema de compra de licencias que ofrecen servicio de soporte con un Acuerdo de Nivel de Servicio o SLA (Service Level Agreement por sus siglas en inglés), sin embargo, se tiene derecho a una versión gratuita limitada para poder experimentar con esta Distro en servidores físicos o máquinas virtuales.

CentOS y Fedora

CentOS, antes conocido como CentOS Linux y ahora conocido como CentOS Stream, ha sido ya por varios años una distribución de Red Hat Linux que era muy atractiva para todo tipo de negocios y entusiastas de informática, ya que era un clon de Red Hat Enterprise Linux que salía inmediatamente después de la última versión de cada RHEL. Era en esencia un sistema operativo Red Hat clonado gratuito, sin prácticamente fallas de producción porque se originaba desde la última versión estable de RHEL. Pero en el mes de Septiembre 2019, Red Hat, Inc., la compañía que distribuye el Sistema Operativo Red Hat, y ahora subsidiaria de IBM, anunció que CentOS ya no iba a ser sacado como un clon de Red Hat, sino que iba a ser producido antes de RHEL.

Ambas Distros se originan de la Distro Fedora, que es auspiciado por Red Hat, Inc. y otras compañías.

Fedora es muy usado como sistema Desktop y en algunos casos como server para desarrollo y pruebas pero no es una Distro para producción.

Antes la cadena de producción era la siguiente: Fedora→RHEL→CentOS.

Ahora es de la siguiente manera: Fedora→ CentOS→RHEL.

De esta manera CentOS ya no puede ser considerado como un sistema listo para producción, ya que ahora es un filtro de las fallas de Fedora cuando cada una de sus versiones sale al público. Es un muy buen sistema operativo para desarrollar aplicaciones, hacer pruebas y enfocarse en ella para aprender a manejar RHEL, pero no para albergar aplicaciones en un ambiente de producción.

Amazon Linux

Esta Distro es una versión de Linux muy parecida en la comandería y manejo de paquetería a RHEL, pero con diferencias fundamentales propias, pues es un sistema operativo diferente. Antes era conocido como Amazon Linux AMI, pero ahora es conocido como Amazon Linux 2.

Esta Distro está enfocada con mucha ciberseguridad en mente, ya que es un sistema operativo hecho para estar en la nube, y es completamente gratis y exclusiva para los usuarios de AWS (Amazon Web Services).

Vertiente Debian

A continuación, citamos Distros basadas en Debian que actualmente son muy usadas:

Debian

Originador de esta sólida vertiente, Debian nació en el año 1993, anunciado por su fundador Ian Murdock, pero fue su versión de 1996, la más estable, la que fue ampliamente reconocida a nivel mundial y desde entonces ha estado con nosotros en las infraestructuras locales.

Muy admirado por ser sumamente estable y escalable, con diferencias fundamentales con Red Hat, tanto en su sistema de comandos como en la localización de archivos claves y sus manejadores de paquetes. Usa como base el manejador de paquete APT. Es open-source y gratuito.

Ubuntu

Es una Distro muy famosa derivada de Debian, está con nosotros desde 2004 y usa APT como manejador de paquetes. Más recientemente Canonical, la compañía distribuidora de Ubuntu, ha promocionado a SNAP, un manejador de paquetes más inteligente. Ubuntu tiene presencia masiva tanto en infraestructuras locales como infraestructuras de nube.

Igual que su padre Debian, es una Distro open-source que puede ser usada de manera gratuita.

Compartir este post

También te puede interesar

Qué es Linux: Todo lo que necesitas saber
Blog

Qué es Linux: Todo lo que necesitas saber

Profundizamos en el sistema operativo Linux, desde su nacimiento hasta sus componentes, distribuciones más usadas y una comparativa con Windows.

Angel Robledano