La evolución del área tecnológica emerge a un ritmo tan rápido que ni siquiera nos damos cuenta de lo mucho que ya forma parte de nuestras actividades diarias. Si pensamos que era increíble ir a una Café Internet a principios de los 2000, hoy no podemos vivir sin nuestro teléfono inteligente conectado. Ya sea para intercambiar rápidamente mensajes o texto, unirse a redes sociales o incluso pasar tiempo jugando. El #10yearschallenge representaría uno de los cambios más drásticos en la sociedad en la última década.
Durante gran parte de mi vida profesional en TI, que se remonta al #10yearschallenge, siempre he visto muchas aplicaciones en el modelo de servidor de aplicaciones y bases de datos. Normalmente, el desarrollador de la aplicación se centró solo en sus características, sin preocuparse por problemas como la escalabilidad. Para tener una comparación más actual, es similar a un desarrollador que solo se preocupa por el front-end de una aplicación, pero no por el back-end.
Con la evolución tecnológica, los elementos que antes no se tenían en cuenta se han convertido en obligatorios. Las razones para esto son variadas, pero uno de los propósitos más relevantes es el desarrollo de una infraestructura sin puntos de falla, una tarea crucial para la administración de datos. Con el fin de implementar, administrar y escalar aplicaciones y servicios, las estrategias de “Contenedor como servicio” (CaaS) se han adoptado cada vez más porque están alineadas con métodos de software ágiles, especialmente con la metodología DevOps.
Entendiendo el concepto de contenedores
Para explicar la función adecuada de los términos específicos de TI, siempre trato de extraer analogías de nuestra vida cotidiana. A lo largo de los años de capacitación, he aprendido que el uso de analogías simplifica la comprensión de las nuevas tecnologías, como los contenedores. ¡Échale un vistazo!
Algo que vemos mucho estos días en las calles, así como junto a los bares y festivales son los Food Trucks. Aparentemente, este último formato de vehículos móviles con el interior equipado para la venta de alimentos y bebidas no tiene nada que ver con el área de Tecnología de la Información. No exactamente. De hecho, los Food Trucks funcionan de manera similar a los contenedores de TI.
Por lo general, solo se vende un tipo de alimento en cada uno de los camiones de comida. Por supuesto, se pueden encontrar diferentes opciones de Food Trucks que venden hamburguesas, hot dogs, pizzas, comida japonesa, tacos, entre otros, y en el mismo lugar. Como un buen fanático de las hamburguesas, tomaré como ejemplo el Food Truck para hamburguesas.
Como su nombre lo indica, entendemos automáticamente el tipo de alimentos que servirá este Food Truck. En este caso, los insumos básicos necesarios para la producción de una hamburguesa son: pan, carne (hamburguesa), queso, lechuga, tomate, mayonesa, mostaza y salsa de tomate. Nota: No incluyo elementos como algas, salmón o camarones, ya que son elementos típicos de un camión de comida japonés.
Al prestar atención a los insumos, entendemos que solo serán necesarios aquellos realmente utilizados para producir y servir los alimentos. No hay razón para almacenar otros artículos. Y es en este momento que podemos hacer una comparación con la tecnología de contenedores. En un contenedor, solo se insertarán las entradas necesarias para ejecutar y servir la aplicación requerida.
De esta manera, la operación se optimiza y los contenedores pueden reducir considerablemente el tamaño de los datos. Por lo tanto, es posible mover un contenedor a diferentes servidores y lograr la misma funcionalidad. Es lo mismo que un Food Truck, que puede estar en una avenida en una ciudad grande en un día, y en un festival de música ubicado en otra ciudad al día siguiente. No obstante, siempre mantendrá el mismo contenido y lo servirá.
Hay recursos que se deben consumir del entorno en el que estamos. En el caso de un vehículo que transporta y vende alimentos, puede consumir electricidad del lugar donde se encuentra. Por otro lado, un ejemplo de un recurso de entorno utilizado y ejecutado por los contenedores es el recurso computacional y las librerías comunes, que ofrece el núcleo del sistema en ejecución.
Escalabilidad y orquestación
En el caso del contenedor, hay varios tipos de posibles ensamblajes. Docker, la tecnología para la ejecución de contenedores, es la aplicación actual más común. Sin embargo, hay otras tecnologías para la ejecución de contenedores, como CRI-O, que está orientada hacia una ejecución más liviana, especialmente cuando se trata de escalabilidad.
El concepto de escalabilidad, por cierto, es un requisito previo para cualquier aplicación en estos días. Es necesario ser a prueba de fallas, pero ¿dónde entra el concepto DevOps? Asegurar la entrega continua con calidad y validaciones antes de comenzar la producción, retomando la analogía, es como cualquier nueva receta de cocina. Las entradas deben evaluarse, así como la receta final en sí, para que el Food Truck (o, mejor dicho, el contenedor) no deje de ofrecer la aplicación.
Hay varias herramientas para orquestar contenedores. La más usada hoy es Kubernetes, un concepto que encontrarás bajo las más variadas pronunciaciones. Una de las funciones principales de esta herramienta de código abierto es garantizar que, si aumenta la demanda de solicitudes, la ejecución de más contenedores y su distribución se llevarán a cabo en la misma medida. ¿Alguna vez has pensado en no tener que hacer cola en un Food Truck para que te sirvan?
“Si algo puede salir mal, saldrá mal”. Reflexionando sobre la ley de Murphy, ¿qué podemos pensar que podría salir mal en el caso de un Food Truck? Que se termine el pan u otro insumo obligatorio, por ejemplo, significa cerrar el servicio. En el caso de un contenedor, esto significaría que la aplicación ya no responde. En tales casos, Kubernetes elimina este contenedor que dejó de responder y ejecuta uno nuevo para realizar el servicio, evitando que las nuevas conexiones se envíen a este “contenedor sin pan”, sin el debido recurso.
Estas son algunas de las características de un nuevo mundo de tecnología, donde pensamos en la integración sin problemas, entrega de aplicaciones, entornos y aplicaciones escalables que ofrece el cómputo en la nube nativo. No hay puntos de falla en él. Con los Food Trucks, todavía no tenemos orquestadores, ¡pero tenemos varias opciones de comida!
¿Ves lo fácil que es entender una nueva tecnología a través de una analogía? Nada que una hamburguesa no pueda resolver.
-Aslan Carlos, ingeniero de ventas de SUSE