Kubernetes
Kubernetes
¿Qué es Kubernetes?
Desarrollado originalmente por Google, Kubernetes, o k8s como se le conoce de forma abreviada, es un orquestador de contenedores que sirve para desplegar en el cloud nuestras aplicaciones en producción de forma automatizada.
Esta plataforma nos permite desacoplar y estandarizar nuestras aplicaciones y servicios para ser agnósticos a la infraestructura y sobre todo aporta un fuerte aislamiento e inmutabilidad de nuestros artefactos para poder desplegar en cualquier entorno de una forma unificada, simplificada y sin variaciones.
Kubernetes SaaS / Cloud
Su implementación nativa en la nube mediante servicios gestionados SAAS de Kubernetes tales como EKS (Amazon Web Services), AKS (Azure), GKS (Google), etc… nos aportan la automatización de despliegue de recursos (balanceador de carga, gestión de almacenamiento, etc) de forma automatizada.
Además nos aportan una capa de gestión sobre el control plane y sus recursos externos auto provisionados tales como los balanceadores de carga, storage class, etc. Este punto será importante para simplificar el modelo de gestión y mantenimiento pudiendo enfocar sus esfuerzos en la capa de diseño, arquitectura y despliegue de servicios sin heredar la complejidad de la gestión del cluster en sí.
GitOps vs K8S
La implementación de los nuevos estándares de desarrollo mediante metodologías GITOPS, dónde GIT se sitúa en el centro como single point of truth, han generado un gran elenco de aplicaciones y formatos que nos permiten la automatización de todo el flujo de CICD basado en manifiestos y charts de HELM que aportan versionado en sus entornos y un sistema de despliegue siguiendo las prácticas de continuous deployment asegurando en todo momento la operativa de su servicio sin cortes o interrupciones.
Otra aportación de Kubernetes es la facilidad visibilidad que aporta a nivel de monitorización.
Kubernetes con GEKO CLOUD
Nuestra experiencia en implementaciones de sistemas basados en microservicios utilizando Kubernetes
Es una tecnología de vanguardia pero ya lleva suficiente tiempo para asegurar su uso en entornos reales además de una gran comunidad detrás.
Existen diversas plataformas K8s gestionadas en la nube que permiten eliminar la complejidad.
Mejore la portabilidad y flexibilidad de su negocio haciéndolo agnóstico al Cloud. Reduzca el nivel de fricción y despliegue tantos clientes o entornos sea necesario en distintas plataformas.
Mejore la trazabilidad y seguridad de sus servicios exponiendo aquellas entidades que lo requieran y trabajando de modo interno con API’s y servicios internos
Servicios administrados de Kubernetes
Ventajas competitivas que Kubernetes aporta a tu negocio
Unifica el modelo de despliegue GIT OPS
Por fin puede implementar en su compañía una única forma de desplegar sus servicios, cosa que acelera el onboarding del equipo técnico, la cooperación y el time to market a desplegar nuevas funcionalidades o microservicios nuevos.
Alta tolerancia a fallos
El propio orquestador gestiona los despliegues para asegurar que pasará las pruebas de healthcheck antes de ponerlos en producción o desplegará nuevos pods en caso de una incidencia puntual para mantener la consistencia indicada en número de recursos.
Responsabilidad / autonomía al equipo de desarrollo (namespaces + Quotas)
Esta tecnología apoya a los equipos de desarrollo si se implementan unos buenos criterios y pipelines de CICD con la filosofía “you build it, you run it!” al tener un total control y conocimiento del flujo concreto y una visibilidad de monitorización posterior para tomar decisiones en base a criterios de rendimiento y calidad.
DRP o business continuity
Recuperar una plataforma basada en Kubernetes ha simplificado enormemente los planes de contingencia o recuperación de desastres dado que nos desacoplamos totalmente la infraestructura, simplemente necesitamos los datos, un K8S y desplegar nuestros artefactos ya guardados en un repositorio.
Crecimiento de alta velocidad (escalabilidad) + Vertical node autoscaler + HPA
La implementación adecuada de una plataforma Kubernetes nos permitirá que el sistema se autogestione para crecer tanto en número de PODS como en número de nodos del cluster (crecimiento vertical y horizontal dinámicamente), con lo que también nos aportará una alta eficiencia de costes. Otro punto importante adicional es que el crecimiento dinámico de los pods de deployment, se realiza en apenas unos segundos VS las tradicionales plataformas auto escaladas que tardaban de la orden de 240 segundos en arrancar.
Ecosistema de aplicaciones Marketplace
Gracias a la inercia que ha adquirido K8s dentro de la comunidad de desarrolladores, existe un gran elenco de aplicaciones que a través de charts de HELM o bien mediante los propios Operators, nos permitirá desplegar componentes tales como bases de datos, sistemas de colas, cache y un largo etcétera desde un sencillo marketplace de componentes que tendrá a su entera disposición
- Tiene un coste operativo y de implementación inicial.
- Operar un clúster de Kubernetes sin modelo SaaS Cloud teniendo que administrar la capa de gestión o control plane agrega cierta complejidad, si cae un clúster K8S entero CAE TODO.
- Es conveniente implementarlo como un modelo de desarrollo no como una plataforma.
- Es una plataforma que se ideó para pequeñas apps stateless y su interconexión. Idealmente no se recomienda para sistemas de datos persistentes en HA aunque sea un tema que está generando cada vez más controversia y podemos encontrar clientes con sistemas productivos FULL desplegados en K8s.
Somos partner especializados en Kubernetes
Partner de Kubesphere
Geko Cloud es la 1ª empresa a nivel Europeo en ser partner de Kubesphere, un sistema operativo distribuido que gestiona aplicaciones nativas cloud, usando Kubernetes como kernel.
Nuestros expertos te ayudaran a afrontar los diferentes retos en tu transformación digital.