Prácticas recomendadas para diseñar aplicaciones

En esta guía se describen las prácticas recomendadas para diseñar y definir tus aplicaciones en el Centro de aplicaciones. Un diseño de aplicaciones eficaz es fundamental para aprovechar todas las ventajas de Google Cloud centrado en las aplicaciones, que ofrece mayor visibilidad, gobernanza y eficiencia operativa.

Principios básicos del diseño de aplicaciones

Si sigues estos principios básicos, podrás crear aplicaciones sólidas, fáciles de mantener y alineadas con tus objetivos de negocio, lo que maximizará el valor que obtengas de App Hub:

  • Reflejar las funciones empresariales: define las aplicaciones de App Hub en torno a las funciones empresariales o los flujos de trabajo integrales, en lugar de solo en torno a las capas técnicas o los microservicios individuales. Una aplicación debe representar un flujo de valor distinto para la empresa.

  • Determina la propiedad de forma clara: asigna propiedades y atributos claros a cada aplicación para facilitar la detección y la gestión. En concreto, añadir propietarios de aplicaciones fomenta la rendición de cuentas y agiliza la comunicación.

  • Ten en cuenta los límites de las aplicaciones: define límites que tengan sentido para las operaciones, la monitorización y la gobernanza. Lo ideal es que los recursos de una aplicación compartan un ciclo de vida operativo y un dominio de impacto comunes para simplificar la gestión y reducir el riesgo operativo.

    Cuando se definen los límites de una aplicación con fines operativos, es importante saber cómo estructura Google Cloud Observability la recogida y la visualización de datos. Mientras que App Hub se centra en los límites de las aplicaciones, Google Cloud Observability usa ámbitos para definir qué datos de telemetría se pueden ver y analizar en los proyectos. La configuración de estos ámbitos de observabilidad tiene una relación específica con tu proyecto host o proyecto de gestión, lo que determina cómo puedes agregar y ver los datos de telemetría de diferentes proyectos. Para obtener más información sobre cómo configurarlos para tener una vista unificada, consulta Configurar ámbitos de observabilidad.

  • Adáptate a la evolución: diseña tus aplicaciones para que se adapten a los cambios y al crecimiento futuros de tu arquitectura.

  • Refina de forma iterativa: revisa y ajusta tus aplicaciones con regularidad para reflejar los cambios en la estructura, los equipos y las prioridades de tu organización.

Qué se considera una aplicación

Para integrar de forma eficaz las funciones de gestión de aplicaciones enGoogle Cloud, es fundamental saber qué se considera una aplicación en App Hub. Una aplicación agrupa servicios y cargas de trabajo que, en conjunto, ofrecen una función empresarial específica. Para obtener más información sobre los conceptos básicos de las aplicaciones, los servicios y las cargas de trabajo en App Hub, consulta Conceptos y modelo de datos.

Para ayudarte a determinar el límite adecuado para tus aplicaciones de App Hub, ten en cuenta las siguientes preguntas clave:

  • ¿Qué valor para los usuarios o las empresas aporta esta colección de recursos?
  • ¿Estos componentes comparten un ciclo de vida operativo común?
  • ¿Hay una propiedad clara y unificada de estos recursos?
  • ¿Esta agrupación facilita la monitorización y la solución de problemas?

Ejemplo: arquitectura de demostración de OpenTelemetry

La arquitectura de demostración de OpenTelemetry representa un sistema de comercio electrónico que incluye microservicios como Anuncio, Carrito y Finalizar compra. Para definir mejor esta aplicación en App Hub, ten en cuenta las siguientes recomendaciones:

  • Modeliza todo el sistema de comercio electrónico como una aplicación de App Hub. Por ejemplo, my-ecommerce-site:

    • Las instancias de proceso de los microservicios individuales, como las implementaciones de Google Kubernetes Engine (GKE), se asignan a las cargas de trabajo de App Hub.
    • Los endpoints de red, como las interfaces gRPC/HTTP con balanceo de carga, se asignan a los servicios de App Hub.
  • No registre cada microservicio, como Ad, Cart y Checkout, como su propia aplicación App Hub. Este enfoque fragmenta el contexto empresarial.

Para obtener más información sobre los recursos de infraestructura que admite App Hub como servicios y cargas de trabajo, consulta Recursos admitidos de App Hub.

Estrategias de diseño

Aplica las siguientes estrategias de diseño para asegurarte de que tu configuración de App Hub sea escalable, gobernable y esté alineada con tus prácticas operativas.

Elegir entre aplicaciones globales y regionales

Cuando diseñes tus aplicaciones de App Hub, una decisión fundamental es si las vas a definir como globales o regionales. Esta elección influye en los recursos que se pueden incluir, la gestión de datos, la latencia, el coste y el cumplimiento:

  • Las aplicaciones globales son las más adecuadas para servicios y cargas de trabajo que se distribuyen de forma inherente en varias Google Cloud regiones o que dependen de recursos globales, como un balanceador de carga de aplicaciones global.
  • Las aplicaciones regionales son recomendables cuando todos los componentes de la aplicación se encuentran en una sola Google Cloud región. Por lo general, esta práctica es la mejor opción si tu arquitectura lo permite.

La siguiente lista de prácticas recomendadas puede ayudarte a elegir entre aplicaciones globales y regionales:

  • Prioriza las aplicaciones regionales: siempre que sea posible, diseña tus aplicaciones como regionales para aprovechar ventajas como la reducción de la latencia, el posible ahorro de costes en el tráfico de red entre regiones, la alineación con los requisitos de localidad de los datos y la compatibilidad inherente con lasGoogle Cloud funciones y los dominios de errores específicos de cada región.
  • Usa las aplicaciones globales de forma estratégica: elige aplicaciones globales solo cuando los componentes de tu sistema estén necesariamente distribuidos en varias regiones o impliquen servicios globales de Google Cloud .
  • Descompón los sistemas multirregión: si tienes recursos en varias regiones que no forman una única función global coherente, considera la posibilidad de definir aplicaciones regionales independientes para los recursos de cada región. De esta forma, se maximizan las ventajas de la regionalización en cada implementación.

Para ver una comparación detallada y analizar en profundidad las implicaciones de esta elección, consulta Aplicaciones globales y regionales.

Definir entornos como aplicaciones independientes

Puedes representar diferentes entornos de implementación como aplicaciones de App Hub independientes. Este enfoque proporciona un aislamiento sólido para la seguridad, los permisos y el riesgo operativo, lo que evita que se produzcan impactos accidentales en los entornos.

Por ejemplo, puedes estructurar tus aplicaciones como my-app-dev, my-app-staging y my-app-prod para los entornos de desarrollo, staging y producción, respectivamente.

Aunque puede usar el atributo Environment en una sola aplicación para etiquetar recursos, separar los entornos en aplicaciones distintas ofrece límites precisos para el control de acceso, la aplicación de políticas y la monitorización. Debe seguir usando el atributo Environment de forma coherente en los recursos de estas aplicaciones específicas del entorno para proporcionar detalles concretos y especificar aún más los roles. Para obtener más información sobre este y otros atributos, consulta Usar atributos para la gobernanza.

Alinearse con las estructuras de los equipos

Considera la posibilidad de alinear los límites de las aplicaciones con los equipos responsables de su desarrollo y funcionamiento. Esta práctica puede simplificar la propiedad y la comunicación, ya que el modelo de aplicación de App Hub refleja la estructura de tu organización.

Usar atributos para la gobernanza

Aplica atributos de forma coherente a todos los recursos de la aplicación para mejorar la visibilidad y aplicar la gobernanza. Estos atributos proporcionan metadatos enriquecidos para filtrar, generar informes y aplicar políticas:

  • Criticidad: ayuda a priorizar los recursos para la monitorización y la respuesta a incidentes.
  • Entorno: admite filtros y políticas específicas de cada entorno.
  • Propietarios: proporcionan visibilidad y responsabilidad.

Establece estándares de organización para etiquetar recursos con estos atributos. Para obtener más información, consulta Descubrimiento y gestión de la asistencia.

Identificar casos prácticos de gestión de aplicaciones

Integra App Hub con Application Design Center para disfrutar de una experiencia fluida en todo el ciclo de vida de la aplicación, desde el diseño hasta las operaciones:

  • Tienes recursos preexistentes para registrar como aplicación: registra los recursos Google Cloud existentes de tu modelo de configuración en una aplicación de App Hub para obtener visibilidad unificada y control operativo.
  • No tienes recursos preexistentes para registrar como aplicación: usa el Centro de diseño de aplicaciones para diseñar e implementar nuevas aplicaciones. Application Design Center registra automáticamente los recursos desplegados en App Hub, por lo que tu modelo refleja con precisión el diseño previsto. Application Design Center también te ayuda a gestionar las actualizaciones de las aplicaciones. Cuando cambia una plantilla de aplicación, puedes actualizar cualquier instancia basada en la plantilla, lo que te permite asegurarte de que las actualizaciones de la aplicación sean coherentes.

Jerarquía de recursos

La Google Cloud jerarquía de recursos estándar consta de recursos de organización, carpeta y proyecto. App Hub introduce una capa de gestión de aplicaciones sobre esa jerarquía mediante el concepto de carpetas habilitadas para aplicaciones y proyectos host, en función de tu modelo de configuración.

Si sabes cómo encaja el modelo de configuración que has elegido en tu jerarquía de recursos, podrás gestionar los recursos, aplicar las políticas y descubrir recursos de forma eficaz. Google Cloud Consulta las estructuras recomendadas y planifica tu jerarquía de recursos cuando elijas el modelo de configuración para gestionar aplicaciones.

Refinamiento continuo

Los diseños de las aplicaciones no son estáticos, sino que suelen evolucionar con el tiempo. Revisa y perfecciona tus aplicaciones periódicamente para asegurarte de que siguen adaptándose a las necesidades de tu empresa, a las estructuras de los equipos y a las arquitecturas cambiantes.

Te recomendamos que uses las estadísticas de Cloud Hub y Gemini Cloud Assist para identificar oportunidades de optimización y adaptar tus aplicaciones en consecuencia. Además, puedes usar Application Design Center para gestionar el ciclo de vida de tus aplicaciones. La página Implementaciones de Cloud Hub muestra las aplicaciones que tienen actualizaciones disponibles de la plantilla del Centro de diseño de aplicaciones en la que se basaron, lo que agiliza el proceso de actualización.