¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
Conoce nuestra marca.¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
Conoce nuestra marca.dev
Tomás Calleja 06/02/2020 Cargando comentarios…
Anthos es la solución propuesta por Google para desarrollar arquitecturas híbridas y, dentro de poco, también en arquitecturas multi nube. Anthos es una plataforma, un stack, un conjunto de piezas que nos permite modernizar nuestras aplicaciones y conectar nuestro data center con Google Cloud Platform (GCP).
En este post, vamos a abrir la tapa y ver qué es Anthos, sus elementos, sus fortalezas y cuándo merece la pena usarlo. Pero, antes de empezar a hablar de Anthos vamos a poner las bases necesarias para entenderlo. Veremos qué es la nube híbrida y cuando tiene sentido usarla. Una vez claros estos conceptos veremos la propuesta tecnológica de Anthos y los problemas que soluciona.
Preparados, listos, ¡ya!
La nube híbrida o Hybrid Cloud consiste en hacer un puente entre los entornos on premise y el cloud público para poder ejecutar nuestros procesos en cualquiera de los entornos de la manera más integrada posible. Hablando a 100.000 metros de altura, se compondría de 3 piezas: entorno on premise, entorno en la nube y la conexión entre ellas (por VPN o conexión directa).
Esto es perfecto para las empresas con grandes volúmenes de carga en entornos on premise. Muchas de estas empresas quieren modernizar sus aplicaciones, pero aún no están preparadas para migrar completamente a la nube porque o no quieren o no pueden.
Por supuesto, que esto no es una solución perfecta en todos los casos. Vamos a ver algunos ejemplos en los que aplicar el enfoque de nube híbrida sí que tiene más sentido.
Mirándolo desde otro punto de vista, podemos considerar que la nube híbrida puede ser una manera de realizar la transición de on premise a la nube en la que hay un periodo de convivencia que se puede extender todo el tiempo que sea necesario.
Tradicionalmente, el camino a la nube se basaba en tres aproximaciones:
El enfoque de la nube híbrida es diferente a estos tres caminos ya que busca modernizar las aplicaciones on premise para luego poder elegir dónde las queremos ejecutar. Otra diferencia importante es que podemos considerar la nube híbrida como una fase de transición o como un final, quedándonos en la nube híbrida todo el tiempo que queramos.
Gracias a las soluciones de nube híbrida es posible hacer la transición de manera sencilla y segura ejecutando cargas en los dos sitios de la manera más homogénea posible.
Como ya hemos dicho al principio del post, Anthos no es un producto, sino una manera de hacer la nube híbrida según la visión de Google. Es una solución que va más allá de conectar dos entornos y poder establecer comunicaciones entre ellos de manera segura. Necesitamos que tanto en cloud como en on premise la manera de ejecutar nuestras aplicaciones sea similar.
Como vimos en este otro post, la mejor manera (o una de las mejores) de construir o modernizar aplicaciones consiste en ejecutarlas en microservicios sobre contenedores controlados por Kubernetes y usando Istio para quitarles todas esas tareas que no son propiamente de los microservicios. Para mejorar la observabilidad de nuestra infraestructura tendremos un sistema unificado como puede ser Stackdriver.
Lo primero que tenemos que hacer es mover todas las cargas posibles (stateless y stateful) a un cluster kubernetes con Istio y los sistemas de observación que tengamos dentro de on premise. Con este paso, ya habremos modernizado nuestra infraestructura pero aún no podemos usar todo el potencial de la nube pública, en este caso GCP.
El siguiente paso sería conectarnos con nuestro entorno cloud mediante uno de estos tres tipos, según nuestras necesidades de conexión:
Por último, nos queda configurar nuestro Istio en nuestros clusters para que puedan encontrar y autenticarse correctamente entre ellos.
Llegados a este punto, el avezado lector estará pensando: “si con esta configuración puedo ejecutar kubernetes y compañia sobre cualquier plataforma e incluso conectarlas de forma segura... ¿para qué $%&¬ necesito Anthos?”
La respuesta a esta pregunta es la que vamos a intentar responder en lo que queda del post. Pero aquí va un spoiler: si bien puedes tener tu infraestructura híbrida sin Anthos donde quieras, Anthos te va a hacer la vida mucho más fácil según se complica tu infraestructura más y más y, eso amigos, es el quid de la cuestión. Como diría cierto ex presidente de España: “Anthos te va a hacer la vida mucho más fácil y mucho fácil. Cuanto más peor para ti, mejor; y cuanto más mejor para ti, también.
Seguro que se ha entendido perfectamente, pero, aún así, vamos a justificar nuestro razonamiento viendo los problemas más importantes de tener un entorno híbrido:
Como vemos, no solo es importante poder ejecutar en cualquier entorno, también hay que tener en cuenta la gestión, configuración y observabilidad de la infraestructura resultante.
La idea de Anthos es poder trabajar en varios entornos con las mismas facilidades con que trabajaríamos si solo estuviéramos en la nube. Esto no es nada fácil y será un camino largo por recorrer. Según van pasando los meses, Anthos va ganando piezas y funcionalidades para conseguir este objetivo.
Anthos nos va a permitir trabajar con los clusters de Kubernetes de manera homogénea permitiéndonos instalar en nuestro entorno on premise GKE on prem de forma que tendremos la opción de usar los clusters on prem de una manera muy similar a como lo hacemos en GCP. Mediante un agente vamos a poder conectar nuestro GKE on prem a GCP y, así, tener en el GKE hub todos nuestros clusters, pudiendo ver su información, enviar aplicaciones y gestionarlos desde la consola de GCP. Además de Kubernetes, gracias a Anthos Service Mesh nos será posible tener Istio de una manera gestionada en todos los clusters trabajando como una malla única. Otro punto importante a tener en cuenta es la gestión de la configuración que Anthos Config Management hace sencillo y robusto gracias al enfoque de Configuración como Código.
Estos son los pilares de Anthos, sus piezas clave, pero no los únicos:
De momento se puede ejecutar solo sobre servidores VCenter y, a diferencia de otras soluciones, aquí no hay que comprar nada de hardware, todo se soluciona mediante las instalación de una OVA (Open Virtual Appliance) en el servidor.
GKE nos permite tener, sin hacer nada, un sistema de gestión de clusters de Kubernetes listo para producción. Todo con las mejores prácticas y casi todas las ventajas de usar GKE en la nube, con funcionalidades como reparación de nodos o actualizaciones automáticas. Además, está integrado con muchas opciones de GCP como el registro de contenedores o Stackdriver.
Para poder hacer esto posible se crea un cluster especial llamado admin cluster que se encarga de gestionar el resto de clusters de GKE on prem y conectarse con la nube. Con este producto puedes gestionar la identidad como quieras, usando la de Google (Cloud Identity) u otra que prefieras.
La realización de la conexión entre este GKE y GCP se realiza mediante un agente implementado de forma que no se necesita disponer de una ip expuesta al exterior (con tener conexión a internet, vale). Una vez realizada la conexión tienes que autentificar a los usuarios con los credenciales de GKE on prem en la consola de Google. Puede parecer lioso, pero esto nos permite que cada usuario pueda tener permisos diferentes. Por decirlo de otra manera, cada usuario verá en la consola de GCP los clusters con los mismos permisos que tenga en el entorno on premise ya que necesita registrarlos con sus credenciales.
Desde la versión 1.1 puedes integrar los clusters con Stackdriver para usar el sistema de monitorización de GCP. Esto es muy interesante ya que nos ofrece una suite completa de observabilidad completamente gestionada.
En cuanto a los modos de red, tendremos dos opciones de configuración: el llamado modo isla (cada cluster tiene su espacio de direcciones y necesita usar servicios para comunicarse con el exterior) y el modo flat ip (todos los clusters comparten espacio de direcciones). El modo flat ip es relativamente nuevo y aún no está listo para ser usado en producción por lo que se recomienda el uso del modo isla.
Istio gestionado y preparado para producción que podemos instalar fácilmente en nuestros clusters on premise o en GCP. Al ser un servicio completamente gestionado no nos tenemos que preocupar del aprovisionamiento y manejo de Istio en nuestros clusters. Esto nos quita mucha carga de gestión y nos da tranquilidad.
Centrado en la seguridad, se encargará de configurar los certificados por toda la malla de forma que minimizamos los posibles errores y aseguramos que los secretos se rotan de manera correcta entre toda nuestra red de microservicios.
Nos permite tener un Istio con las mejores prácticas y actualizado en todos nuestros clusters.
Es un producto muy nuevo que permitirá tener todo el service mesh controlado desde un panel de control en GCP (la monitorización solo funciona con los clusters en GCP).
Considerada la pieza más innovadora de Anthos, Config Management no tiene correspondencia Open Source y su objetivo es cambiar la manera en la que controlamos la configuración de Kubernetes para poder tenerlo todo bajo control. Esto se consigue al usar la configuración como código, también conocido como CaC.
La solución propuesta es parecida a la que se usa en IaC o Infraestructura como Código, en la que usamos código para definir el estado deseado de nuestra infraestructura. Al tratarla como código podemos gestionarla con un repositorio git, saber quién realizó los cambios, volver a estados anteriores o reparar fácilmente algún desajuste. El código estará en un repositorio Git únicamente de forma que tendremos una única fuente de verdad para toda nuestra configuración.
En el caso de la configuración, nos aprovechamos de dos características de kubernetes:
Por un lado, tenemos todo en objetos que pueden ser consultados o modificados y, por el otro, la opción de decirle a Kubernetes el estado deseado.
Con Anthos Config Management tendremos en todos los entornos un agente que estará revisando todo el rato que el estado de los objetos de configuración es el correcto y, luego, cada Kubernetes de cada cluster se encargará de que se cumplan las condiciones definidas por sus objetos.
El flujo para hacer los cambios sería el siguiente:
Ahora vamos a ver qué pasaría si alguien se salta este procedimiento y cambia un objeto a manita de un determinado cluster.
Migrate for Anthos es la manera sencilla de meter en contenedores máquinas virtuales, ya sea desde servidores físicos, desde Compute Engine o desde otras plataformas como AWS.
Además de poder migrar cargas podemos hacer simulaciones y planificar las migraciones mediante la definición de cuadernos de migración.
Este servicio no tiene coste de licencia asociado a su uso, no es necesario tener la licencia de Anthos, aunque sí nos facturará por el consumo de recursos que usamos para la migración, como pueden ser las máquinas virtuales que controlan el proceso o el tráfico de red utilizado.
Una de las mayores ventajas de la nube es poder usar sus productos serverless para ejecutar código de manera segura, escalable y muy muy fácil. El serverless es un concepto genial que ha tenido históricamente un gran pero: el vendor lock in que nos dificulta cambiar de plataforma de manera sencilla.
Gracias a K-native (versión Open Source de Cloud Run) se pueden tener cargas serverless usando contenedores de una manera portable. Cloud Run es la versión gestionada que nos permite lanzar nuestros servicios desarrollados en contenedores en GCP, en nuestros clusters de kubernetes ahora permite también ejecutarlos en nuestros clusters on prem, todo ello de manera integrada y muy, muy sencilla.
El marketplace de GCP es un sitio donde se puedeN encontrar soluciones listas para usar fácilmente. En él, tenemos soluciones gratuitas y de pago (con la facilidad de unificar el pago en nuestra factura de GCP). Gracias a unos filtros podemos seleccionar aquellas soluciones que están pensadas para ser ejecutadas en clusters Kubernetes, tanto en nube como en on prem.
Las soluciones tienen un apartado que nos permite configurar la solución y una documentación donde veremos cómo usarlas. En el momento en que estoy escribiendo este post hay más de 75 soluciones con el logotipo de Anthos… ¿Qué necesitamos para desplegar un cluster de Casandra en nuestro datacenter? Va a ser cuestión de un par de clicks….
Para terminar vamos a ver una serie de conclusiones sobre Anthos:
Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.
Cuéntanos qué te parece.