Elige y administra el procesamiento

Last reviewed 2023-10-03 UTC

En este documento del framework de arquitectura de Google Cloud, se proporcionan prácticas recomendadas para implementar tu sistema en función de los requisitos de procesamiento. Aprenderás a elegir una plataforma de procesamiento y un enfoque de migración, diseñar y escalar cargas de trabajo, y administrar las operaciones y las migraciones de VM.

El procesamiento es la base de muchas cargas de trabajo, ya sea que se refieran a la ejecución de la lógica empresarial personalizada o a la aplicación de algoritmos complejos de procesamiento en los conjuntos de datos. La mayoría de las soluciones usan recursos de procesamiento de alguna forma, y es fundamental que selecciones los recursos de procesamiento adecuados para las necesidades de la aplicación.

Google Cloud ofrece varias opciones para usar el tiempo en una CPU. Las opciones se basan en los tipos de CPU, el rendimiento y la forma en que tu código está programado para ejecutarse, incluida la facturación por uso.

Entre las opciones de procesamiento de Google Cloud, se incluyen las siguientes:

  • Máquinas virtuales (VM) con beneficios específicos de la nube, como la migración en vivo
  • Compresión de contenedores en máquinas de clúster que pueden compartir CPU.
  • Funciones y enfoques sin servidores, en los que el uso del tiempo de CPU se puede medir según el trabajo realizado durante una sola solicitud HTTP.

Elige el procesamiento

En esta sección, se proporcionan prácticas recomendadas para elegir una plataforma de procesamiento y migrar a ella.

Elige una plataforma de procesamiento

Cuando elijas una plataforma de procesamiento para tu carga de trabajo, considera los requisitos técnicos de la carga de trabajo, los procesos de automatización del ciclo de vida, la regionalización y la seguridad.

Evalúa la naturaleza del uso de CPU por parte de tu app y todo el sistema que la respalda, incluida la forma en que tu código se empaqueta y se implementa, distribuye e invoca. Si bien algunas situaciones pueden ser compatibles con varias opciones de plataformas, una carga de trabajo portátil debe ser capaz de funcionar en una variedad de opciones de procesamiento.

En la siguiente tabla, se proporciona una descripción general de los servicios de procesamiento de Google Cloud recomendados para varios casos de uso:

Plataforma Compute Casos de uso Productos recomendados
Sin servidores
  • Implementa tu primera app
  • Enfócate en la lógica de procesamiento de datos y procesamiento en la app, en lugar de mantener las operaciones de infraestructura.
  • Cloud Run: Pon tu lógica empresarial en contenedores mediante esta opción completamente administrada y sin servidores. Cloud Run está diseñado para cargas de trabajo que requieren mucho procesamiento, pero no siempre están activas. Escala de forma rentable desde 0 (sin tráfico) y define la CPU y la RAM de tus tareas y servicios. Implementa con un solo comando y Google aprovisiona de forma automática la cantidad correcta de recursos.
  • Cloud Functions: Separa tu código en partes flexibles de lógica empresarial sin las preocupaciones de infraestructura del balanceo de cargas, las actualizaciones, la autenticación o el ajuste de escala.
Kubernetes Arquitecturas de microservicios complejas que necesitan servicios adicionales como Istio para administrar el control de la malla de servicios
  • Google Kubernetes Engine: Un motor de organización de contenedores de código abierto que automatiza la implementación, el escalamiento y la administración de apps en contenedores.
Máquinas virtuales (VMs) Crea y ejecuta VM a partir de familias de VM predefinidas y personalizables que admitan los requisitos de tu aplicación y carga de trabajo, así como software y servicios de terceros.
  • Compute Engine: Agrega unidades de procesamiento de gráficos (GPU) a tus instancias de VM. Puedes usar estas GPU para acelerar cargas de trabajo específicas en las instancias, como aprendizaje automático y procesamiento de datos.

A fin de seleccionar los tipos de máquina adecuados según tus requisitos, consulta Recomendaciones para las familias de máquinas.

Para obtener más información, consulta Elige las opciones de procesamiento.

Elige un enfoque de migración de procesamiento

Si migras tus aplicaciones existentes desde otra nube o desde entornos locales, usa uno de los siguientes productos de Google Cloud para optimizar el rendimiento, el escalamiento, el costo y la seguridad.

Objetivo de migración Caso práctico Producto recomendado
Lift-and-shift Migra o extiende tus cargas de trabajo de VMware a Google Cloud en minutos. Google Cloud VMware Engine
Lift-and-shift Traslada tus aplicaciones basadas en VM a Compute Engine. Migrate to Virtual Machines
Actualiza las VM a contenedores Moderniza las aplicaciones tradicionales en contenedores integrados en Google Kubernetes Engine. Migrate to Containers

Si deseas obtener información sobre cómo migrar tus cargas de trabajo mientras alineas equipos internos, consulta Ciclo de vida de la migración de VM y Compila un programa de migración a gran escala con Google Cloud.

Diseña cargas de trabajo

En esta sección, se proporcionan prácticas recomendadas para diseñar cargas de trabajo compatibles con tu sistema.

Evalúa las opciones sin servidores para obtener una lógica simple

La lógica simple es un tipo de procesamiento que no requiere hardware especializado ni tipos de máquinas como máquinas optimizadas para CPU. Antes de invertir en implementaciones de Google Kubernetes Engine (GKE) o Compute Engine para abstraer la sobrecarga operativa y optimizar el costo y el rendimiento, evalúa opciones sin servidores para obtener una lógica básica.

Separa las aplicaciones para que queden sin estado

Cuando sea posible, separa tus aplicaciones para que queden sin estado a fin de maximizar el uso de las opciones de computación sin servidores. Este enfoque te permite usar ofertas de procesamiento administradas, escalar aplicaciones según la demanda y optimizar el costo y el rendimiento. Si deseas obtener más información sobre cómo separar la aplicación a fin de diseñar para gran escala y alta disponibilidad, consulta Diseña para gran escala y alta disponibilidad.

Usa la lógica de almacenamiento en caché cuando separes las arquitecturas

Si la aplicación está diseñada para tener estado, usa la lógica de almacenamiento en caché a fin de desconectar y hacer que la carga de trabajo sea escalable. Si quieres obtener más información, consulta Prácticas recomendadas para bases de datos.

Usa las migraciones en vivo para facilitar las actualizaciones

Para facilitar las actualizaciones de mantenimiento de Google, usa la migración en vivo mediante la configuración de políticas de disponibilidad de instancia. Para obtener más información, consulta Configura la política de mantenimiento del host de VM.

Escala las cargas de trabajo

En esta sección, se proporcionan prácticas recomendadas para escalar cargas de trabajo a fin de que sean compatibles con tu sistema.

Usa secuencias de comandos de inicio y apagado

En el caso de las aplicaciones con estado, usa las secuencias de comandos de inicio y apagado cuando sea posible iniciar y detener el estado de la aplicación de manera ordenada. Un inicio ordenado ocurre cuando una función de software activa una computadora y el sistema operativo puede realizar sus tareas de iniciar procesos y abrir conexiones de forma segura.

Los inicios y los apagados ordenados son importantes porque las aplicaciones con estado dependen de la disponibilidad inmediata para los datos que se encuentran cerca del procesamiento, generalmente en discos locales o persistentes, o en la RAM. A fin de evitar la ejecución de datos de la aplicación desde el principio para cada inicio, usa una secuencia de comandos de inicio a fin de volver a cargar los últimos datos guardados y ejecutar el proceso desde donde se detuvo antes en el apagado. Para guardar el estado de la memoria de la aplicación y evitar perder progreso en el apagado, usa una secuencia de comandos de apagado. Por ejemplo, usa una secuencia de comandos de apagado cuando se programa el apagado de una VM debido a la reducción de la escala o a eventos de mantenimiento de Google.

Usa MIG para admitir la administración de VM

Cuando usas VM de Compute Engine, los grupos de instancias administrados (MIG) admiten funciones como la reparación automática, el balanceo de cargas, el ajuste de escala automático, las actualizaciones automáticas y las cargas de trabajo con estado. Puedes crear MIG regionales o zonales según los objetivos de disponibilidad. Puedes usar MIG en cargas de trabajo de entrega sin estado o cargas de trabajo por lotes y en aplicaciones con estado que necesitan conservar el estado único de cada VM.

Usa los escaladores automáticos de Pods para escalar tus cargas de trabajo de GKE

Usa los escaladores automáticos de pod verticales y horizontales para escalar tus cargas de trabajo y usa aprovisionamiento automático de nodos para escalar los recursos de procesamiento subyacentes.

Distribuye el tráfico de las aplicaciones

Si quieres escalar tus aplicaciones de forma global, usa Cloud Load Balancing para distribuir las instancias de tu aplicación en más de una región o zona. Los balanceadores de cargas optimizan el enrutamiento de paquetes de las redes perimetrales de Google Cloud a la zona más cercana, lo que aumenta la eficiencia del tráfico de entrega y minimiza los costos de entrega. Si deseas optimizar la latencia del usuario final, usa Cloud CDN para almacenar en caché el contenido estático cuando sea posible.

Automatiza la creación y la administración de procesamiento

Automatiza la creación y administración de procesamiento para minimizar los errores causados por las personas en tu entorno de producción.

Administra operaciones

En esta sección, se proporcionan prácticas recomendadas para administrar las operaciones a fin de que sean compatibles con tu sistema.

Usa imágenes públicas proporcionadas por Google

Usa imágenes públicas proporcionadas por Google Cloud. Las imágenes públicas de Google Cloud se actualizan con regularidad. Para obtener más información, consulta la Lista de imágenes públicas disponibles en Compute Engine.

También puedes crear tus propias imágenes con parámetros de configuración específicos. Cuando sea posible, automatiza y centraliza la creación de imágenes en un proyecto separado que puedas compartir con usuarios autorizados de tu organización. Crear y seleccionar una imagen personalizada en un proyecto distinto te permite actualizar, parchar y crear una VM con tus propias configuraciones. Luego, puedes compartir la imagen de VM seleccionada con proyectos relevantes.

Usa instantáneas para copias de seguridad de instancias

Las instantáneas te permiten crear copias de seguridad para tus instancias. Las instantáneas son especialmente útiles para las aplicaciones con estado, que no son lo suficientemente flexibles a fin de mantener el estado o guardar el progreso cuando experimentan cierres abruptos. Si usas instantáneas con frecuencia para crear instancias nuevas, puedes optimizar el proceso de copia de seguridad mediante la creación de una imagen base a partir de esa instantánea.

Usa una imagen de máquina para habilitar la creación de instancias de VM

Aunque una instantánea solo captura una imagen de los datos dentro de una máquina, una imagen de máquina captura la configuración de la máquina además de los datos. Usa una imagen de máquina para almacenar todas las opciones de configuración, metadatos, permisos y datos de uno o más discos necesarios a fin de crear una instancia de VM.

Cuando creas una máquina a partir de una instantánea, debes establecer la configuración de la instancia en las instancias de VM nuevas, lo que requiere mucho trabajo. El uso de imágenes de máquina te permite copiar esa configuración conocida en máquinas nuevas, lo que reduce la sobrecarga. Para obtener más información, consulta Cuándo usar una imagen de máquina.

Capacidad, reservas y aislamiento

En esta sección, se proporcionan prácticas recomendadas para administrar la capacidad, las reservas y el aislamiento a fin de que sean compatibles con tu sistema.

Usa descuentos por compromiso de uso para reducir los costos

Puedes reducir el costo de los gastos operativos (OPEX) para las cargas de trabajo que siempre están activas mediante los descuentos por compromiso de uso. Para obtener más información, consulta la categoría Optimización de costos.

Elige tipos de máquinas que sean compatibles con el costo y el rendimiento

Google Cloud ofrece tipos de máquinas que te permiten elegir procesamiento basado en los parámetros de costo y rendimiento. Puedes elegir una oferta de bajo rendimiento para optimizar el costo o elegir una opción de computación de alto rendimiento a un costo más alto. Para obtener más información, consulta la categoría Optimización de costos.

Usa nodos de usuario único para satisfacer las necesidades de cumplimiento

Los nodos de usuario único son servidores físicos de Compute Engine dedicados a alojar solo las VM de tu proyecto. Los nodos de usuario único pueden ayudarte a cumplir con los requisitos de cumplimiento del aislamiento físico, incluidos los siguientes:

  • Mantener tus VM separadas de forma física de las VM en otros proyectos.
  • Agrupar tus VM en el mismo hardware del host.
  • Aislar las cargas de trabajo de procesamiento de pagos.

Para obtener más información, consulta Nodos de usuario único.

Usa las reservas para garantizar la disponibilidad de los recursos

Google Cloud te permite definir reservas para tus cargas de trabajo a fin de garantizar que esos recursos estén siempre disponibles. No se generan cargos adicionales por crear reservas, pero pagas por los recursos reservados, incluso si no los usas. Para obtener más información, consulta Consume y administra reservas.

VM Migration

En esta sección, se proporcionan prácticas recomendadas para migrar VM a fin de que sean compatibles con tu sistema.

Evalúa las herramientas de migración integradas

Evalúa las herramientas de migración integradas para mover tus cargas de trabajo desde otra nube o desde las instalaciones locales. Para obtener más información, consulta Migración a Google Cloud. Google Cloud ofrece herramientas y servicios para ayudarte a migrar tus cargas de trabajo y optimizar el costo y el rendimiento. Para recibir una evaluación gratuita del costo de migración según tu panorama de TI actual, consulta el Programa de evaluación y migración rápidas de Google Cloud.

Usa la importación de discos virtuales para sistemas operativos personalizados

Para importar sistemas operativos compatibles personalizados, consulta Importa discos virtuales. Los nodos de usuario único pueden ayudarte a cumplir con los requisitos de hardware de licencia adquirida por el usuario para licencias por núcleo o por procesador. Para obtener más información, consulta Licencias adquiridas por el usuario.

Recomendaciones

Para aplicar la guía del framework de arquitectura a tu propio entorno, te recomendamos que hagas lo siguiente:

  • Revisa las ofertas de Google Cloud Marketplace para evaluar si tu aplicación aparece en la lista de un proveedor compatible. Google Cloud admite la ejecución de varios sistemas de código abierto y varios software de terceros.

  • Considera Migrate to Containers y GKE para extraer y empaquetar tu aplicación basada en VM como una aplicación en contenedores que se ejecuta en GKE.

  • Usa Compute Engine para ejecutar tus aplicaciones en Google Cloud. Si tienes dependencias heredadas que se ejecutan en una aplicación basada en VM, verifica si cumplen con los requisitos de tu proveedor.

  • Evalúa el uso de un balanceador de cargas de red de transferencia interno de Google Cloud para escalar la arquitectura separada. Para obtener más información, consulta Descripción general del balanceador de cargas de red de transferencia interno.

  • Evalúa tus opciones para cambiar desde casos de uso locales tradicionales, como el uso del proxy con alta disponibilidad. Si deseas obtener más información, consulta Prácticas recomendadas para la dirección IP flotante.

  • Usa VM Manager a fin de administrar sistemas operativos para tus grandes flotas de VM que ejecutan Windows o Linux en Compute Engine y aplica políticas de configuración coherentes.

  • Considera usar GKE Autopilot y permitir que Google SRE administre completamente tus clústeres.

  • Usa el Policy Controller y el Sincronizador de configuración para administrar las políticas y la configuración en tus clústeres de GKE.

  • Garantiza la disponibilidad y escalabilidad de las máquinas en regiones y zonas específicas. Google Cloud puede escalar para satisfacer tus necesidades de procesamiento. Sin embargo, si necesitas muchos tipos de máquinas específicos en una región o zona específica, trabaja con tus equipos de cuentas para garantizar la disponibilidad. Si deseas obtener más información, consulta Reservas para Compute Engine.

¿Qué sigue?

Obtén más información sobre los principios del diseño de herramientas de redes, incluido lo siguiente:

Explora otras categorías en el framework de arquitectura, como la confiabilidad, la excelencia operativa y la seguridad, la privacidad y el cumplimiento.