Planifica tu migración a Google Cloud

Juan Francisco
6 min readSep 23, 2022

--

La adopción de nube pública ha sido un tema en incremento en estos últimos años; empresas de todo tipo y tamaño han tomado la decisión de migrar sus cargas de trabajo locales hacia la nube para aprovechar sus bondades (elasticidad, escalamientos, seguridad, ahorro de costos, etc).

Tomar la decisión de migrar a la nube es un tema complejo que involucra muchos aspectos y es necesario contar con una planificación adecuada para que el proceso sea exitoso.

En este artículo te contaré acerca del proceso de migración recomendado por google para realizar una planificación adecuada en tu viaje a la nube.

El proceso de migración lo podemos asimilar como un viaje. Te encuentras en el punto A con tu infraestructura y aplicaciones y deseas llegar al punto B. Para ir desde A hasta B, puedes elegir diferentes rutas según tú realidad (tiempo y dinero). Google propone realizar el proceso migratorio en 4 fases las cuales son : Evaluación, Planificación, Implementación y Optimización.

Evaluación

Como primer paso del proceso de migración, es necesario entender y comprender las cargas de trabajo y la configuración que tienen los diversos entornos actuales. Cuando tenemos una gran cantidad de cargas de trabajo que debemos migrar a la nube es muy común encontrarnos con sistemas legados que poseen poca o nula documentación. Por ello es importante realizar un inventario de la infraestructura y las cargas de trabajo que vamos a migrar ( sistemas, bases de datos, agentes de mensajes, almacenes de datos y dispositivos de red).

El inventario de infraestructura debe contener la información de los servidores y especificaciones actuales. En algunas ocasiones este proceso puede realizarse de forma manual, mediante una planilla de spreadsheet por ejemplo. Cuando contamos con infraestructura virtualizada o en otras nubes podemos utilizar herramientas como Stratozone, que permite obtener el inventario de la infraestructura de forma automática utilizando un agente que se despliega en la infraestructura de origen.

Ejemplo de Inventario de Servidores

Además de la infraestructura es de suma importancia identificar las cargas de trabajo que están operando en el escenario actual y conocer las dependencias y restricciones que posee cada una de ellas.

Ejemplo de Inventario de Apps

Teniendo esto en mente podemos realizar una matriz para organizar las cargas de trabajo en categorías según su complejidad y riesgo de migrarlas a Google Cloud.

En este ejemplo de matriz , hay dos dimensiones de los criterios de evaluación. Es posible que tus cargas de trabajo requieran más dimensiones o consideraciones adicionales.

De esta forma podremos identificar las cargas de trabajo candidatas para migrarlas primero. Puedes elegir solo una o incluir muchas cargas de trabajo en la lista de migración(Backlog). Las cargas de trabajo que se migran primero permiten que tus equipos ejecuten y prueben el entorno de la nube, en el que pueden enfocarse en la migración en lugar de en la complejidad de migración. Comenzar con cargas de trabajo menos complejas disminuye el riesgo inicial, porque luego podrás aplicar los conocimientos nuevos de tu equipo a cargas de trabajo más difíciles de migrar.

La fase de evaluación nos permite identificar dependencias y requisitos de las cargas de trabajo, realizar cálculos del costo total de propiedad y establecer una base inicial para definir los servicios de nube que utilizaremos.

Planificación

En la fase de planificación se deberán sentar las bases operativas de la nube, con la finalidad de permitir un escalamiento flexible y seguro en la medida que incorporamos cargas de trabajo en el nuevo ambiente. Para ello es necesario tener en mente que la operatividad cloud es un proceso evolutivo que requiere tiempo y madurez de los equipos de administración, por ello cuando se establezcan las reglas, administración y configuración del entorno se debe dejar espacio para cambios posteriores.

Para planificar tu migración, debes hacer lo siguiente:

  • Establecer la administración de identidades de usuario y servicio.
  • Diseñar la organización de recursos.
  • Definir grupos y funciones para el acceso a recursos.
  • Diseñar la topología de red y establecer la conectividad.
  • Establecer una política clara sobre la gestión y transparencia de costos

Implementación

Los procesos de migración son complejos como ya mencionaba, existen diversos factores que considerar a la hora de decidir cual camino tomar para nuestras cargas de trabajo.

Existen los siguientes tipos principales de migraciones que podemos elegir para nuestras cargas de trabajo: Lift-and-shift, Improve-and-move y remove-and-replace.

Lift-and-shift

En una migración con cero o pocas modificaciones y refactorizaciones. Las modificaciones que apliques a las cargas de trabajo que se migrarán, son los cambios mínimos que debes realizar a fin de que funcionen en el entorno de destino. Este enfoque de migración permite realizar migraciones rápidas, pero no permite aprovechar las características nativas de la nube. Si deseas realizar una migración lift-and-shift puedes utilizar Migrate to Virtual Machines (Migrate for Compute Engine) un servicio de Google Cloud que permite replicar rápidamente VM a Google Cloud desde un entorno local o de otras nubes como AWS o Azure.

Arquitectura de Migrate to Virtual Machines

Improve-and-move

Este tipo de migración requiere mejorar o modernizar las cargas de trabajo con la finalidad de aprovechar las capacidades nativas de la nube (mejorar en función del rendimiento, el costo o la experiencia del usuario).

Por otro lado, este estilo de migración lleva más tiempo que las migraciones del tipo lift-and-shift, ya que se debe refactorizar para que las cargas de trabajo se desplieguen en el entorno cloud. Es necesario evaluar el tiempo y el esfuerzo adicionales para realizar este proceso.

La refactorización de las aplicaciones requieren el dominio de diferentes habilidades y prácticas como la contenerización de aplicaciones, orientación a servicios de negocio, pipelines de Integración y Entrega continua (CI/CD), la comprensión y desacoplamiento de aplicaciones, entre otras.

Pipeline de Integración y Entrega Continua (CI/CD) en Google Cloud

Remove-and-replace

Este enfoque se refiere a retirar una carga de trabajo y volver a diseñar y reescribirla por completo como una aplicación nativa de la nube.

Si la actual carga de trabajo es muy costosa migrarla con uno de los enfoques mencionados antes o no por alguna restricción de licenciamiento o cumplimiento no se admite en Google Cloud, puedes hacer una migración de este tipo.

Este tipo de migraciones permite aprovechar al máximo las funciones de Google Cloud, como la escalabilidad horizontal, los servicios altamente administrados y la alta disponibilidad. Además es una buena oportunidad para quitar la deuda técnica de la versión heredada existente.

Sin embargo, pueden llevar más tiempo que los tipos de migraciones, mencionados anteriormente.

Independiente del camino que elijas para migrar tus cargas de trabajo hay que tener en mente, cuánta automatización y flexibilidad necesitas.

Optimización

Después de migrar tus cargas de trabajo y darle rodaje a tu equipo con la operatividad en Google Cloud, puedes comenzar a optimizar tu entorno cloud.

  • Mantener capacitado continuamente a tu equipo de desarrollo y operaciones.
  • Mejorar la Observabilidad de los sistemas que esten en producción para garantizar que todo en tu entorno funcione como se espera y mejorar prácticas y procesos.
  • Automatizar todo, ya que disminuye el riesgo, permite reducir costos y ahorrar tiempo. Los equipos también se vuelven más eficientes, porque no tienen que esforzarse en tareas repetitivas
  • Codificar todo, mediante la implementación de procesos como infraestructura como código y política como código, puedes hacer que tu entorno sea completamente auditable y repetible.
  • Contar con un enfoque de desarrollo basado en pruebas.
  • Usar los servicios administrados en lugar de los autoadministrados
  • Optimizar el rendimiento y la escalabilidad, puedes reforzar los recursos existentes, agregar más cuando los necesites y quitar recursos innecesarios de forma escalable.
  • Reducir costos, analizar tus informes de facturación con el fin de estudiar tus tendencias de gasto y determinar qué productos de Google Cloud usas con más frecuencia.

La fase de optimización hay que pensarlo como una fase continua que permita mejorar y asegurar las implementaciones en la nube en la medida que se van incorporando nuevas capacidades en la organización.

--

--

Juan Francisco

Soy ingeniero informático, autodidacta y apasionado por la tecnología, trabajo actualmente en ZentaGroup liderando el área de Arquitectura.