Demostrador: migración a Cloud con Center
En este demostrador de Onesait Platform Center, vamos a enseñar cómo puedes realizar de manera rápida y sencilla una migración a Cloud sobre Kubernetes de una aplicación legacy desplegada de forma tradicional.
Vamos a ello.
Creación de un proyecto en el Center
En primer lugar, desde Center, vas a crear el proyecto de migración, asignando en su configuración la siguiente información:
Información administrativa y usuarios asociados al proyecto
Configuración de DevOps (Gitlab, Jenkins, etc.)
Entornos de Kubernetes donde se desplegará la solución en Cloud
Realización del Assessment de la aplicación legacy
Una vez creado el proyecto, el siguiente paso va a ser identificar los elementos que componen la aplicación legacy a migrar a Cloud. Para ello, se realiza un Assessment; esto es, la identificación de todos los elementos lógicos de la aplicación y su configuración de despliegue en un entorno tipo.
Para ello, mediante un formulario (aunque en el futuro tenemos pensadas alternativas mas automáticas) se identifican:
- Frontales Web de la aplicación.
- Módulos de Back-End (Servidores JEE, Microservicios Spring Boot, etc.).
- Bases de datos.
- Procesos batch.
- Middleware de integración (API Managers, ESBs, Brokers de mensajería, etc.).
- Balanceadores.
Alternativamente al formulario, y de manera bidireccional, esta información se plasma en un Diagrama de Assessment editable, organizado por capas:
Contenerización de la aplicación
Finalizado el Assessment, el siguiente paso hacia el Cloud es convertir los elementos lógicos identificados en la aplicación en contenedores desplegables como cargas de trabajo de Kubernetes.
Para ello, por cada elemento identificado se crea un contenedor sobre un diagrama editable:
El resultado de la contenerización se plasma en los correspondientes descriptores Dockerfile sobre el GitLab del proyecto, así como en la publicación en un registro de las imágenes de los diferentes contenedores:
Aplantillado de la aplicación con Helm
Con la contenerización finalizada, y las relaciones entre componentes lógicos definidas en el Assessment, el Center ya dispone de una imagen para inferir una propuesta de despliegue sobre Kubernetes.
En el siguiente paso, esta información es utilizada para generar de forma automática un Diagrama Helm; una representación gráfica de todos los descriptores Helm de la aplicación. Para ello se crea de forma automática:
- Un Namespace para la aplicación.
- Un Deployment y un Service por cada contenedor.
- Un Config-map con la configuración de cada base de datos contenerizada.
- Un Secret con las credenciales de cada base de datos contenerizada.
- Un PV y un PVC por cada base de datos, para proporcionar almacenamiento persistente.
- Un PV y un PVC general para el resto de Deployments que no sean base de datos.
- Un Ingress con reglas de balanceo hacia los Service que tuvieran reglas de balanceo en en Assessment.
Como en el resto de elementos generados por el Center, este diagrama es editable para que el arquitecto refine o modifique cualquier elemento.
En resumen, un diagrama Helm representa una abstracción gráfica de un Chart Helm, de manera que un arquitecto sin conocimientos muy profundos de Helm pueda construir sus Charts.
Pero un diagrama Helm se termina materializando en un Chart Helm, con los descriptores YAML y la configuración externalizada en un fichero «values.yaml». Estos chart pueden descargarse o versionarse en el GitLab del proyecto:
Despliegue en Kubernetes
Un Diagrama Helm también pude instalarse en Kubernetes sobre uno de los entornos del proyecto. Para ello, seleccionando el diagrama, elige «Desplegar Chart Helm»:
Al haberse externalizado la configuración, se pueden sobrescribir determinadas variables para el entorno:
La instalación finaliza mostrando el log de Helm:
Y ya quedaría desplegada la aplicación en el entorno Kubernetes seleccionado:
Y con esto finalizamos el demostrador. Esperamos que os haya parecido interesante, y si os surge alguna duda al respecto no dejéis de dejarnos un comentario. Además, si estáis interesados en que os enseñemos esta demostración en directo, no dudéis en contactar con nosotros para concertar una cita en nuestro correo de contacto contact@onesaitplatform.com.
Imagen de cabecera: Kari Shea en Unsplash.