En este documento se destacan las consideraciones de diseño principales que desempeñan un papel fundamental en la configuración de la arquitectura híbrida y multinube general. Analiza y evalúa de forma integral estos aspectos en toda la arquitectura de tu solución, incluidas todas las cargas de trabajo, no solo algunas específicas.
Refactorizar
En una migración de refactorización, se modifican las cargas de trabajo para aprovechar las prestaciones de la nube, no solo para que funcionen en el nuevo entorno. Puedes mejorar cada carga de trabajo en cuanto a rendimiento, funciones, coste y experiencia de usuario. Como se destaca en Refactorizar: mover y mejorar, algunos casos prácticos de refactorización te permiten modificar cargas de trabajo antes de migrarlas a la nube. Este enfoque de refactorización ofrece las siguientes ventajas, sobre todo si tu objetivo es crear una arquitectura híbrida como arquitectura objetivo a largo plazo:
- Puedes mejorar el proceso de implementación.
- Puedes acelerar la cadencia de lanzamientos y acortar los ciclos de comentarios invirtiendo en infraestructura y herramientas de integración y despliegue continuos (CI/CD).
- Puedes usar la refactorización como base para crear y gestionar una arquitectura híbrida con portabilidad de aplicaciones.
Para que este enfoque funcione bien, normalmente se requiere una inversión en infraestructura y herramientas locales. Por ejemplo, configurar un registro de contenedores local y aprovisionar clústeres de Kubernetes para contenerizar aplicaciones. La edición Enterprise de Google Kubernetes Engine (GKE) puede ser útil en este enfoque para entornos híbridos. En la siguiente sección se ofrece más información sobre GKE Enterprise. También puedes consultar la arquitectura de referencia del entorno híbrido de GKE Enterprise para obtener más información.
Portabilidad de las cargas de trabajo
Con las arquitecturas híbridas y multinube, es posible que quieras poder transferir cargas de trabajo entre los entornos informáticos que alojan tus datos. Para facilitar el movimiento fluido de las cargas de trabajo entre entornos, ten en cuenta los siguientes factores:
- Puedes mover una aplicación de un entorno informático a otro
sin modificarla significativamente ni su modelo operativo:
- La implementación y la gestión de aplicaciones son coherentes en todos los entornos de computación.
- La visibilidad, la configuración y la seguridad son coherentes en todos los entornos informáticos.
- La capacidad de hacer que una carga de trabajo sea portátil no debe entrar en conflicto con el hecho de que la carga de trabajo esté diseñada para la nube.
Automatización de infraestructuras
La automatización de la infraestructura es esencial para la portabilidad en arquitecturas híbridas y multinube. Una forma habitual de automatizar la creación de infraestructuras es mediante la infraestructura como código (IaC). La IaC implica gestionar tu infraestructura en archivos en lugar de configurar manualmente los recursos (como una VM, un grupo de seguridad o un balanceador de carga) en una interfaz de usuario. Terraform es una herramienta de IaC popular que permite definir recursos de infraestructura en un archivo. Terraform también te permite automatizar la creación de esos recursos en entornos heterogéneos.
Para obtener más información sobre las funciones principales de Terraform que pueden ayudarte a automatizar el aprovisionamiento y la gestión de recursos, consulta Planos y módulos de Terraform para Google Cloud. Google Cloud
Puedes usar herramientas de gestión de la configuración, como Ansible, Puppet o Chef, para establecer un proceso de despliegue y configuración común. También puedes usar una herramienta de creación de imágenes, como Packer, para crear imágenes de VM para diferentes plataformas. Si usas un único archivo de configuración compartido, puedes usar Packer y Cloud Build para crear una imagen de VM que se pueda usar en Compute Engine. Por último, puedes usar soluciones como Prometheus y Grafana para asegurarte de que la monitorización sea coherente en todos los entornos.
Con estas herramientas, puedes crear una cadena de herramientas común, como se muestra en el siguiente diagrama lógico. Esta cadena de herramientas común abstrae las diferencias entre los entornos de computación. También te permite unificar el aprovisionamiento, la implementación, la gestión y la monitorización.
Aunque una cadena de herramientas común puede ayudarte a conseguir la portabilidad, está sujeta a varias de las siguientes limitaciones:
- Si se usan máquinas virtuales como base común, puede resultar difícil implementar aplicaciones que realmente estén diseñadas para la nube. Además, si solo usas máquinas virtuales, no podrás usar servicios gestionados en la nube. Puede que no aproveches oportunidades para reducir la sobrecarga administrativa.
- Crear y mantener una cadena de herramientas común conlleva costes operativos y de infraestructura.
- A medida que se amplía la cadena de herramientas, puede desarrollar complejidades únicas adaptadas a las necesidades específicas de tu empresa. Este aumento de la complejidad puede contribuir a que aumenten los costes de entrenamiento.
Antes de decidirte por desarrollar herramientas y automatizaciones, explora los servicios gestionados que ofrece tu proveedor de servicios en la nube. Cuando tu proveedor ofrece servicios gestionados que admiten el mismo caso práctico, puedes abstraer parte de su complejidad. De esta forma, puedes centrarte en la carga de trabajo y en la arquitectura de la aplicación en lugar de en la infraestructura subyacente.
Por ejemplo, puedes usar el modelo de recursos de Kubernetes para automatizar la creación de clústeres de Kubernetes mediante un enfoque de configuración declarativo. Puedes usar Deployment Manager convert para convertir tus configuraciones y plantillas de Deployment Manager a otros formatos de configuración declarativa que admita Google Cloud (como Terraform y el modelo de recursos de Kubernetes) para que sean portátiles cuando publiques.
También puedes automatizar la creación de proyectos y de recursos en esos proyectos. Esta automatización puede ayudarte a adoptar un enfoque de infraestructura como código para aprovisionar proyectos.
Contenedores y Kubernetes
El uso de funciones gestionadas en la nube ayuda a reducir la complejidad de crear y mantener una cadena de herramientas personalizada para automatizar y portar cargas de trabajo. Sin embargo, si solo se usan las máquinas virtuales como base común, resulta difícil implementar aplicaciones que sean realmente nativas de la nube. Una solución es usar contenedores y Kubernetes.
Los contenedores ayudan a que tu software se ejecute de forma fiable cuando lo mueves de un entorno a otro. Como los contenedores desacoplan las aplicaciones de la infraestructura del host subyacente, facilitan el despliegue en entornos informáticos, como los híbridos y multinube.
Kubernetes se encarga de la orquestación, el despliegue, el escalado y la gestión de tus aplicaciones en contenedores. Es de código abierto y está gestionado por la Cloud Native Computing Foundation. Usar Kubernetes proporciona los servicios que forman la base de una aplicación que prioriza la nube. Como puedes instalar y ejecutar Kubernetes en muchos entornos informáticos, también puedes usarlo para establecer una capa de tiempo de ejecución común en diferentes entornos informáticos:
- Kubernetes ofrece los mismos servicios y APIs en un entorno de computación en la nube o privado. Además, el nivel de abstracción es mucho mayor que cuando se trabaja con máquinas virtuales, lo que generalmente se traduce en menos trabajo preliminar y una mayor productividad de los desarrolladores.
- A diferencia de una cadena de herramientas personalizada, Kubernetes se usa en muchos sitios para el desarrollo y la gestión de aplicaciones, por lo que puedes aprovechar la experiencia, la documentación y la asistencia de terceros.
- Kubernetes admite todas las implementaciones de contenedores que:
- Admite la interfaz de tiempo de ejecución de contenedores (CRI) de Kubernetes.
- Se han adoptado en el sector para su aplicación
- No están vinculados a ningún proveedor específico
Cuando una carga de trabajo se ejecuta en Google Cloud, puedes evitar el esfuerzo de instalar y operar Kubernetes usando una plataforma de Kubernetes gestionada, como Google Kubernetes Engine (GKE). De esta forma, el personal de operaciones puede centrarse en crear y mantener aplicaciones en lugar de infraestructuras.
También puedes usar Autopilot, un modo de funcionamiento de GKE que gestiona la configuración de tu clúster, incluidos los nodos, el escalado, la seguridad y otros ajustes preconfigurados. Cuando uses Autopilot de GKE, ten en cuenta los requisitos de escalado y los límites de escalado.
Técnicamente, puedes instalar y ejecutar Kubernetes en muchos entornos de computación para establecer una capa de tiempo de ejecución común. Sin embargo, en la práctica, crear y operar una arquitectura de este tipo puede generar complejidad. La arquitectura se vuelve aún más compleja cuando necesitas un control de seguridad a nivel de contenedor (malla de servicios).
Para simplificar la gestión de implementaciones multiclúster, puedes usar GKE Enterprise para ejecutar aplicaciones modernas en cualquier lugar a gran escala. GKE incluye potentes componentes de código abierto gestionados para proteger las cargas de trabajo, aplicar políticas de cumplimiento y proporcionar una observabilidad y una resolución de problemas de red profundas.
Como se muestra en el siguiente diagrama, si usas GKE Enterprise, puedes operar aplicaciones multiclúster como flotas.
GKE Enterprise ofrece las siguientes opciones de diseño para admitir arquitecturas híbridas y multinube:
Diseña y crea experiencias similares a la nube on-premise o soluciones unificadas para migrar aplicaciones al entorno híbrido de GKE Enterprise. Para obtener más información, consulta la arquitectura de referencia del entorno híbrido de GKE Enterprise.
Diseña y crea una solución para resolver la complejidad multinube con una postura de gobernanza, operaciones y seguridad coherente con GKE Multi-Cloud. Para obtener más información, consulta la documentación de multicloud de GKE.
GKE Enterprise también proporciona agrupaciones lógicas de entornos similares con seguridad, configuración y gestión de servicios coherentes. Por ejemplo, GKE Enterprise ofrece una arquitectura distribuida de confianza cero. En una arquitectura distribuida de confianza cero, los servicios que se implementan de forma local o en otro entorno de nube pueden comunicarse entre entornos mediante comunicaciones de servicio a servicio seguras con mTLS de extremo a extremo.
Consideraciones sobre la portabilidad de las cargas de trabajo
Kubernetes y GKE Enterprise proporcionan una capa de abstracción para las cargas de trabajo que puede ocultar las numerosas complejidades y diferencias entre los entornos de computación. En la siguiente lista se describen algunas de esas abstracciones:
- Una aplicación puede ser portátil a otro entorno con cambios mínimos, pero eso no significa que la aplicación funcione igual de bien en ambos entornos.
- Las diferencias en los recursos de computación subyacentes, las funciones de seguridad de la infraestructura o la infraestructura de red, así como la proximidad a los servicios dependientes, pueden dar lugar a un rendimiento muy diferente.
- Para mover una carga de trabajo entre entornos de computación, también es posible que tengas que mover datos.
- Los distintos entornos pueden tener diferentes servicios e instalaciones de almacenamiento y gestión de datos.
- El comportamiento y el rendimiento de los balanceadores de carga aprovisionados con Kubernetes o GKE Enterprise pueden variar de un entorno a otro.
Migración de datos
Como puede ser complejo mover, compartir y acceder a datos a gran escala entre entornos informáticos, las empresas de nivel empresarial pueden dudar a la hora de crear una arquitectura híbrida o multinube. Esta reticencia puede aumentar si ya almacenan la mayoría de sus datos de forma local o en una nube.
Sin embargo, las distintas opciones de movimiento de datos que ofrece Google Cloudproporcionan a las empresas un conjunto completo de soluciones para mover, integrar y transformar sus datos. Estas opciones ayudan a las empresas a almacenar, compartir y acceder a datos en diferentes entornos de una forma que se adapte a sus casos prácticos específicos. En última instancia, esta capacidad facilita a los responsables de la toma de decisiones empresariales y tecnológicas la adopción de arquitecturas híbridas y multinube.
El movimiento de datos es un aspecto importante que se debe tener en cuenta en la estrategia híbrida y multinube, así como en la planificación de la arquitectura. Tu equipo debe identificar los distintos casos prácticos de tu empresa y los datos que los respaldan. También debes tener en cuenta el tipo de almacenamiento, la capacidad, la accesibilidad y las opciones de movimiento.
Si una empresa tiene una clasificación de datos para sectores regulados, esa clasificación puede ayudar a identificar las ubicaciones de almacenamiento y las restricciones de movimiento de datos entre regiones para determinadas clases de datos. Para obtener más información, consulta Protección de Datos Sensibles. Protección de Datos Sensibles es un servicio totalmente gestionado diseñado para ayudarte a descubrir, clasificar y proteger tus recursos de datos.
Para conocer el proceso, desde la planificación de una transferencia de datos hasta las prácticas recomendadas para implementar un plan, consulte el artículo Migrar a Google Cloud: transferir conjuntos de datos grandes.
Seguridad
A medida que las organizaciones adoptan arquitecturas híbridas y multinube, su superficie de ataque puede aumentar en función de la forma en que se distribuyan sus sistemas y datos en diferentes entornos. Si a esto le sumamos el panorama de amenazas en constante evolución, el aumento de las superficies de ataque puede provocar un mayor riesgo de acceso no autorizado, pérdida de datos y otros incidentes de seguridad. Ten en cuenta la seguridad al planificar e implementar estrategias de nube híbrida o multinube.
Para obtener más información, consulta Attack Surface Management para Google Cloud.
Al diseñar una arquitectura híbrida, no siempre es técnicamente posible o viable extender los enfoques de seguridad locales a la nube. Sin embargo, muchas de las funciones de seguridad de redes de los dispositivos de hardware son funciones cloud-first y funcionan de forma distribuida. Para obtener más información sobre las funciones de seguridad de redes en la nube de Google Cloud, consulta Seguridad de redes en la nube.
Las arquitecturas híbridas y multinube pueden plantear problemas de seguridad adicionales, como la coherencia y la observabilidad. Cada proveedor de nube pública tiene su propio enfoque de seguridad, que incluye diferentes modelos, prácticas recomendadas, funciones de seguridad de infraestructura y aplicaciones, obligaciones de cumplimiento e incluso los nombres de los servicios de seguridad. Estas incoherencias pueden aumentar el riesgo de seguridad. Además, el modelo de responsabilidad compartida de cada proveedor de la nube puede ser diferente. Es fundamental identificar y comprender la demarcación exacta de las responsabilidades en una arquitectura multinube.
La observabilidad es fundamental para obtener estadísticas y métricas de los diferentes entornos. En una arquitectura multinube, cada nube suele proporcionar herramientas para monitorizar la postura de seguridad y los errores de configuración. Sin embargo, el uso de estas herramientas da lugar a una visibilidad aislada, lo que impide crear inteligencia de amenazas avanzada en todo el entorno. Por lo tanto, el equipo de seguridad debe cambiar entre herramientas y paneles de control para mantener la nube protegida. Si no se tiene una visibilidad de seguridad integral en los entornos híbridos y multinube, es difícil priorizar y mitigar las vulnerabilidades.
Para obtener una visibilidad y una postura completas de todos tus entornos, prioriza tus vulnerabilidades y mitiga las que identifiques. Recomendamos un modelo de visibilidad centralizado. Un modelo de visibilidad centralizado evita la necesidad de correlacionar manualmente diferentes herramientas y paneles de control de distintas plataformas. Para obtener más información, consulta Patrones de almacenamiento de registros y monitorización para despliegues híbridos y multinube.
Como parte de la planificación para mitigar los riesgos de seguridad y desplegar cargas de trabajo enGoogle Cloud, y para ayudarte a planificar y diseñar tu solución en la nube con el fin de alcanzar tus objetivos de seguridad y cumplimiento, consulta el centro de prácticas recomendadas de seguridad y el blueprint de aspectos básicos de seguridad para empresas. Google Cloud
Los objetivos de cumplimiento pueden variar, ya que se ven influidos tanto por las normativas específicas del sector como por los diferentes requisitos normativos de las distintas regiones y países. Para obtener más información, consulta el Google Cloud Centro de recursos para el cumplimiento. A continuación, se indican algunos de los enfoques principales recomendados para diseñar arquitecturas híbridas y multinube seguras:
Desarrollar una estrategia y una arquitectura de seguridad en la nube unificadas y personalizadas. Las estrategias de seguridad híbrida y multicloud deben adaptarse a las necesidades y los objetivos específicos de tu organización.
Es fundamental conocer la arquitectura y el entorno de destino antes de implementar los controles de seguridad, ya que cada entorno puede usar diferentes funciones, configuraciones y servicios.
Plantéate usar una arquitectura de seguridad unificada en entornos híbridos y multinube.
Estandarizar el diseño y los despliegues en la nube, especialmente el diseño y las funciones de seguridad. De esta forma, se puede mejorar la eficiencia y habilitar la gobernanza y las herramientas unificadas.
Usa varios controles de seguridad.
Por lo general, ningún control de seguridad puede cumplir adecuadamente todos los requisitos de protección de seguridad. Por lo tanto, las organizaciones deben usar una combinación de controles de seguridad en un enfoque de defensa por capas, también conocido como defensa en profundidad.
Monitoriza y mejora continuamente las posturas de seguridad: tu organización debe monitorizar sus diferentes entornos para detectar amenazas y vulnerabilidades de seguridad. También debe intentar mejorar continuamente su posición de seguridad.
Te recomendamos que uses la gestión de la postura de seguridad en la nube (CSPM) para identificar y corregir errores de configuración de seguridad y amenazas de ciberseguridad. CSPM también ofrece evaluaciones de vulnerabilidades en entornos híbridos y multinube.
Security Command Center es una solución integrada de gestión de riesgos y seguridad para Google Cloud que ayuda a identificar errores de configuración, vulnerabilidades y más. Security Health Analytics es una herramienta gestionada de análisis de evaluación de vulnerabilidades. Es una función de Security Command Center que identifica los riesgos y las vulnerabilidades de seguridad en tuGoogle Cloud entorno y proporciona recomendaciones para solucionarlos.
Mandiant Attack Surface Management for Google Cloud permite a tu organización ver mejor los recursos de su entorno multinube o de nube híbrida. Descubre automáticamente los recursos de varios proveedores de la nube, DNS y la superficie de ataque externa ampliada para que tu empresa conozca mejor su ecosistema. Usa esta información para priorizar la corrección de las vulnerabilidades y las exposiciones que supongan el mayor riesgo.
- Solución de gestión de información y eventos de seguridad (SIEM) en la nube: ayuda a recoger y analizar registros de seguridad de entornos híbridos y multinube para detectar y responder a amenazas. SIEM de Google Security Operations de Google Cloud ayuda a proporcionar información de seguridad y gestión de eventos recogiendo, analizando, detectando e investigando todos tus datos de seguridad en un solo lugar.