Migración a Google Cloud: comienza ahora

En este documento, encontrarás ayuda para planificar, diseñar e implementar el proceso de migración de tus cargas de trabajo a Google Cloud. Mover apps de un entorno a otro es una tarea difícil, incluso para equipos experimentados, por lo que debes planificar y ejecutar la migración con cuidado.

Este artículo es parte de la siguiente serie:

Este documento es útil si planeas hacer una migración de un entorno local, un entorno de hosting privado o algún otro proveedor de servicios en la nube a Google Cloud, o si evalúas la posibilidad de migrar y deseas explorar cómo podría ser.

Comienza el proceso

Cuando planifiques tu migración a Google Cloud, comienza por definir los entornos que están involucrados en la migración. Tu punto de partida puede ser un entorno local, un entorno de hosting privado o algún otro entorno de nube pública.

En un entorno local, tienes propiedad y responsabilidad absolutas. Conservas el control total sobre todos los aspectos del entorno, como el enfriamiento, la seguridad física y el mantenimiento del hardware.

En un entorno de hosting privado, como una instalación de colocación, debes subcontratar parte de la infraestructura física y su administración a un tercero. Por lo general, esta infraestructura se comparte entre los clientes. En un entorno de hosting privado, no tienes que administrar los servicios de seguridad ni la seguridad física. Algunos entornos de hosting te permiten administrar parte del hardware físico como los servidores, bastidores y dispositivos de red, mientras que otros administran ese hardware por ti. Por lo general, los cables de red y de alimentación se proporcionan como un servicio para que no tengas que administrarlos. Tienes el control total sobre los hipervisores que virtualizan los recursos físicos, la infraestructura virtualizada que aprovisionas y las cargas de trabajo que ejecutas en esa infraestructura.

Una ventaja del entorno de nube pública es que no tienes que administrar toda la pila de recursos tú mismo. Puedes enfocarte en el aspecto de la pila que consideres más valioso. Al igual que en un entorno de hosting privado, no tienes que administrar la infraestructura física subyacente. Además, no es necesario que administres el hipervisor de virtualización de recursos. Puedes compilar una infraestructura virtualizada y, luego, implementar tus cargas de trabajo en esta infraestructura nueva. También puedes comprar servicios completamente administrados, en los que solo te debes encargar de tus cargas de trabajo y transferir la carga operativa de administrar entornos de ejecución.

En este documento, se evalúan los siguientes aspectos para cada entorno y, también, quién debe proporcionar y administrar los servicios relevantes:

Recursos Entorno local Entorno de hosting privado Entorno de nube pública
Seguridad física y otros tipos de seguridad Proveedor de servicios Proveedor de servicios
Cables de red y de alimentación Proveedor de servicios Proveedor de servicios
Hardware (incluido el mantenimiento) Depende del proveedor de servicios Proveedor de servicios
Plataforma de virtualización Proveedor de servicios
Recursos de la app Tú (con el tiempo, aprovecharás los servicios completamente administrados)

En este documento, el entorno de destino es Google Cloud.

Después de definir tus entornos de inicio y destino, define los tipos de cargas de trabajo y los procesos operativos relacionados que están dentro del alcance de la migración. En este documento, se consideran dos tipos de cargas de trabajo y operaciones: heredadas y nativas de la nube.

Las cargas de trabajo y operaciones heredadas se desarrollan sin tener en cuenta los entornos de nube. Estas cargas de trabajo y operaciones pueden ser difíciles de modificar, y su ejecución y mantenimiento pueden ser costosos, porque no suelen admitir ningún tipo de escalabilidad.

Las cargas de trabajo y las operaciones nativas de la nube son portátiles, accesibles, seguras y escalables de forma nativa. Las cargas de trabajo y las operaciones pueden aumentar la productividad y la agilidad de los desarrolladores, ya que estos pueden enfocarse en las cargas de trabajo reales, en lugar de invertir su esfuerzo en administrar entornos de ejecución y desarrollo, o de lidiar con procesos de implementación manuales y complejos. Google Cloud también tiene un modelo de responsabilidad compartida de seguridad. Google Cloud se encarga de la seguridad física y la seguridad de la infraestructura, y tú eres responsable de la seguridad de las cargas de trabajo que implementas en la infraestructura.

Si se tienen en cuenta estos tipos de entornos y cargas de trabajo, tu situación inicial es una de las siguientes:

  • Tienes un entorno de hosting local o privado con cargas de trabajo y operaciones heredadas.
  • Tienes un entorno de hosting local o privado con cargas de trabajo y operaciones nativas de la nube.
  • Tienes un entorno de hosting privado o de nube pública con cargas de trabajo y operaciones heredadas.
  • Tienes un entorno de hosting privado o de nube pública con cargas de trabajo y operaciones nativas de la nube.

El proceso de migración depende de tu punto de partida.

La migración de una carga de trabajo desde un entorno local heredado o un entorno de hosting privado a un entorno nativo de la nube, como una nube pública, puede ser difícil y riesgosa. Las migraciones exitosas cambian la carga de trabajo para migrar lo menos posible durante las operaciones de migración. Para mover apps locales heredadas a la nube, se suelen requerir varios pasos de migración.

Tipos de migraciones

Existen los siguientes tipos principales de migraciones:

  • Lift-and-shift
  • Mejorar y mover
  • Extraer y reemplazar

En las secciones siguientes, cada tipo de migración se define con ejemplos de cuándo usar cada uno.

Lift-and-shift

En una migración lift-and-shift, debes mover las cargas de trabajo de un entorno de origen a un entorno de destino 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 las cargas de trabajo funcionen en el entorno de destino.

Una migración lift-and-shift es ideal cuando una carga de trabajo puede funcionar tal como está en el entorno de destino o cuando hay poca o ninguna necesidad empresarial de cambios. Este tipo de migración es el que requiere menos tiempo porque la cantidad de refactorización se mantiene al mínimo.

Es posible que existan problemas técnicos que requieran una migración lift-and-shift. Si no puedes refactorizar una carga de trabajo que se migrará ni retirarla, debes usar una migración lift-and-shift. Por ejemplo, puede ser difícil o imposible modificar el código fuente de la carga de trabajo, o puede que el proceso de compilación no sea sencillo, por lo que no se podrían producir nuevos artefactos después de refactorizar el código fuente.

Las migraciones lift-and-shift son las más fáciles de realizar porque no se necesita conocimiento técnico nuevo y tu equipo puede usar el mismo conjunto de herramientas y habilidades. Estas migraciones también admiten software listo para usar. Debido a que migras cargas de trabajo existentes con una refactorización mínima, las migraciones lift-and-shift suelen ser las más rápidas, en comparación con las migraciones del tipo mejorar y mover o extraer y reemplazar.

Por otro lado, los resultados de una migración lift-and-shift son cargas de trabajo que no son nativas de la nube que se ejecutan en el entorno de destino. Estas cargas de trabajo no aprovechan al máximo las funciones de Cloud Platform, como la escalabilidad horizontal, los precios detallados y los servicios altamente administrados.

Mejorar y mover

Durante una migración del tipo mejorar y mover, debes modernizar la carga de trabajo mientras la migras. En este tipo de migración, debes modificar las cargas de trabajo a fin de aprovechar las capacidades nativas de la nube y no solo para que funcionen en el entorno nuevo. Puedes mejorar cada carga de trabajo para el rendimiento, las funciones, el costo o la experiencia del usuario.

Si la arquitectura o infraestructura actual de una app no es compatible con el entorno de destino tal como es, se necesita cierta cantidad de refactorización para superar estos límites.

Otro caso en el que se debe elegir este enfoque es cuando se necesita una actualización importante de la carga de trabajo, además de las actualizaciones que necesitas realizar para migrar.

Las migraciones del tipo mejorar y mover permiten que tu app aproveche las características de una plataforma en la nube, como la escalabilidad y la alta disponibilidad. También puedes diseñar la mejora para aumentar la portabilidad de la app.

Por otro lado, las migraciones del tipo mejorar y mover llevan más tiempo que las migraciones lift-and-shift, ya que deben refactorizarse para que la app migre. Debes evaluar el tiempo y el esfuerzo adicionales como parte del ciclo de vida de la app.

Una migración del tipo mejorar y mover también requiere que domines habilidades nuevas.

Extraer y reemplazar

En una migración del tipo extraer y reemplazar, debes retirar una app existente y volver a diseñarla y reescribirla por completo como una app nativa de la nube.

Si la app actual no cumple tus objetivos (por ejemplo, no quieres mantenerla, es muy costoso migrar con uno de los enfoques mencionados antes o no se admite en Google Cloud), puedes hacer una migración del tipo extraer y reemplazar.

Las migraciones del tipo extraer y reemplazar permiten que tu app aproveche al máximo las características de Google Cloud, como la escalabilidad horizontal, los servicios altamente administrados y la alta disponibilidad. Debido a que vuelves a escribir la app desde cero, también debes quitar la deuda técnica de la versión heredada existente.

Sin embargo, las migraciones del tipo extraer y reemplazar pueden llevar más tiempo que las migraciones del tipo mejorar y mover o lift-and-shift. Además, este tipo de migración no se recomienda en el caso de apps listas para usar, porque requiere que se reescriba la app. Debes evaluar el tiempo y el esfuerzo adicionales de rediseñar y reescribir la app como parte de su ciclo de vida.

Una migración del tipo extraer y reemplazar también requiere habilidades nuevas. Debes usar cadenas de herramientas nuevas para aprovisionar y configurar el entorno nuevo y, luego, implementar la app en ese entorno.

Framework para la adopción de Google Cloud

Antes de comenzar la migración, debes evaluar la madurez de tu organización con respecto a la adopción de tecnologías de nube. El marco de trabajo para la adopción de Google Cloud funciona como un mapa que determina dónde se encuentran ahora las capacidades de tecnología de información de tu empresa y como una guía de dónde quieres estar.

Puedes usar este marco de trabajo a fin de evaluar la preparación de tu organización para Google Cloud, determinar qué debes hacer a fin de compensar las diferencias y desarrollar competencias nuevas, como se ilustra en el diagrama siguiente.

Arquitectura del marco de trabajo para la adopción de Google Cloud con cuatro temas y tres fases

En el marco de trabajo, se evalúan los cuatro temas siguientes:

  • Aprenda. La calidad y el escalamiento de tus programas de aprendizaje
  • Liderazgo. La medida en la que tus departamentos de TI cuentan con el respaldo de un mandato del personal directivo para migrar a Google Cloud
  • Escalamiento. La medida en la que usas los servicios nativos de la nube y la cantidad de automatización operativa que tienes en la actualidad
  • Protección. La capacidad de proteger tu entorno actual de accesos inapropiados y no autorizados

Para cada tema, debes estar en una de las tres fases siguientes, según el marco de trabajo:

  • Táctica. No hay planes coherentes que cubran todas las cargas de trabajo individuales que tienes. Lo que más te interesa es obtener un retorno de la inversión rápido y recibir pocas interrupciones en tu organización de TI.
  • Estratégica. Hay un plan preparado para desarrollar cargas de trabajo individuales en el que se tienen en cuenta las necesidades de escalamiento futuras. Te interesa el objetivo a mediano plazo de optimizar las operaciones para que sean más eficientes de lo que son en la actualidad.
  • Transformacional. Las operaciones en la nube funcionan sin problemas, y debes usar los datos que recopilas de esas operaciones para mejorar tu negocio de TI. Te interesa el objetivo a largo plazo de convertir el departamento de TI en uno de los motores de innovación de tu organización.

Cuando evalúes los cuatro temas en relación con las tres fases, obtendrás la escala de madurez para la nube. En cada tema, puedes ver lo que sucede si pasas de adoptar tecnologías nuevas cuando es necesario a trabajar con ellas de forma más estratégica en toda la organización, lo que implica una capacitación más profunda, integral y coherente para tus equipos.

La ruta de la migración

Es importante recordar que una migración es un viaje. Te encuentras en el punto A con tu infraestructura y entornos existentes y deseas llegar al punto B. Para ir desde A hasta B, puedes elegir cualquiera de las opciones descritas arriba.

En el siguiente diagrama, se ilustra la ruta de este viaje.

Ruta de migración con cuatro fases

La migración incluye las cuatro fases siguientes:

  • Evaluación: En esta fase, debes realizar una evaluación exhaustiva y un descubrimiento de tu entorno existente para comprender el inventario de tu app y del entorno, identificar dependencias y requisitos de la app, realizar cálculos del costo total de propiedad y establecer comparativas del rendimiento de la app.
  • Planificación: En esta fase, debes crear la infraestructura de nube básica para que residan tus cargas de trabajo y planificar cómo moverás las apps. Esta planificación incluye la administración de identidades, la estructura del proyecto y de la organización, las herramientas de redes, el orden de las apps y el desarrollo de una estrategia de migración prioritaria.
  • Implementación: En esta fase, debes diseñar, implementar y ejecutar un proceso de implementación para mover las cargas de trabajo a Google Cloud. Es posible que también debas definir mejor tu infraestructura de nube para satisfacer necesidades nuevas.
  • Optimización: En esta fase, debes comenzar a aprovechar al máximo las tecnologías y capacidades nativas de la nube a fin de orientar el potencial de tu empresa a cuestiones como el rendimiento, la escalabilidad, la recuperación ante desastres, los costos, la capacitación y, también, a incorporar el aprendizaje automático y las integraciones de inteligencia artificial para tu app.

Fase 1 de la migración: evaluación

En la fase de evaluación, debes recopilar información sobre las cargas de trabajo que deseas migrar y sus entornos de ejecución actuales.

Haz un inventario

Un aspecto fundamental para lograr una migración exitosa es saber qué apps existen en tu entorno actual (bases de datos, agentes de mensajes, almacenes de datos y dispositivos de red) y las dependencias de las apps para cada una de ellas. Debes enumerar todas las máquinas, especificaciones de hardware, sistemas operativos, licencias y, también, las apps y servicios que usen cada uno de ellos.

Haz un catálogo de apps

Después de hacer tu inventario, puedes crear tu matriz de catálogo para organizar tus apps en categorías según su complejidad y riesgo de trasladarlas a Google Cloud.

En la tabla siguiente, se ejemplifica una matriz de catálogo.

No tiene dependencias ni dependientes Tiene dependencias o dependientes
Elementos esenciales
  • Microservicios sin estado (medio)
  • ERP (difícil)
  • Bases de datos OLTP (difícil)
  • App de comercio electrónico (difícil)
  • Almacenes de datos (difícil)
  • Dispositivo de firewall (no puede)
Elementos no esenciales
  • Sitio web de marketing (fácil)
  • Copia de seguridad y archivo (fácil)
  • Entornos de desarrollo y prueba (fácil)
  • Procesamiento por lotes (fácil)
  • Administración empresarial (difícil)
  • Análisis de datos (difícil)

En este ejemplo de matriz de catálogo, hay dos dimensiones de los criterios de evaluación. Es posible que tus apps requieran más dimensiones o consideraciones adicionales. Crea tu matriz para que incluya todos los requisitos exclusivos de tu entorno.

Capacita al personal de tu organización sobre Google Cloud

Como parte de la fase de evaluación, el personal de tu organización necesita comenzar a aprender sobre Google Cloud. Debes capacitar y certificar a tus ingenieros de redes y software sobre cómo funciona la nube y qué productos de Google Cloud pueden aprovechar, además de qué tipos de marcos de trabajo, API y bibliotecas pueden usar para implementar cargas de trabajo en Google Cloud.

Experimenta y diseña pruebas de concepto

Otra parte importante de la fase de evaluación es elegir una prueba de concepto (PoC) y, luego, implementarla o experimentar con productos de Google Cloud para validar casos prácticos o cualquier área de incertidumbre.

Considera los siguientes casos prácticos:

  • Verificar que una zona pueda iniciar 50,000 núcleos de CPU virtuales
  • Implementar reglas de firewall para una carga de trabajo compleja
  • Comparar el rendimiento de las bases de datos locales con Cloud SQL, Cloud Spanner, Firestore o Cloud Bigtable
  • Experimentar con la disponibilidad de clústeres regionales de GKE
  • Probar la latencia interna y externa de la red de las apps en Google Cloud
  • Evaluar la velocidad y la confiabilidad de una canalización de implementación de Cloud Build para contenedores en GKE
  • Comparar Dataflow con Spark en Dataproc
  • Transferir datos a BigQuery y redactar consultas empresariales clave para probar la precisión
  • Evaluar Cloud Logging para reemplazar otros mecanismos de registro

Para cada caso, debes medir el impacto en tu empresa, de alguna de las siguientes maneras:

  • Si observas una reducción del 95% del tiempo de arranque para iniciar 50,000 núcleos de CPU virtuales en Google Cloud en comparación con tu entorno actual, esto reduce tu tiempo de salida al mercado según un factor determinado. Esta reducción también afecta el tiempo de configuración de tu entorno de recuperación ante desastres mediante la disminución del tiempo de inactividad de tus líneas de negocios importantes.
  • Si puedes tener un plan de recuperación ante desastres siempre activo y disponible a nivel global, puedes aumentar la confiabilidad de tu app.
  • Si usas la tecnología de escalamiento de la nube, puedes disminuir el costo total de los servicios si reduces el escalamiento cuando tus necesidades de recursos son bajas y escalas verticalmente según la demanda.

Calcula el costo total de propiedad

Compilar un modelo de costo total de propiedad te permite comparar tus costos en Google Cloud con los costos que tienes en la actualidad. Existen herramientas que pueden ayudarte, como la calculadora de precios de Google Cloud, y también puedes aprovechar algunas de nuestras ofertas para socios. No olvides los costos operativos de la ejecución local o en tu propio centro de datos: la energía, el enfriamiento, el mantenimiento y otros servicios de asistencia afectan el costo total de propiedad.

Elige qué cargas de trabajo migrar primero

Cuando prepares tu migración, identifica las apps con características que las hacen candidatas para migrarlas primero. Puedes elegir solo una o incluir muchas apps en tu lista de las que se migrarán primero. Las apps que se migran primero permiten que tus equipos ejecuten y prueben apps en el entorno de la nube, en el que pueden enfocarse en la migración en lugar de en la complejidad de las apps. Comenzar con una app menos compleja disminuye el riesgo inicial, porque luego podrás aplicar los conocimientos nuevos de tu equipo a las apps más difíciles de migrar.

Identificar a las apps que se migrarán primero puede ser complejo, pero las buenas candidatas suelen cumplir con muchos de los siguientes criterios de cargas de trabajo:

  • No son fundamentales para la empresa, por lo que la línea principal de negocios no se ve afectada por la migración, porque tus equipos aún no tienen una experiencia significativa con las tecnologías en la nube.
  • No constituyen un caso extremo porque es fácil aplicar el mismo patrón a otras cargas de trabajo que desees migrar.
  • Se pueden usar para crear una base de conocimiento.
  • Cuentan con el respaldo de un equipo muy motivado y dispuesto a realizar ejecuciones en Google Cloud.
  • Las migra un equipo central que también migra otras cargas de trabajo. Migrar la primera carga de trabajo genera más experiencia en ese equipo, lo que puede resultar útil en migraciones de cargas de trabajo futuras.
  • Una carga de trabajo con poca dependencia, por ejemplo, una sin estado, es más fácil de mover porque no afecta a otras cargas de trabajo o implica cambios de configuración mínimos.
  • Requieren cambios mínimos en la app o poca refactorización.
  • No necesitan que se muevan grandes cantidades de datos.
  • No tienen requisitos de cumplimiento estrictos.
  • No requieren licencias de propiedad de terceros porque algunos proveedores no otorgan licencias de sus productos para la nube o pueden requerir un cambio en el tipo de licencia.
  • No se ven afectadas por el tiempo de inactividad provocado por un período de migración de sistemas. Por ejemplo, puedes exportar datos desde tu base de datos actual y, luego, importarlos a una instancia de base de datos en Google Cloud durante un período de mantenimiento planificado. Sincronizar dos instancias de base de datos para lograr una migración sin tiempo de inactividad es más complicado.

Fase 2 de la migración: planificación

En esta fase, debes aprovisionar y configurar la infraestructura y los servicios de nube que admitirán tus cargas de trabajo en Google Cloud. Crear una base de opciones de configuración y servicios críticos es un proceso evolutivo. Cuando establezcas tus reglas, administración y configuración, asegúrate de dejar espacio para cambios posteriores. Evita tomar decisiones que no te permitan adoptar enfoques nuevos. Si necesitas implementar cambios más adelante, desearás tener opciones para admitirlos.

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

  • Establece identidades de usuario y servicio.
  • Diseña tu organización de recursos.
  • Define grupos y funciones para el acceso a recursos.
  • Diseña la topología de red y establece la conectividad.

Establece identidades

En Google Cloud, puedes elegir entre los siguientes tipos de identidad:

  • Cuentas de Google: Una cuenta que, por lo general, pertenece a un usuario individual que interactúa con Google Cloud
  • Cuentas de servicio: Una cuenta que, por lo general, pertenece a una app o un servicio, en lugar de a un usuario
  • Grupos de Google: Una colección con nombre de Cuentas de Google
  • Dominios de G Suite: Un grupo virtual de todas las Cuentas de Google que se crearon en la cuenta de G Suite de una organización
  • Dominios de Cloud Identity: Estos dominios son similares a los de G Suite, pero no tienen acceso a las aplicaciones de G Suite

Para obtener más información, lee sobre cada tipo de identidad.

Por ejemplo, puedes federar Google Cloud con Active Directory para establecer mecanismos de autenticación y autorización coherentes en un entorno híbrido.

Diseña la organización de recursos

Después de establecer las identidades que necesitas para tu app, debes otorgarles permisos en los recursos, como proyectos, carpetas o depósitos, que tu app use. Puedes hacerlo mediante la asignación de funciones a cada identidad. Una función es un grupo de permisos. Un permiso es un grupo de operaciones que se permiten en un recurso.

Para evitar repetir los mismos pasos de configuración, puedes organizar tus recursos en diferentes tipos de estructuras. Estas estructuras están organizadas en una jerarquía:

  • Las organizaciones son la raíz de una jerarquía de recursos y representan una organización real, como una empresa. Una organización puede contener carpetas y proyectos. Un administrador de la organización puede otorgar permisos para todos los recursos incluidos en esa organización.
  • Las carpetas son una capa adicional de aislamiento entre los proyectos y se pueden ver como suborganizaciones de la organización. Una carpeta puede contener otras carpetas y proyectos. Un administrador puede usar la carpeta para delegar derechos de administrador.
  • Los proyectos son las entidades básicas de la organización y deben usarse para acceder a otros recursos de Google Cloud. Cada instancia de recurso que implementes y uses está dentro de un proyecto.

Debido a que los recursos heredan los permisos del nodo superior, puedes evitar repetir los mismos pasos de configuración para los recursos con el mismo superior. Puedes encontrar más detalles sobre el mecanismo de herencia de la administración de identidades y accesos (IAM) en la sección sobre herencia de políticas de la documentación de Resource Manager.

Las organizaciones, las carpetas y los proyectos son recursos y admiten un conjunto de operaciones, como los demás recursos de Google Cloud. Puedes interactuar con estos recursos como lo harías con cualquier otro recurso de Google Cloud. Por ejemplo, puedes automatizar la creación de tu jerarquía con la API de Resource Manager. Puedes organizar la jerarquía de recursos según tus necesidades. El nodo raíz de cada jerarquía es siempre una organización. En las secciones siguientes, hay tipos de jerarquías que puedes implementar en tu organización. Cada tipo de jerarquía se caracteriza por su complejidad de implementación y su flexibilidad.

Jerarquía orientada al entorno

En una jerarquía orientada al entorno, tienes una organización que contiene una carpeta por entorno.

En el siguiente diagrama, se muestra un ejemplo de una jerarquía orientada al entorno.

Arquitectura de una jerarquía orientada al entorno

Los diversos entornos son el desarrollo, el control de calidad y la producción. En cada entorno, hay varias instancias implementadas de las mismas dos apps, My app 1 y My app 2.

Esta jerarquía es fácil de implementar porque solo tiene tres niveles, pero puede presentar desafíos si tienes que implementar servicios compartidos por varios entornos.

Jerarquía orientada a las funciones

En una jerarquía orientada a las funciones, tienes una organización que contiene una carpeta por función empresarial, como la administración y la tecnología de la información. Cada carpeta de función empresarial puede contener varias carpetas de entorno.

En el siguiente diagrama, se muestra un ejemplo de una jerarquía orientada a las funciones.

Arquitectura de una jerarquía orientada a las funciones

En esta jerarquía, las diversas funciones empresariales son las apps, la administración y la tecnología de la información. Puedes implementar varias instancias de My app y servicios compartidos, como Jira y un sitio web.

Esta opción es más flexible en comparación con las jerarquías orientadas al entorno, porque te brinda la misma separación del entorno y te permite implementar servicios compartidos. Por otro lado, una jerarquía orientada a las funciones es más compleja de administrar que una orientada al entorno y no separa el acceso por unidad de negocios, como la venta minorista o el sector financiero.

Jerarquía orientada al acceso detallado

En una jerarquía orientada al acceso detallado, tienes una organización que contiene una carpeta por unidad de negocios, como la venta minorista o el sector financiero. Cada carpeta de unidad de negocios puede contener una carpeta por función empresarial. Cada carpeta de función empresarial puede contener una carpeta por entorno.

En el siguiente diagrama, se muestra un ejemplo de una jerarquía orientada al acceso detallado.

Arquitectura de una jerarquía orientada al acceso detallado

En esta jerarquía, hay varias unidades de negocios, funciones empresariales y entornos. Puedes implementar varias instancias de las apps My app 1 y My app 2, y un servicio compartido, que es host de la red.

Esta jerarquía es la opción más flexible y extensible. Por otro lado, debes esforzarte más por administrar la estructura, las funciones y los permisos. La topología de red también puede ser mucho más compleja debido a que la cantidad de proyectos es mayor en comparación con las otras opciones.

Define grupos y funciones para el acceso a recursos

Debes configurar los grupos y las funciones para otorgar el acceso necesario a los recursos. En Google Cloud, puedes delegar el acceso de administrador a los recursos de tu organización. Como mínimo, necesitas las siguientes funciones:

  • Un administrador de la organización, que define las políticas de IAM y la jerarquía de la organización y sus recursos
  • Un administrador de red, que crea y configura redes, subredes y dispositivos de red, como Cloud Router, Cloud VPN y Cloud Load Balancing. Una responsabilidad adicional es mantener las reglas de firewall en colaboración con el administrador de seguridad
  • Un administrador de seguridad, que establece políticas y restricciones para la organización y sus recursos, configura nuevas funciones de IAM para proyectos y mantiene la visibilidad de los registros y recursos
  • Un administrador de facturación, que configura las cuentas de facturación y supervisa el gasto y el uso de los recursos en toda la organización

Diseña la topología de red y establece conectividad

El último paso de la fase de planificación es configurar la topología de red y la conectividad del entorno existente a Google Cloud.

Después de crear tus proyectos y establecer identidades, debes crear al menos una red de nube privada virtual (VPC). Las VPC te permiten tener un espacio privado de carácter global, que abarque varias regiones. Para la comunicación entre regiones, no se usa la Internet pública. Puedes crear VPC para segregar partes de las apps o tener una VPC compartida que abarque varios proyectos. Después de configurar las VPC, también debes configurar el registro del flujo de red y el registro de reglas de firewall mediante Cloud Logging. Para obtener más información sobre las VPC y cómo configurarlas, consulta Prácticas recomendadas y arquitecturas de referencia para el diseño de VPC.

Google Cloud ofrece muchas opciones de conectividad híbrida para conectar tu entorno existente a los proyectos de Google Cloud:

  • Internet pública
  • Cloud VPN
  • Intercambio de tráfico
  • Cloud Interconnect

La conexión a través de la Internet pública es una opción de conexión simple y económica porque está respaldada por una infraestructura resistente que usa la red perimetral existente de Google. Por otro lado, esta infraestructura no es privada ni dedicada. La seguridad de esta opción depende de las apps que intercambian datos en cada conexión. Por este motivo, no recomendamos usar este tipo de conexión para enviar tráfico no encriptado.

Cloud VPN extiende tu red existente a Google Cloud mediante un túnel IPSec. El tráfico está encriptado y viaja entre las dos redes a través de la Internet pública. Si bien Cloud VPN requiere una configuración adicional y puede afectar la capacidad de procesamiento de tu conexión, suele ser la mejor opción si no encriptas el tráfico a nivel de la app y si necesitas acceder a recursos privados de Google Cloud.

El intercambio de tráfico te permite establecer una conexión a la red de Google a través de un canal privado. Existen los siguientes tipos de intercambio de tráfico:

  • El intercambio de tráfico directo te permite establecer una conexión de intercambio de tráfico directo entre tu red y la red perimetral de Google. Si no necesitas acceder a recursos privados en Google Cloud y si cumples con los requisitos de intercambio de tráfico de Google, esta es una buena opción. Esta opción no tiene ningún Acuerdo de Nivel de Servicio (ANS), pero te permite reducir tus tarifas de salida por el acceso a la Internet pública de Cloud VPN.
  • El intercambio de tráfico por proveedores te permite conectarte a la red de Google mediante servicios de red de nivel empresarial administrados por un proveedor de servicios. Aunque Google no ofrece ningún ANS sobre esta opción de conectividad, puede estar cubierta por el ANS del proveedor de servicios. Cuando evalúes el precio de esta opción, debes tener en cuenta las tarifas de salida de Google Cloud y las tarifas del proveedor de servicios.

Cloud Interconnect extiende tu red existente a la red de Google a través de una conexión con alta disponibilidad. No proporciona ningún canal encriptado de forma predeterminada, por lo que, si deseas usar esta opción, te recomendamos que encriptes el tráfico sensible a nivel de la app. Puedes elegir entre las siguientes opciones de Cloud Interconnect:

  • La interconexión dedicada te brinda conexiones privadas de ancho de banda alto con un mínimo de 10 Gbps, pero requiere equipos de enrutamiento en una instalación de colocación. Es decir, debes encontrarte con Google en uno de los puntos de presencia (PoP). Google proporciona un ANS de extremo a extremo para las conexiones de interconexión dedicada, y se te cobra según el ancho de banda dedicado y la cantidad de adjuntos.
  • La interconexión de socio te permite usar conexiones privadas dedicadas de ancho de banda alto administradas por un proveedor de servicios, sin necesidad de configurar equipos de enrutamiento en una instalación de colocación de Google. Google proporciona un ANS para la conexión entre Google y el proveedor de servicios. El proveedor de servicios podría ofrecer un ANS para la conexión entre tú y él. La interconexión de socios se cobra en función de la capacidad de conexión y la cantidad de tráfico de salida a través de una interconexión. Además, es posible que el proveedor de servicios te cobre por su servicio.

Fase 3 de la migración: implementación

Después de crear una base para tu entorno de Google Cloud, puedes comenzar a implementar tus cargas de trabajo. Puedes implementar un proceso de implementación y definirlo mejor durante la migración. Es posible que debas revisar la base de tu entorno a medida que avanzas con la migración. A medida que adquieras más habilidades con el entorno nuevo, las plataformas, los servicios y las herramientas de la nube, pueden surgir nuevas necesidades.

Cuando diseñes el proceso de implementación para tus cargas de trabajo, debes tener en cuenta cuánta automatización y flexibilidad necesitas. Puedes elegir entre varios tipos de procesos de implementación, que van desde un proceso completamente manual hasta uno optimizado y automatizado por completo.

Implementaciones completamente manuales

El aprovisionamiento, la configuración y la implementación completamente manuales te permiten experimentar con rapidez con la plataforma y las herramientas, pero también son propensos a errores, no se suelen documentar y no se pueden repetir. Por estas razones, te recomendamos que evites una implementación completamente manual, a menos que no tengas otra opción. Por ejemplo, puedes crear recursos de forma manual con Cloud Console, como una instancia de Compute Engine, y ejecutar los comandos manualmente para implementar tu carga de trabajo.

Herramientas de administración de configuración

Una herramienta de administración de configuración (CM) te permite configurar un entorno de forma automatizada, repetible y controlada. Puedes usar una herramienta de CM para configurar el entorno y, luego, implementar tus cargas de trabajo. Si bien este proceso es mejor en comparación con una implementación manual, suele carecer de las características para realizar una implementación compleja, como una implementación sin tiempo de inactividad o una implementación azul-verde. Algunas herramientas de CM te permiten implementar tu propia lógica de implementación y se pueden usar para imitar esas características faltantes. Sin embargo, usar una herramienta de CM como herramienta de implementación puede agregar complejidad a tu proceso de implementación y puede ser más difícil de administrar y mantener que una cadena de herramientas de implementación dedicada. Diseñar, crear y mantener una solución de implementación personalizada puede ser una gran carga adicional para tu equipo de operaciones.

Organización de contenedores

Si ya invertiste en la creación de contenedores, puedes ir un paso más allá y usar un servicio como Google Kubernetes Engine (GKE) para organizar tus cargas de trabajo. Si usas Kubernetes para organizar tus contenedores, no tienes que preocuparte por la infraestructura subyacente y la lógica de implementación.

Automatización de la implementación

Mediante la implementación de un proceso automatizado para la producción y la implementación de artefactos, como una canalización de integración y entrega continuas (CI/CD), puedes automatizar la creación y la implementación de artefactos. Puedes automatizar todo este proceso y, también, insertar pasos de aprobación manual, si es necesario.

Para ver una implementación de ejemplo de este proceso, consulta Canalizaciones de entrega continua con Spinnaker y Google Kubernetes Engine.

Infraestructura como código

Si bien puedes automatizar el proceso de implementación mediante la implementación de una canalización de IC/EC, puedes adoptar un proceso similar para tu infraestructura. Si defines tu infraestructura como código, puedes aprovisionar de forma automática todos los recursos necesarios para ejecutar tus cargas de trabajo. Con este tipo de proceso, haces que tu infraestructura sea más observable y repetible. También puedes aplicar un enfoque de desarrollo basado en pruebas a tu infraestructura. Por otro lado, debes invertir tiempo y esfuerzo para implementar una infraestructura como proceso de código, así que ten esto en cuenta cuando planifiques la migración.

Cloud Deployment Manager es una herramienta que puede ayudarte a implementar los procesos de infraestructura como código en Google Cloud.

Fase 4 de la migración: optimización

Después de implementar tus cargas de trabajo, puedes comenzar a optimizar tu entorno de destino. En esta fase de optimización, las siguientes actividades entre áreas pueden ayudarte a optimizar este entorno:

  • Formar un equipo y capacitarlo
  • Supervisar todo
  • Automatizar todo
  • Codificar todo
  • Usar los servicios administrados en lugar de los autoadministrados
  • Optimizar el rendimiento y la escalabilidad
  • Reducir costos

Forma un equipo y capacítalo

Cuando planifiques tu migración, puedes capacitar a tus equipos de desarrollo y operación para aprovechar al máximo el nuevo entorno de nube. Estos equipos pueden ser más eficientes con una capacitación eficaz y, también, pueden elegir las mejores herramientas y servicios nativos de la nube para el trabajo. Las oportunidades de capacitación ayudan a conservar el talento técnico y motivan a los ingenieros a aprovechar todas las ventajas de Google Cloud.

Durante esta fase, también puedes revisar los procesos empresariales que rigen esos equipos. Si encuentras algún tipo de ineficiencia o una carga innecesaria en esos procesos, tienes la posibilidad de definirlos mejor y mejorarlos con la capacitación.

Supervisa todo

La supervisión es la clave para garantizar que todo en tu entorno funcione como se espera y mejorar tus entornos, prácticas y procesos.

Antes de exponer el entorno al tráfico de producción, te recomendamos que diseñes e implementes un sistema de supervisión en el que definas métricas que son importantes para evaluar el funcionamiento correcto del entorno y sus componentes, incluidas las cargas de trabajo. Por ejemplo, si implementas una infraestructura en contenedores, puedes implementar un sistema de supervisión en caja blanca mediante Prometheus. O bien, puedes supervisar los dispositivos de IoT Core mediante Cloud Logging y Cloud Functions.

Te recomendamos que configures un sistema de alerta como las alertas de Cloud Monitoring, que te permita ser proactivo, no solo reactivo. Debes configurar alertas para errores y estados críticos, pero también debes establecer advertencias que te den tiempo de corregir una situación que puede ser perjudicial antes de que afecte a los usuarios.

Luego puedes exportar los registros de métricas de Cloud Monitoring para el almacenamiento a largo plazo, ya que los registros de Cloud Logging tienen un período de retención limitado o puedes ejecutar análisis de datos en las métricas extraídas de esos registros con el fin de obtener estadísticas sobre cómo funciona el entorno y comenzar a planificar mejoras.

Automatiza todo

Las operaciones manuales son tediosas y están expuestas a un alto riesgo de errores. En la mayoría de los casos, puedes automatizar actividades críticas como implementaciones, intercambios de secretos y actualizaciones de configuración. La automatización disminuye el riesgo y permite reducir costos y ahorrar tiempo. Los equipos también se vuelven más eficientes, porque no tienen que esforzarse en tareas repetitivas. En las páginas sobre cómo automatizar la infraestructura con Cloud Composer y cómo automatizar el análisis de detección de fallos en Google Kubernetes Engine con Spinnaker, se brinda un ejemplo de la automatización en Google Cloud.

Codifica todo

Cuando aprovisiones el entorno de destino en Google Cloud, debes intentar capturar todos los aspectos que puedas en el código. 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. También puedes aplicar un enfoque de desarrollo basado en pruebas a otros aspectos además del código, para obtener comentarios inmediatos sobre las modificaciones que planeas aplicar a tu entorno.

Usa servicios administrados en lugar de servicios autoadministrados

Google Cloud tiene una cartera de servicios y productos que puedes usar sin tener que administrar ningún servidor o infraestructura subyacente. En la fase de optimización, puedes expandir tus cargas de trabajo para usar esos servicios o reemplazar algunas de tus cargas de trabajo existentes con estos servicios.

Algunos ejemplos de servicios administrados son los siguientes:

  • Usar Cloud SQL para MySQL en lugar de administrar tu propio clúster de MySQL
  • Usar AutoML para etiquetar y clasificar imágenes en lugar de implementar y mantener tus propios modelos de aprendizaje automático
  • Implementar las cargas de trabajo en GKE en lugar de usar tu clúster de Kubernetes autoadministrado o incluso migrar las VM a contenedores y ejecutarlas en GKE
  • Usar App Engine para el hosting web sin servidores

Optimiza el rendimiento y la escalabilidad

Una de las ventajas de migrar a la nube es el acceso a los recursos. Puedes reforzar los recursos existentes, agregar más cuando los necesites y quitar recursos innecesarios de forma escalable.

Tienes más opciones para optimizar el rendimiento en comparación con las implementaciones locales:

Reduce costos

Google Cloud ofrece una amplia gama de herramientas y opciones de precios para ayudarte a reducir los costos.

Por ejemplo, si aprovisionaste instancias de Compute Engine, puedes aplicar las recomendaciones de tamaño para esas instancias.

Para disminuir tu facturación, puedes analizar tus informes de facturación a fin de estudiar tus tendencias de gasto y determinar qué productos de Google Cloud usas con más frecuencia. Incluso puedes exportar datos de facturación a BigQuery o a un archivo para analizarlos.

Para disminuir tus costos aún más, Google Cloud cuenta con características como descuentos por uso continuo, que aplican descuentos automáticos a tu facturación de Compute Engine. También puedes comprar descuentos por compromiso de uso a cambio de precios con descuento para instancias de Compute Engine. Para BigQuery, también puedes inscribirte en un plan de precios de tasa fija. Las funciones de ajuste de escala automático de Google Cloud también ayudan a disminuir tu facturación, ya que reducen el escalamiento de los recursos de acuerdo con las solicitudes del cliente. Puedes reducir los costos de supervisión y registro mediante la optimización del uso de Cloud Monitoring y Cloud Logging.

Obtén ayuda

Google Cloud ofrece varias opciones y recursos a fin de que obtengas la ayuda y la asistencia necesarias para aprovechar al máximo los servicios de Google Cloud.

Recursos de autoservicio

Si no necesitas asistencia específica, puedes usar estos recursos de autoservicio:

Socios de tecnología

Google Cloud se asoció con varias empresas para que puedas usar sus productos. Es posible que algunas de las ofertas sean gratuitas, así que pregúntale a la empresa y a tu administrador de cuentas de Google Cloud.

Estos productos incluyen lo siguiente:

Integradores de sistemas

Google Cloud se asocia con empresas de productos y tecnología y, también, con integradores de sistemas que pueden brindar asistencia personalizada. En la lista de socios, puedes encontrar una lista de integradores de sistemas que se especializan en migraciones a la nube.

Servicios profesionales de Google Cloud

Nuestro equipo de servicios profesionales está disponible para ayudarte a aprovechar al máximo tu inversión en Google Cloud.

Cloud Plan and Foundations: obtén ayuda con tu migración

Los servicios profesionales pueden ayudarte a planificar tu migración y a implementar tus cargas de trabajo en producción con nuestra oferta Cloud Plan and Foundations. Estos expertos orientan a tu equipo en cada fase de la migración de tu carga de trabajo hacia la producción, desde la configuración de las bases para Google Cloud hasta la optimización de la plataforma según las necesidades únicas de tu carga de trabajo y su implementación.

Los objetivos de Cloud Plan and Foundations son los siguientes:

  • Configurar la base para Google Cloud
  • Crear documentación de diseño
  • Planificar las actividades de implementación y migración
  • Implementar cargas de trabajo en la producción
  • Hacer un seguimiento de problemas y riesgos

Los servicios profesionales orientan a tu equipo a través de las actividades y resultados siguientes:

  1. Realizar talleres técnicos iniciales
  2. Crear un documento de diseño técnico
  3. Crear un plan de migración
  4. Crear un plan del programa
  5. Proporcionar administración de proyectos
  6. Brindar experiencia técnica

Cloud Sprint: acelera tu migración a Google Cloud

Cloud Sprint es un taller práctico intensivo que acelera la migración de tu app a Google Cloud. En este taller, los servicios profesionales de Google Cloud guían a uno de tus equipos a través de debates interactivos, sesiones con pizarras y revisión de apps de destino para migrar a Google Cloud. Durante Cloud Sprint, los servicios profesionales trabajan junto con los miembros de tu equipo a fin de que obtengan experiencia de calidad con soluciones de nube que incluyen actividades de implementación necesarias y para que comprendan cómo proceder en migraciones futuras a Google Cloud.

Capacitación: Desarrolla las habilidades de tu equipo

Los servicios profesionales de Google Cloud pueden proporcionar capacitación en diversas áreas según las necesidades de tu equipo.

Próximos pasos