Para responder a la explosión de necesidades digitales del negocio, dos grandes tendencias dictan la evolución actual de los sistemas de información. Por un lado, las aplicaciones se están volviendo cada vez más modulares, hasta los microservicios y la contenedorización, para facilitar la portabilidad, la escalabilidad y la extensibilidad. Por otro lado, las infraestructuras se están trasladando masivamente a la nube (o mejor dicho, a las nubes), que es la única forma de proporcionar todos los recursos necesarios al menor coste y con la máxima flexibilidad.
Pero en la intersección de estas dos turbulencias, surgen preguntas importantes: ¿cómo gestionar un número exponencial de contenedores? ¿cómo coordinar y planificar su ejecución en entornos virtualizados? ¿Cómo escalarlos y asegurar que funcionen correctamente? Todas estas son preguntas que podrían convertirse rápidamente en un dolor de cabeza si no se hubiera creado una solución para responderlas. Esa solución es Kubernetes .
¿De dónde viene Kubernetes?
Lanzado por Google en 2014, Kubernetes (a menudo abreviado como K8S) es una plataforma de código abierto que automatiza la implementación, el escalado y la gestión de aplicaciones en contenedores en entornos agrupados, ya sea en una nube pública, privada, híbrida o de nubes múltiples. Es esta función de orquestar los recursos de ejecución de aplicaciones nativas de la nube lo que le ha valido a Kubernetes su apodo “el sistema operativo de la nube”.
De código abierto desde 2015, Kubernetes es la piedra angular de Cloud Native Computing Foundation ( CNCF ), creada dentro de Linux Foundation para promover y estandarizar tecnologías en torno a la contenedorización.
¿Qué hace Kubernetes?
Desde un único plano de control, Kubernetes le permite:
- Cree servicios de aplicaciones que combinen múltiples contenedores;
- Programe la ejecución de estos contenedores en clústeres virtuales;
- Aprovisionar, implementar y actualizar aplicaciones;
- Administrar las aplicaciones de carga y escala y sus recursos;
- Gestione la salud y la integridad de los contenedores a lo largo del tiempo.
Kubernetes hace todo esto, independientemente de la cantidad de contenedores y la complejidad de los entornos.
¿Por qué Kubernetes se ha vuelto tan indispensable?
En el bullicioso mundo de las nuevas tecnologías, pocas de ellas, como Kubernetes, logran alcanzar el estatus de estándar de facto. Hay cuatro razones para esto:
1. Relevancia
Kubernetes es LA respuesta a la proliferación de contenedores y la complejidad de gestionarlos en la nube. Sin él, las arquitecturas de microservicios se volverían rápidamente inmanejables. Con Kubernetes, los administradores pueden brindarles a los desarrolladores un acceso simple, rápido y controlado a los recursos que necesitan, lo que permite prácticas de DevOps para aplicaciones nativas de la nube.
2. Portabilidad
Kubernetes es de código abierto y funciona en todas las plataformas en la nube, y cuenta con el respaldo de los principales actores tecnológicos, que lo usan y lo integran en sus propias herramientas.
3. Sostenibilidad
Este amplio apoyo, que se refleja en el tamaño y el dinamismo de la comunidad, garantiza que Kubernetes seguirá siendo compatible con los futuros desarrollos tecnológicos y de TI. Esto garantiza que se preservarán las inversiones, especialmente las dedicadas al desarrollo.
4. La falta de competencia
Kubernetes se ha vuelto aún más aceptado porque casi no hay alternativa cuando se trata de aplicaciones nativas de la nube. Sin embargo, podemos mencionar a HashiCorp Nomad, cuyas funcionalidades, aunque más limitadas, pueden ser bastante suficientes en ciertos contextos.
¿Por qué Kubernetes es tan complicado?
La crítica más común de Kubernetes es su complejidad. Además de su arduo manejo, que implica una pronunciada curva de aprendizaje, esto también se debe a las siguientes razones:
Una herramienta que piensa en grande: Kubernetes se deriva de la experiencia de Google en la orquestación de servicios, pero no todos tienen las necesidades de Google, y quien puede hacer más no siempre puede hacer menos fácilmente.
Una herramienta que hace mucho, pero no todo: Kubernetes tiene vocación de plataforma y requiere de muchas herramientas complementarias para dar su plena medida, que a su vez hay que elegir y dominar. Podemos mencionar, sin ningún orden en particular, Helm, ArgoCD o Dapr para desarrollo, Lens , Cilium o Crossplane para control y gestión, Kubecost para control de costes, Istio para mallado de servicios, Knative para serverless, etc.
Una herramienta con un papel clave: Kubernetes condiciona toda la infraestructura de la aplicación, por lo que no podemos permitirnos una implementación incompleta, apresurada o mal controlada, que podría tener consecuencias en cascada.
¿Cómo cambiar a Kubernetes?
Aquí, en 10 puntos clave, está la hoja de ruta para adoptar Kubernetes con éxito:
- Seleccione del ecosistema los marcos, soluciones, herramientas y tiempos de ejecución que sean adecuados para las necesidades existentes;
- Configurar la plataforma de producción de Kubernetes;
- Cree la cadena de CI/CD para implementar aplicaciones nativas de la nube;
- Implementar sus aplicaciones en su entorno de nube;
- Adapte los procesos y actividades de TI para permitir la implementación continua de aplicaciones nativas de la nube;
- Asegurar operaciones que garanticen el rendimiento, la seguridad y la resiliencia de las aplicaciones;
- Automatice y cree plantillas de lo que se puede automatizar, desde la creación hasta la entrega a través de la canalización de DevOps;
¿Cómo puedo aprender más?
Este artículo es parte de una serie más amplia centrada en las tecnologías y los temas que se encuentran en la primera edición de Devoteam TechRadar. Para leer más sobre estos temas, descargue TechRadar .