Editor : Esta publicación es parte de una serie de 10 partes:
También puede descargar el conjunto completo de blogs como un libro electrónico gratuito: Cómo llevar Kubernetes de la prueba a la producción .
2020 fue un año que pocos de nosotros olvidaremos alguna vez. El cierre abrupto de escuelas, negocios y servicios públicos nos dejó repentinamente aislados de nuestras comunidades y arrojados a la incertidumbre sobre nuestra seguridad y estabilidad financiera. Imaginemos ahora por un momento que esto hubiera ocurrido en 2000, o incluso en 2010. ¿Qué sería diferente? Tecnología . Sin los servicios digitales de alta calidad que damos por sentados (atención médica, transmisión de video, herramientas de colaboración remota), una pandemia sería una experiencia muy diferente. ¿Qué hizo que la tecnología de 2020 fuera tan diferente a la de décadas pasadas? Contenedores y microservicios .
Las arquitecturas de microservicios , que generalmente utilizan contenedores y Kubernetes , impulsan el crecimiento empresarial y la innovación al reducir el tiempo de comercialización de experiencias digitales. Ya sea junto con arquitecturas tradicionales o de forma independiente, estas modernas tecnologías de aplicaciones permiten una escalabilidad y flexibilidad superiores, implementaciones más rápidas e incluso ahorros de costos.
Antes de 2020, descubrimos que la mayoría de nuestros clientes ya habían comenzado a adoptar microservicios como parte de su estrategia de transformación digital , pero la pandemia realmente aceleró la modernización de las aplicaciones. Nuestra encuesta de 2020 a usuarios de NGINX descubrió que el 60 % de los encuestados utilizan microservicios en producción, frente al 40 % en 2019, y los contenedores son más del doble de populares que otras tecnologías de aplicaciones modernas.
Kubernetes es el estándar de facto para gestionar aplicaciones en contenedores, como lo demuestra la encuesta de 2020 de la Cloud Native Computing Foundation (CNCF) , que encontró que el 91 % de los encuestados utilizan Kubernetes, el 83 % de ellos en producción. Al adoptar Kubernetes, muchas organizaciones están preparadas para cambios arquitectónicos sustanciales, pero se sorprenden por los impactos organizacionales de ejecutar tecnologías de aplicaciones modernas a escala. Si utiliza Kubernetes, probablemente se haya topado con estas tres barreras críticas para el negocio:
El paisaje interactivo nativo de la nube de CNCF es una buena ilustración de la complejidad de la infraestructura necesaria para soportar aplicações basadas en microservicios. Las organizaciones necesitan volverse competentes en una amplia gama de tecnologías dispares, con consecuencias que incluyen el bloqueo de la infraestructura, la TI en la sombra, la proliferación de herramientas y una curva de aprendizaje pronunciada para aquellos encargados de mantener la infraestructura.
Como ocurre con la mayoría de los problemas organizacionales, la respuesta para superar los desafíos de Kubernetes es una combinación de tecnología y procesos. Nos centraremos en el componente tecnológico durante el resto de esta publicación, pero esté atento a futuras publicaciones de blog sobre procesos y otros temas.
Dado que Kubernetes es una tecnología de código abierto, existen numerosas formas de implementarla. Si bien algunas organizaciones prefieren implementar su propio Kubernetes básico, muchas encuentran valor en la combinación de flexibilidad, prescriptividad y soporte brindado por servicios como Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), Microsoft Azure Kubernetes Service (AKS), Red Hat OpenShift Container Platform y Rancher .
Las plataformas Kubernetes pueden facilitar la puesta en funcionamiento; sin embargo, se centran en la amplitud de los servicios en lugar de en la profundidad. Por lo tanto, si bien puede obtener todos los servicios que necesita en un solo lugar, es poco probable que ofrezcan los conjuntos de características que necesita para una verdadera preparación para la producción a gran escala. Es decir, no se centran en la seguridad y las redes avanzadas, y ahí es donde vemos que Kubernetes decepciona a muchos clientes.
Para que Kubernetes sea de nivel de producción, debe agregar tres componentes más en este orden:
Un nivel de entrada y salida escalable para obtener tráfico dentro y fuera del clúster
Esto se logra con un controlador de Ingress , que es un balanceador de carga especializado que abstrae la complejidad de la red de Kubernetes y crea puentes entre los servicios en un clúster de Kubernetes y aquellos fuera de él. Este componente se vuelve de nivel de producción cuando incluye características que aumentan la resiliencia (por ejemplo, controles de estado avanzados y métricas de Prometheus), permiten una rápida escalabilidad (reconfiguración dinámica) y admiten el autoservicio (control de acceso basado en roles [RBAC]).
Seguridad integrada para protegerse contra amenazas en todo el clúster
Si bien la seguridad de “grano grueso” puede ser suficiente fuera del clúster, se requiere seguridad de “grano fino” dentro del mismo. Según la complejidad de su clúster, hay tres ubicaciones en las que es posible que necesite implementar un firewall de aplicação web (WAF) flexible: en el controlador de Ingress, como un proxy por servicio y como un proxy por pod. Esta flexibilidad le permite aplicar controles más estrictos a aplicaciones sensibles, como las de facturación, y controles más laxos donde el riesgo es menor.
Un nivel de tráfico escalable de este a oeste para optimizar el tráfico dentro del clúster
Este tercer componente es necesario una vez que sus aplicações de Kubernetes hayan crecido más allá del nivel de complejidad y escala que las herramientas básicas pueden manejar. En esta etapa, necesita una malla de servicios , que es una herramienta de orquestación que brinda seguridad y administración de tráfico aún más detallada a los servicios de aplicação dentro del clúster. Una malla de servicios generalmente es responsable de administrar el enrutamiento de aplicação entre aplicações en contenedores, brindar y aplicar políticas autónomas de TLS mutuas (mTLS) de servicio a servicio y brindar visibilidad sobre la disponibilidad y seguridad de las aplicação .
Al seleccionar estos componentes, priorice la portabilidad y la visibilidad. Los componentes independientes de la plataforma reducen la complejidad y mejoran la seguridad, con menos herramientas para que sus equipos aprendan y aseguren y un cambio más sencillo de las cargas de trabajo en función de las necesidades de su negocio. Es difícil exagerar la importancia de la visibilidad y el seguimiento. Las integraciones con herramientas populares como Grafana y Prometheus crean una vista unificada de "panel único" de su infraestructura, lo que garantiza que su equipo detecte los problemas antes de que los descubran sus clientes. Además, existen otras tecnologías complementarias que no son necesariamente necesarias para Kubernetes de nivel de producción, pero que son partes integrales del desarrollo de aplicaciones modernas. Por ejemplo, cuando las organizaciones están listas para modernizar las aplicaciones tradicionales, uno de los primeros pasos es crear microservicios con una puerta de enlace API .
Nuestras soluciones de Kubernetes son independientes de la plataforma e incluyen los tres componentes que necesita para habilitar Kubernetes de nivel de producción: NGINX Ingress Controller como nivel de ingreso y egreso, NGINX App Protect como WAF y NGINX Service Mesh como nivel este-oeste.
Estas soluciones pueden hacer de Kubernetes su mejor amigo al habilitarlo en cuatro áreas clave:
NGINX Ingress Controller está disponible como una prueba gratuita de 30 días , que incluye NGINX App Protect para proteger sus aplicaciones en contenedores. Le recomendamos agregar NGINX Service Mesh, siempre gratuito (disponible para descargar en f5.com ) para aprovechar al máximo su prueba. Hoy puedes traer tu propia licencia (BYOL) a la nube que elijas.
"Esta publicación de blog puede hacer referencia a productos que ya no están disponibles o que ya no reciben soporte. Para obtener la información más actualizada sobre los productos y soluciones F5 NGINX disponibles, explore nuestra familia de productos NGINX . NGINX ahora es parte de F5. Todos los enlaces anteriores de NGINX.com redirigirán a contenido similar de NGINX en F5.com.