Desarrollar el empaquetado y despliegue de aplicaciones monolíticas utilizando contenedores permite aumentar la seguridad y portabilidad. Pero esto es solo el primer paso. Los verdaderos beneficios provienen de descomponer esas aplicaciones en microservicios para mejorar la agilidad, la velocidad de entrega y, en consecuencia, el time-to-market: reducir el tiempo que transcurre desde que llega una propuesta desde Negocio hasta que se da la respuesta adecuada desde TI y se pone en producción.
Llevamos tiempo viendo cómo las empresas inician su camino hacia la nube: migrando los servidores sobre los que ejecutan sus aplicaciones tradicionales a proveedores de nube pública. Como consecuencia, se enfrentan a escenarios mixtos, de cloud híbrida, en los que una parte de la infraestructura se encuentra en on-premise y convive con una serie de servicios que se ejecutan en la nube. El resultado es una infraestructura aplicativa prácticamente igual de cerrada que la previa, solo que ejecutándose en el CPD de un proveedor cloud, lo cual aporta pocos beneficios reales.
La gran revolución de los contenedores y de Kubernetes ha sido el “comoditizar” la plataforma de ejecución, permitiendo migrar cargas de trabajo sin necesidad de realizar grandes transformaciones intermedias, abriendo las puertas a una verdadera hibridación de la nube con el on-premise, y también entre las diferentes nubes. Las principales ventajas de este modelo son la reducción del temido vendor lock-in, así como la posibilidad de escoger el proveedor más económico o que mejor se ajuste a las necesidades de cada momento.
Así mismo, existe un creciente interés en construir soluciones utilizando los servicios más diferenciales o que mejor respondan a una determinada necesidad, independientemente de qué proveedor cloud los ofrezca. Por ejemplo, usar determinados servicios de un proveedor (analítica, inteligencia artificial, machine learning, blockchain, etc.) mientras el resto del aplicativo está desplegado en otro.
Estas dos aproximaciones se engloban en esta tendencia que llamamos multicloud.
Facilitar el multicloud
La mayoría de las grandes empresas son conscientes de que su estrategia debe ser multicloud, y hoy en día el uso de contenedores y Kubernetes se ha convertido en un estándar de facto, soportado como servicios gestionados por todos los proveedores: Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE) y Amazon Elastic Container Service for Kubernetes (EKS).
Una empresa que invierta en preparar sus aplicaciones para ser desplegadas en contenedores podrá hacerlo en una u otra nube con muy poco esfuerzo. Pero para conseguirlo hay que superar una serie de retos, empezando por aclarar cómo quiere afrontar y definir sus arquitecturas híbridas y multicloud. En everis contamos con una amplia experiencia en proyectos de transformación hacia arquitecturas híbridas y multicloud, y estamos inmersos en varios proyectos de empresas de primer nivel en sectores tales como banca, industria, utilities o telco.
En nuestra experiencia, lo primero es definir a nivel estratégico cómo se quiere afrontar el multicloud: si una misma aplicación dará servicio simultáneamente desde diferentes nubes, si se pretende mover las cargas de una nube a otra sin esfuerzo
o si se desea que una aplicación desplegada en una nube pueda consumir servicios de otra de forma fácil y transparente. Hay muchas preguntas que hacerse y resolver.
Una vez definida la estrategia, el siguiente paso es diseñar y establecer la plataforma multicloud. Aunque los servicios gestionados de Kubernetes permiten desarrollar aplicaciones que se pueden desplegar en cualquier nube, a día de hoy carecen de la madurez suficiente para su consumo directo: exigen mucho esfuerzo, sobre todo por lo que a configuración y seguridad se refiere, para dar un servicio que se pueda considerar de nivel productivo empresarial. En general, existen dos caminos para llevar esto adelante.
- Comprar un producto que ya empaquete Kubernetes a nivel productivo empresarial. En esta vía destacan soluciones como Redhat Openshift Container Platform, que everis utiliza internamente e implanta frecuentemente en sus clientes. Esta solución permite ahorrar mucho esfuerzo en el despliegue de una plataforma de este tipo, economizando también en servicios profesionales de ingeniería y operación.
- La segunda alternativa es construirlo. Para ello, es recomendable partir como mínimo de los servicios nativos de Kubernetes de la nube. En este caso, es necesario hacer productivos estos servicios para que se adecúen a los requerimientos empresariales en ámbitos como las políticas, seguridad, compliance, monitorización, integraciones con gestores de identidades, operación, etc. También es necesario definir e implementar la interconexión con otros servicios tales como el almacenamiento persistente.
Los verdaderos beneficios provienen de descomponer las aplicaciones monolíticas en microservicios
Hacia cloud native
En el ámbito de hybrid y multicloud trabajamos con grandes empresas que buscan modernizar su plataforma y arquitectura de aplicaciones para aprovechar las ventajas que promete la nube, ya sea contenerizando y migrando las aplicaciones existentes al nuevo modelo o bien creando nuevas aplicaciones nativas.
Por un lado, encontramos proyectos en los que hay que crear la plataforma e integrarla en los procesos de despliegue continuo para, después, analizar las aplicaciones, contenerizarlas y migrarlas a esta nueva plataforma. Evolucionar el empaquetado y despliegue de aplicaciones monolíticas utilizando contenedores ofrece ventajas directas, como una mayor seguridad y portabilidad. No obstante, los verdaderos beneficios provienen de descomponer las aplicaciones monolíticas en microservicios adoptando modelos nativos cloud. Estas aplicaciones son mucho más flexibles y permiten adaptarse mucho mejor a los cambios que provoca el mercado.
Además de estos proyectos de migración y modernización de aplicaciones, también realizamos otros de desarrollo de nuevas aplicaciones basadas en arquitecturas nativas cloud, aplicaciones que, de serie, se empaquetan en contenedores y se podrán desplegar sobre cualquier plataforma Kubernetes. Gracias a ello, las aislamos de la infraestructura, que pasamos a considerar comoditizada, y podrían ser ejecutadas en cualquier nube, o incluso en on-premise, para consumir los servicios de valor añadido de las diferentes nubes cuando aporten valor.
Iteraciones trimestrales
El modelo de trabajo y colaboración que proponemos es ágil e iterativo, marcando objetivos trimestrales en los que buscamos alcanzar metas concretas que aporten valor en tiempos acotados. Por ejemplo, ser capaces de desplegar una primera plataforma productiva con los servicios básicos acordados, crear los primeros flujos de integración y despliegue para un tipo de aplicación, contenerizar y desplegar la primera aplicación sobre la plataforma, etc.
En los siguientes ciclos seguimos evolucionando, por ejemplo, ampliando servicios en la plataforma base, desplegando entornos adicionales o actualizando los existentes, integrando la plataforma con nuevos sistemas, ampliando la monitorización y observabilidad, extendiendo los flujos de integración continua, probando nuevos productos, etc.
Se trata de ir añadiendo nuevas funcionalidades que permitan facilitar futuros desarrollos y que las empresas puedan ir mucho más rápido que antes. Siempre en busca de ese objetivo final: reducir el time-to-market.