Migración a Google Cloud: Migra de implementaciones manuales a implementaciones automatizadas en contenedores

Este documento te ayuda a planificar y diseñar una ruta de migración de implementaciones manuales a implementaciones automatizadas en contenedores en Google Cloud mediante herramientas nativas de la nube y servicios administrados de Google Cloud.

Este documento es parte de una serie de varias partes sobre la migración a Google Cloud. Si te interesa ver una descripción general de la serie, consulta Migración a Google Cloud: Elige tu ruta de migración.

Este documento forma parte de una serie:

Este documento es útil si planeas modernizar los procesos de implementación, si migras de procesos de implementación manuales y heredados a implementaciones e infraestructuras automatizadas en contenedores como código (IaC), o si evalúas la oportunidad de migrar y quieres explorar cómo se vería.

Antes de comenzar esta migración, debes evaluar su alcance y el estado de los procesos de implementación actuales, además de establecer las expectativas y los objetivos. Debes elegir el punto de partida según la forma en la que implementas las cargas de trabajo en la actualidad:

  • Implementas las cargas de trabajo de forma manual.
  • Implementas las cargas de trabajo con herramientas de administración de configuración (CM).

Es difícil pasar de las implementaciones manuales directamente a las implementaciones automatizadas en su totalidad en contenedores. En su lugar, recomendamos los siguientes pasos de migración:

  1. Implementa mediante herramientas de organización de contenedores.
  2. Implementa de forma automática.
  3. Implementa mediante la aplicación del patrón IaC.

En el siguiente diagrama, se ilustra la ruta de esta migración:

Ruta de migración para pasar de implementaciones manuales a implementaciones automáticas.

Durante cada paso de migración, debes seguir las fases definidas en Migración a Google Cloud: Primeros pasos.

  1. Evalúa y descubre las cargas de trabajo.
  2. Planifica y compila una base.
  3. Implementa las cargas de trabajo.
  4. Optimiza el entorno y las cargas de trabajo.

En el siguiente diagrama, se ilustran las fases de migración de cada paso.

Ruta de migración con cuatro fases

Esta ruta de migración es ideal, pero puedes detenerte antes en el proceso de migración si los beneficios de avanzar al paso siguiente superan los costos para tu caso particular. Por ejemplo, si no planeas implementar las cargas de trabajo de forma automática, puedes detenerte después de la implementación mediante las herramientas de organización de contenedores. Puedes revisar este documento en el futuro, cuando estés listo para continuar con el proceso.

Cuando avanzas de un paso de la migración a otro, hay una fase de transición en la que puedes usar diferentes procesos de implementación al mismo tiempo. De hecho, no necesitas elegir solo una opción de implementación para todas las cargas de trabajo. Por ejemplo, es posible que tengas un entorno híbrido en el que administras la infraestructura mediante la aplicación del patrón IaC, a la vez que implementas las cargas de trabajo mediante herramientas de organización de contenedores.

Migra a herramientas de organización de contenedores

Uno de los primeros pasos para avanzar de las implementaciones manuales es implementar las cargas de trabajo con las herramientas de organización de contenedores. En este paso, diseñarás e implementarás un proceso de implementación para manejar las cargas de trabajo en contenedores mediante las herramientas de organización de contenedores, como Kubernetes.

Si las cargas de trabajo aún no están en contenedores, deberás hacer un gran esfuerzo para ponerlas en contenedores. No todas las cargas de trabajo son adecuadas para la creación de contenedores. Si implementas una carga de trabajo que no es nativa de la nube ni está lista para la creación de contenedores, es posible que no valga la pena crear contenedores para las cargas de trabajo. Algunas cargas de trabajo ni siquiera admiten la creación de contenedores por razones técnicas o de licencias.

Evalúa y descubre las cargas de trabajo

Para definir el alcance de la migración, primero necesitas un inventario de los artefactos que produces e implementas en la actualidad junto con sus dependencias en otros sistemas y artefactos. Para compilar este inventario, debes usar la experiencia de los equipos que diseñaron e implementaron los procesos actuales de producción y de implementación de artefactos. En el documento Migración a Google Cloud: Evalúa y descubre las cargas de trabajo, se analiza cómo evaluar el entorno durante una migración y cómo compilar un inventario de apps.

Para cada artefacto, debes evaluar la cobertura de prueba actual. Debes tener una cobertura de prueba adecuada para todos los artefactos antes de continuar con el siguiente paso. Si tienes que probar y validar de forma manual cada artefacto, no te beneficiarás de la automatización. Adopta una metodología que destaque la importancia de las pruebas, como el desarrollo basado en pruebas.

Cuando evalúes los procedimientos, considera cuántas versiones diferentes de los artefactos podrías tener en producción. Por ejemplo, si la última versión de un artefacto es posterior a las instancias que debes admitir, tienes que diseñar un modelo que admita ambas versiones.

También considera la estrategia de ramificación que usas para administrar la base de código. Una estrategia de ramificación es solo parte de un modelo de colaboración que debes analizar; debes evaluar los procesos de colaboración más amplios dentro y fuera de los equipos. Por ejemplo, si adoptas una estrategia de ramificación flexible, pero no la adaptas al proceso de comunicación, es posible que se reduzca la eficiencia de esos equipos.

En esta fase de evaluación, también determinas cómo hacer que los artefactos que produces sean más eficientes y adecuados para la creación de contenedores que los procesos de implementación actuales. Una forma de mejorar la eficiencia es evaluar la siguiente información:

  • Partes comunes: Evalúa qué tienen en común los artefactos. Por ejemplo, si tienes bibliotecas comunes y otras dependencias del entorno de ejecución, considera consolidarlas en un entorno de ejecución.
  • Requisitos del entorno de ejecución: Evalúa si puedes optimizar los entornos de ejecución para reducir su varianza. Por ejemplo, si usas diferentes entornos de ejecución para ejecutar todas las cargas de trabajo, considera comenzar desde una base común a fin de reducir la carga de mantenimiento.
  • Componentes innecesarios: Evalúa si los artefactos contienen partes innecesarias. Por ejemplo, puedes tener herramientas de uso, como herramientas de depuración y solución de problemas, que no sean estrictamente necesarias.
  • Inyección de secretos y configuración: Evalúa cómo estás configurando los artefactos según los requisitos del entorno de ejecución. Por ejemplo, es posible que el sistema de inyección de configuración actual no admita un entorno en contenedores.
  • Requisitos de seguridad: Evalúa si el modelo de seguridad de contenedores cumple con tus requisitos. Por ejemplo, el modelo de seguridad de un entorno en contenedores podría entrar en conflicto con el requisito de una carga de trabajo para tener privilegios de superusuario, acceso directo a recursos del sistema o usuario único.
  • Requisitos de lógica de implementación: Evalúa si necesitas implementar lógicas de implementación enriquecidas. Por ejemplo, si necesitas implementar un proceso de implementación Canary, podrías determinar si la herramienta de organización de contenedores lo admite.

Planifica y compila una base

A continuación, aprovisiona y configura la infraestructura y los servicios de Google Cloud para admitir los procesos de implementación en Google Cloud. El documento Migración a Google Cloud: Compila tu base contiene orientación sobre cómo compilar tu base.

Cuando crees organizaciones, carpetas y proyectos de Google Cloud, ten en cuenta que los procesos de implementación se comparten en varios entornos. Recomendamos una jerarquía orientada a las funciones o una jerarquía orientada al acceso detallado. Estas jerarquías te brindan la flexibilidad necesaria a fin de administrar los recursos y la posibilidad de tener varios entornos para el desarrollo y las pruebas.

Cuando estableces identidades de usuario y servicio, a fin de obtener el mejor aislamiento, necesitas al menos una cuenta de servicio para cada paso del proceso de implementación. Por ejemplo, si el proceso ejecuta pasos para producir el artefacto y administrar el almacenamiento de ese artefacto en un repositorio, necesitas al menos dos cuentas de servicio. Si deseas aprovisionar y configurar entornos de desarrollo y prueba para los procesos de implementación, es posible que debas crear más cuentas de servicio. Si tienes un conjunto distinto de cuentas de servicio por entorno, los entornos serán independientes entre sí. Aunque esta configuración aumenta la complejidad de la infraestructura y pone más carga al equipo de operaciones, te da la flexibilidad de probar y validar cada cambio de forma independiente en los procesos de implementación.

También debes aprovisionar y configurar los servicios y la infraestructura para admitir las cargas de trabajo en contenedores:

Si usas las herramientas de organización de contenedores, no tendrás que preocuparte por aprovisionar tu infraestructura cuando implementes cargas de trabajo nuevas. Por ejemplo, puedes usar el escalador automático de clúster para cambiar de manera automática el tamaño de tu clúster de GKE.

Implementa los artefactos mediante herramientas de organización de contenedores

En función de los requisitos que recopilaste en la fase de evaluación y la fase de fundamentación de este paso, debes hacer lo siguiente:

  • Crea contenedores para las cargas de trabajo.
  • Implementa procedimientos de implementación para manejar las cargas de trabajo en contenedores.

Crear contenedores para las cargas de trabajo es una tarea no trivial. Lo que sigue es una lista generalizada de actividades que debes adaptar y extender a fin de crear contenedores para las cargas de trabajo. Tu objetivo es cubrir tus propias necesidades, como la administración de redes y tráfico, el almacenamiento persistente, la inyección de secretos y configuración y los requisitos de tolerancia a errores. En este documento, se abarcan dos actividades: la compilación de un conjunto de imágenes de contenedor a fin de usar como base y la compilación de un conjunto de imágenes de contenedor para las cargas de trabajo.

Primero, automatizas la producción de artefactos, por lo que no tienes que producir de forma manual una imagen nueva para cada implementación nueva. El proceso de compilación de artefactos debe activarse de forma automática cada vez que se modifica el código fuente para que tengas comentarios inmediatos sobre cada cambio.

Ejecuta los siguientes pasos para producir cada imagen:

  1. Compila la imagen.
  2. Ejecuta el conjunto de pruebas.
  3. Almacena la imagen en un registro.

Por ejemplo, puedes usar Cloud Build para compilar los artefactos, ejecutar los conjuntos de prueba en función de ellos y, si las pruebas son exitosas, almacenar los resultados en Container Registry.

También debes establecer reglas y convenciones para identificar los artefactos. Cuando generes las imágenes, etiqueta cada una para que se pueda repetir cada ejecución de los procesos. Por ejemplo, una convención popular es identificar versiones mediante control de versiones semánticas, que consiste en etiquetar las imágenes de contenedor cuando produzcas una versión. Cuando generas imágenes que aún necesitan trabajo antes de lanzar la versión, puedes usar un identificador que las vincule al punto en la base de código desde el que las produjo el proceso. Por ejemplo, si usas repositorios de Git, puedes usar el hash de confirmación como un identificador para la imagen del contenedor correspondiente que generaste cuando enviaste una confirmación a la rama principal de tu repositorio.

Durante la fase de evaluación de este paso, recopilaste información sobre los artefactos, las partes comunes y los requisitos del tiempo de ejecución. Con esta información, puedes diseñar y compilar un conjunto de imágenes base de contenedores y otro conjunto de imágenes para las cargas de trabajo. Usa las imágenes base como punto de partida a fin de compilar las imágenes para las cargas de trabajo. El conjunto de imágenes base debe ser compatible y controlarse de forma estricta para evitar la proliferación de entornos de tiempo de ejecución no compatibles.

Cuando produzcas imágenes de contenedor a partir de imágenes base, recuerda extender los conjuntos de pruebas para cubrir las imágenes, no solo las cargas de trabajo dentro de cada imagen. Puedes usar herramientas como InSpec, ServerSpec y RSpec para ejecutar conjuntos de prueba de cumplimiento en los entornos de ejecución.

Cuando termines de crear contenedores para las cargas de trabajo e implementar procedimientos a fin de generar de manera automática esas imágenes de contenedor, debes implementar los procedimientos de implementación con el objetivo de usar herramientas de organización de contenedores. En la fase de evaluación, debes usar la información sobre los requisitos de la lógica de implementación que recopilaste para diseñar procedimientos de implementación enriquecidos. Mediante el uso de herramientas de organización de contenedores, puedes enfocarte en redactar la lógica de implementación con los mecanismos proporcionados, en lugar de tener que implementarlos de forma manual.

Cuando diseñes e implementes los procedimientos de implementación, considera cómo inyectar archivos de configuración y secretos en las cargas de trabajo, además de cómo administrar datos para cargas de trabajo con estado. La inyección de secretos y los archivos de configuración son fundamentales para producir artefactos inmutables. Si implementas artefactos inmutables, puedes hacer lo siguiente:

  • Por ejemplo, puedes implementar los artefactos en el entorno de desarrollo. Luego, después de probarlos y validarlos, los trasladas al entorno de control de calidad. Por último, los trasladas al entorno de producción.
  • Así disminuyen las posibilidades de que ocurran problemas en los entornos de producción porque el mismo artefacto pasó por varias actividades de prueba y validación.

Si las cargas de trabajo tienen estado, te sugerimos aprovisionar y configurar el almacenamiento persistente necesario para los datos. En Google Cloud, tienes diferentes opciones:

Cuando puedas producir de forma automática los artefactos para implementar, podrás configurar los entornos de ejecución de las herramientas que usas a fin de implementar las cargas de trabajo. Para controlar el entorno de ejecución de las herramientas de implementación, puedes configurar el entorno como una compilación en Cloud Build y usar esa compilación como el único medio para implementar los artefactos en los entornos. Con Cloud Build, no necesitas que cada operador configure un entorno de ejecución en las máquinas. Puedes auditar de inmediato el procedimiento que crea el entorno de ejecución y los contenidos si inspeccionas el código fuente de la configuración de compilación.

Optimiza el entorno

Después de implementar el proceso de implementación, puedes usar las herramientas de organización de contenedores para comenzar a optimizar los procesos de implementación. El documento Migración a Google Cloud: comienza ahora contiene instrucciones para optimizar el entorno.

Los requisitos de esta iteración de optimización son los siguientes:

  • Extiende el sistema de supervisión según sea necesario.
  • Extiende la cobertura de la prueba.
  • Aumenta la seguridad del entorno.

Extiende el sistema de supervisión para que cubra la nueva producción de artefactos, los procedimientos de implementación y todos los entornos de ejecución nuevos.

Si deseas supervisar, automatizar y codificar de manera eficaz los procesos tanto como sea posible, recomendamos que aumentes la cobertura de las pruebas. En la fase de evaluación, te aseguraste de tener al menos una cobertura de prueba de extremo a extremo. Durante la fase de optimización, puedes expandir los conjuntos de pruebas para cubrir más casos de uso.

Por último, si deseas aumentar la seguridad de los entornos, puedes configurar la autorización binaria para permitir que solo se implemente un conjunto de imágenes firmadas en los clústeres. También puedes habilitar Container Analysis para analizar las imágenes de contenedores almacenadas en Container Registry en busca de vulnerabilidades.

Migra a la automatización de implementaciones

Después de migrar a las herramientas de organización de contenedores, puedes pasar a la automatización de implementación completa y extender los procedimientos de implementación y de producción de artefactos para implementar de forma automática las cargas de trabajo.

Evalúa y descubre las cargas de trabajo

A partir de la evaluación anterior, ahora puedes enfocarte en los requisitos de los procesos de implementación:

  • Pasos de aprobación manual: Evalúa si necesitas admitir pasos manuales en los procedimientos de implementación.
  • Unidades de implementación por tiempo: Evalúa cuántas unidades de implementación por tiempo necesitas admitir.
  • Factores que causan una implementación nueva: Evalúa qué sistemas externos interactúan con los procedimientos de implementación.

Si necesitas admitir pasos de implementación manuales, esto no significa que el procedimiento no se pueda automatizar. En este caso, debes automatizar cada paso del procedimiento y colocar las puertas de aprobación manual donde corresponda.

Admitir varias implementaciones por día o por hora es más complejo que admitir algunas implementaciones por mes o por año. Sin embargo, si no implementas con frecuencia, es posible que se reduzcan la agilidad y la capacidad para reaccionar ante los problemas y enviar funciones nuevas a las cargas de trabajo. Por esta razón, antes de diseñar y de implementar un procedimiento de implementación automatizado por completo, es una buena idea establecer tus expectativas y objetivos.

También evalúa qué factores activan una implementación nueva en los entornos de ejecución. Por ejemplo, puedes implementar cada versión nueva en el entorno de desarrollo, pero puedes implementarla en el entorno de control de calidad solo si cumple con ciertos criterios de calidad.

Planifica y compila una base

Para extender la base que compilaste en el paso anterior, puedes aprovisionar y configurar servicios a fin de que sean compatibles con los procedimientos de implementación automatizados.

Para cada uno de los entornos de ejecución, configura la infraestructura necesaria a fin de que sea compatible con los procedimientos de implementación. Por ejemplo, si aprovisionas y configuras los procedimientos de implementación en los entornos de desarrollo, control de calidad, preproducción y producción, tienes la libertad y la flexibilidad para probar los cambios en los procedimientos. Sin embargo, si usas una sola infraestructura para implementar los entornos de ejecución, los entornos son más fáciles de administrar, pero menos flexibles cuando necesitas cambiar los procedimientos.

Cuando aprovisionas las cuentas de servicio y las funciones, considera aislar los entornos y las cargas de trabajo entre sí mediante la creación de cuentas de servicio dedicadas que no compartan responsabilidades. Por ejemplo, no vuelvas a usar las mismas cuentas de servicio para los diferentes entornos de ejecución.

Implementa los artefactos con procedimientos completamente automatizados

En esta fase, debes configurar los procedimientos de implementación para implementar los artefactos sin ninguna intervención manual, excepto los pasos de aprobación.

Puedes usar herramientas como Spinnaker para implementar los procedimientos de implementación automatizados, de acuerdo con los requisitos que recopilaste en la fase de evaluación de este paso de migración.

Para cualquier artefacto determinado, cada procedimiento de implementación debe ejecutar las siguientes tareas:

  1. Implementa el artefacto en el entorno de ejecución de destino.
  2. Inyecta los archivos de configuración y los secretos al artefacto implementado.
  3. Ejecuta el conjunto de pruebas de cumplimiento en el artefacto recién implementado.
  4. Cambia el artefacto al entorno de producción.

Asegúrate de que los procedimientos de implementación proporcionen interfaces para activar implementaciones nuevas de acuerdo con los requisitos.

La revisión del código es un paso necesario cuando se implementan procedimientos de implementación automatizados, debido al corto ciclo de comentarios que forma parte de estos procedimientos por diseño. Por ejemplo, si implementas cambios en el entorno de producción sin ninguna revisión, afectarás la estabilidad y la confiabilidad del entorno de producción. Un cambio no revisado, con formato incorrecto o malicioso puede causar una interrupción del servicio.

Optimiza el entorno

Después de automatizar los procedimientos de implementación, puedes ejecutar otra iteración de optimización. Los requisitos de esta iteración son los siguientes:

  • Extiende el sistema de supervisión para cubrir la infraestructura que respalda los procedimientos de implementación automatizada.
  • Implementa patrones de implementación más avanzados.
  • Implementa un procedimiento de emergencia.

Un sistema de supervisión eficaz permite planificar optimizaciones adicionales para el entorno. Cuando mides el comportamiento del entorno, puedes encontrar cuellos de botella que dificultan el rendimiento y otros problemas, como vulnerabilidades y accesos no autorizados o accidentales. Por ejemplo, puedes configurar el entorno de modo que recibas alertas cuando el consumo de ciertos recursos alcance un límite.

Cuando puedas organizar contenedores de manera eficiente, podrás implementar patrones de implementación avanzados según tus necesidades. Por ejemplo, puedes realizar implementaciones de versiones Canary e implementaciones azul-verde a fin de aumentar la confiabilidad del entorno y reducir el impacto de cualquier problema para los usuarios.

Dada la naturaleza completamente automatizada del proceso de implementación, te recomendamos que diseñes e implementes un procedimiento de emergencia que te permita interactuar con los entornos de ejecución sin usar los procedimientos de implementación normales. Usa este procedimiento solo en circunstancias excepcionales y cuando los miembros sénior del equipo lo aprueben. Por ejemplo, si un problema con el procedimiento de implementación bloquea del entorno, usa el procedimiento de emergencia para revertir el cambio que causó el problema.

Adopta infraestructura como código

Ahora que los equipos saben cómo usar Google Cloud de manera eficaz, puedes aplicar el patrón IaC. IaC es un proceso en el que tratas el aprovisionamiento de recursos en un entorno de ejecución de la misma manera que manejas el código fuente de las cargas de trabajo.

Evalúa y descubre la infraestructura

En esta fase de evaluación, obtendrás un conocimiento profundo de la infraestructura que aprovisionaste en los pasos de migración anteriores, incluida la siguiente información:

  • Recursos de Google Cloud que configuraste como parte de la infraestructura
  • Procesos de administración de cambios que tienes implementados en la actualidad
  • Miembros de la organización que tienen los derechos para modificar la infraestructura

Tener un inventario de los recursos que tienes en la actualidad en la infraestructura es fundamental para adoptar IaC, ya que en este paso de migración debes describirlos con código.

Un proceso de administración de cambios es fundamental para administrar la evolución de la infraestructura. Si tienes procesos, debes adaptarlos para que acepten IaC. Si no tienes ningún proceso de administración de cambios en la infraestructura, esta fase es ideal para diseñar e implementar una. Un proceso de administración de cambios debe incluir, al menos, una fase de revisión en la que analices los cambios propuestos. Este análisis, junto con una evaluación de qué miembros del equipo pueden modificar la infraestructura, es necesario para reducir las probabilidades de que un cambio en la infraestructura genere tiempos de inactividad o facturación inesperada.

Planifica y compila una base

Para extender la base que compilaste en el paso anterior, debes aprovisionar y configurar la infraestructura para ser compatible con la adopción de IaC.

En primer lugar, debes elegir qué herramientas adoptarás. Algunas de las herramientas de uso común en Google Cloud son las siguientes:

  • Deployment Manager, un servicio administrado con compatibilidad total para todos los recursos de Google Cloud
  • Terraform, una herramienta de aprovisionamiento de código abierto compatible con Google Cloud y otros proveedores de servicios en la nube
  • Chef, Puppet y Ansible, herramientas de configuración de código abierto compatibles con Google Cloud

Después de elegir las herramientas de IaC, debes aprovisionar y configurar toda la infraestructura necesaria para admitirlas. Necesitas al menos lo siguiente:

  • Repositorios de código fuente para administrar y crear versiones de los descriptores de los recursos
  • Una herramienta de revisión de código para analizar y aprobar cada cambio antes de que se publique
  • Un entorno de ejecución para ejecutar la herramienta de IaC después de que los equipos aprueben los cambios durante una revisión

Algunas herramientas de IaC necesitan servicios para administrar la infraestructura. Por ejemplo, Terraform necesita almacenamiento de datos remoto si deseas colaborar con otros miembros de la organización para administrar la infraestructura.

Si decides administrar esta base con una herramienta de IaC, te recomendamos implementar protecciones para evitar interrumpir la base cuando apliques cambios. Estas interrupciones pueden causar tiempos de inactividad prolongados y pérdidas de datos irrecuperables. Por ejemplo, si borras de manera accidental los repositorios de código fuente en los que almacenas los descriptores de infraestructura, puedes causar una pérdida de datos irrecuperable. Puedes usar herramientas como liens para evitar que se borren proyectos.

Aprovisiona recursos de Google Cloud con IaC

Cuando el entorno de Google Cloud esté listo, puedes adoptar IaC para administrar los recursos en el entorno:

  • Describe los recursos existentes con el código.
  • Aprovisiona recursos nuevos con laC.

En los pasos de migración anteriores, aprovisionaste recursos de Google Cloud con Cloud Console, el SDK de Cloud o las API de Cloud. En esta fase, describirás estos recursos con código, según la sintaxis y las convenciones de la herramienta de IaC que elijas.

Es posible que debas importar las instancias y los recursos actuales en el inventario de la herramienta para que la herramienta de IaC conozca estas instancias y recursos. La herramienta de IaC que elijas no tendrá información de estado sobre las instancias y recursos actuales. Debes importar los recursos o destruir de forma manual esas instancias y dejar que la herramienta de IaC las vuelva a crear. Por ejemplo, Terraform puede importar la infraestructura existente.

Si tienes que definir componentes nuevos en la infraestructura, ahora los describes con código directamente, sin pasar por ningún otro procedimiento de aprovisionamiento.

Optimiza el entorno

Después de adoptar IaC, ejecuta otra iteración de optimización. Para llevar a cabo esta iteración, debes cumplir con los siguientes requisitos:

  • Extiende el sistema de supervisión según sea necesario.
  • Extiende los conjuntos de pruebas para cubrir la infraestructura.
  • Automatiza el aprovisionamiento y la configuración de la infraestructura.
  • Extiende el procedimiento de emergencia para cubrir la infraestructura.

A partir de lo que hiciste en la fase de implementación anterior y la fase de optimización del paso de migración anterior, extiende la supervisión a la infraestructura compatible con la adopción de IaC. Por ejemplo, puedes supervisar todos los entornos de ejecución en los que se ejecuten las herramientas de IaC y registrar cada ejecución con precisión para compilar un registro de auditoría que luego puedas inspeccionar.

Puedes extender los conjuntos de pruebas para cubrir la infraestructura y no solo las cargas de trabajo y las imágenes de contenedor. Puedes usar herramientas como InSpec, ServerSpec y RSpec para ejecutar conjuntos de prueba de cumplimiento en los entornos de ejecución. Puedes proteger la infraestructura ante cambios manuales o cambios externos a la canalización de IaC. Si ejecutas de forma continua los conjuntos de pruebas en la infraestructura, podrás detectar cambios no autorizados y corregir la situación.

Cuando estés seguro de adoptar laC, analiza la automatización del aprovisionamiento de la infraestructura mediante el diseño y la implementación de procedimientos nuevos. Estos procedimientos nuevos de aprovisionamiento son bastante diferentes de los que usas para producir e implementar los artefactos. Los procedimientos de aprovisionamiento de infraestructura se diseñaron para manejar cambios en la infraestructura, no en la aplicación. Por esta razón, estos procedimientos resuelven diferentes problemas y tienen un radio de efecto de errores y un impacto diferentes, en comparación con los procedimientos de implementación y producción de artefactos. Cuando un elemento de la infraestructura falla, un radio de efecto de errores describe el impacto del daño. Por ejemplo, si implementas un artefacto defectuoso, podrías causar una interrupción del servicio que tenga un impacto en uno o más casos prácticos. Si aprovisionas un componente de infraestructura defectuoso, la interrupción potencial del servicio podría afectar a varios servicios del entorno, si no a todos.

Obtén ayuda

Google Cloud proporciona los siguientes recursos de asistencia:

Hay más recursos para ayudarte a migrar cargas de trabajo a Google Cloud en el Centro de migración de Google Cloud.

Para obtener más información sobre estos recursos, consulta la sección de búsqueda de ayuda de Migración a Google Cloud: comienza ahora.

Próximos pasos