Cuándo se debe usar Kubernetes
La decisión de usar una plataforma de orquestación de contenedores como Kubernetes depende de los requisitos empresariales y de desarrollo existentes. Esta es una revisión de la arquitectura general de la solución de seguimiento de drones.
Esta solución se ha creado como microservicios diseñados como servicios de colaboración débilmente acoplados. Para simplificar el diseño y el mantenimiento de la solución, se van a implementar estos servicios de forma independiente. Esta es la configuración actual de la solución.
- Front-end web: muestra mapas e información sobre drones sometidos a seguimiento.
- Servicio de caché: almacena información solicitada con frecuencia que aparece en el sitio web.
- API RESTful: la usan los drones sometidos a seguimiento para enviar datos sobre su estado, como una ubicación de GPS y los niveles de carga de la batería.
- Cola: contiene los datos sin procesar que recopila la API RESTful.
- Servicio de procesamiento de datos: recopila y procesa los datos de la cola.
- Base de datos NoSQL: almacena datos de seguimiento procesados e información de usuario capturada desde el sitio web y el servicio de procesamiento de datos.
Diversos equipos independientes de la empresa desarrollan estos servicios, de los que también son propietarios. Cada equipo usa contenedores para compilar e implementar su servicio. Esta nueva estrategia permite a los equipos de desarrolladores estar al día de los requisitos del desarrollo de software moderno para la automatización, las pruebas y la estabilidad y calidad generales.
El cambio en los requisitos del desarrollador ha dado lugar a varios procesos y ventajas empresariales para la empresa. Por ejemplo, un mejor uso de los recursos de proceso hospedados, la mejora del tiempo de comercialización gracias a las características nuevas y una mejor cobertura de clientes.
Sin embargo, la administración de contenedores presenta varios retos ante los que la empresa debe investigar soluciones de orquestación de contenedores. Los equipos han descubierto que escalar la aplicación de seguimiento a una serie de implementaciones fue relativamente sencillo, pero escalar y administrar muchas instancias fue difícil.
Hay otros aspectos que deben tenerse en cuenta, Entre los ejemplos se encuentra la forma de abordar los contenedores con errores, la asignación de almacenamiento, la configuración de red y la administración de secretos de aplicación.
Como se ha visto anteriormente, como plataforma de orquestación, Kubernetes proporciona compatibilidad para todos estos retos.
Conviene usar Kubernetes cuando la empresa:
- Desarrolle aplicaciones como microservicios.
- Desarrolle aplicaciones como aplicaciones nativas de nube.
- Implemente microservicios mediante contenedores.
- Actualice contenedores a escala.
- Requiera funciones centralizadas de administración de almacenamiento y redes de contenedores.
Cuándo no usar Kubernetes
No todas las aplicaciones necesitan ejecutarse en Kubernetes, lo que plantea la posibilidad de que Kubernetes no sea una buena opción en el caso de su empresa.
Por ejemplo, es posible que el esfuerzo de contenedorización e implementación de una aplicación monolítica sobrepase a las ventajas de ejecutar la aplicación en Kubernetes. Una arquitectura monolítica no puede usar fácilmente características como el escalado o las actualizaciones de componentes individuales.
Kubernetes puede introducir muchas ventajas empresariales para el desarrollo de software, la implementación, la administración y la optimización de los procesos. Sin embargo, Kubernetes tiene una curva de aprendizaje pronunciada. El diseño modular de Kubernetes introduce conceptos nuevos que afectan a los equipos de la empresa.
Los equipos de desarrollo tienen que adoptar conceptos de diseño modernos a la hora de desarrollar y diseñar aplicaciones. Estos conceptos incluyen el uso de microservicios y la contenedorización de estos servicios. Los equipos también tienen que experimentar con entornos de contenedor y orquestación para aprovechar al máximo todas las opciones disponibles.
Si la empresa no está lista para adoptar este cambio, es posible que Kubernetes no sea una buena opción para ella.