En esta guía, se proporcionan prácticas recomendadas para diseñar y definir tus aplicaciones en App Hub. El diseño eficaz de las aplicaciones es clave para aprovechar todos los beneficios de Google Cloud centrado en las aplicaciones, ya que ofrece mayor visibilidad, gobernanza y eficiencia operativa.
Principios básicos del diseño de aplicaciones
Cumplir con los siguientes principios fundamentales te ayuda a crear aplicaciones sólidas, fáciles de mantener y alineadas con tus objetivos comerciales, lo que maximiza el valor que obtienes de App Hub:
Refleja las capacidades comerciales: Define las aplicaciones de App Hub en torno a las funciones comerciales o los flujos de trabajo de extremo a extremo, en lugar de solo las capas técnicas o los microservicios individuales. Una aplicación debe representar un flujo de valor distinto para la empresa.
Determina la propiedad clara: Asigna propiedades y atributos claros a cada aplicación para respaldar la detección y la administración. En particular, agregar propietarios de aplicaciones fomenta la responsabilidad y agiliza la comunicación.
Considera los límites de la aplicación: Define límites que tengan sentido para las operaciones, la supervisión y la administración. Lo ideal es que los recursos dentro de una aplicación compartan un ciclo de vida operativo y un dominio de impacto comunes para simplificar la administración y reducir el riesgo operativo.
Cuando consideres los límites de tu aplicación para fines operativos, es importante que comprendas cómo Google Cloud Observability estructura la recopilación y la visualización de datos. Si bien App Hub se enfoca en los límites de las aplicaciones, Google Cloud Observability usa alcances para definir qué datos de telemetría son visibles y analizables en todos los proyectos. La configuración de estos permisos de observabilidad tiene una relación específica con tu proyecto host o proyecto de administració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 configurar estos parámetros para una vista unificada, consulta Configura los alcances de observabilidad.
Adaptación a la evolución: Diseña tus aplicaciones para que se adapten a los cambios y el crecimiento futuros de tu arquitectura.
Realiza mejoras de forma iterativa: Revisa y ajusta tus aplicaciones con regularidad para reflejar los cambios en la estructura, los equipos y las prioridades comerciales de tu organización.
Qué definir como una aplicación
Comprender qué constituye una aplicación en App Hub es fundamental para integrar de manera eficaz las capacidades de administración de aplicaciones enGoogle Cloud. Una aplicación agrupa servicios y cargas de trabajo que, en conjunto, brindan una función comercial 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, considera las siguientes preguntas clave:
- ¿Qué valor comercial o para el usuario proporciona esta colección de recursos?
- ¿Estos componentes comparten un ciclo de vida operativo común?
- ¿Existe una propiedad clara y unificada en todos estos recursos?
- ¿Esta agrupación facilita la supervisión y la solución de problemas eficaces?
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 Ad, Cart y Checkout. Para definir mejor esta aplicación en App Hub, ten en cuenta las siguientes recomendaciones:
Modelar todo el sistema de comercio electrónico como una aplicación de App Hub, por ejemplo,
my-ecommerce-site
:- Las instancias de procesamiento de los microservicios individuales, como las implementaciones de Google Kubernetes Engine (GKE), se asignan a las cargas de trabajo de App Hub.
- Los extremos de red, como las interfaces HTTP/gRPC balanceadas por carga, se asignan a los servicios de App Hub.
Evita registrar cada microservicio, como Ad, Cart y Checkout, como su propia aplicación de 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 compatibles con App Hub.
Estrategias de diseño
Emplea las siguientes estrategias de diseño para asegurarte de que la configuración de tu Centro de aplicaciones sea escalable, gobernable y esté alineada con tus prácticas operativas.
Elige entre aplicaciones globales y regionales
Cuando diseñes tus aplicaciones de App Hub, una decisión fundamental es si las definirás como globales o regionales. Esta elección afecta los recursos que se pueden incluir, el manejo de datos, la latencia, el costo y el cumplimiento:
- Las aplicaciones globales son más adecuadas para los servicios y las cargas de trabajo que se distribuyen de forma inherente en varias Google Cloud regiones o que dependen de recursos globales, como un balanceador de cargas de aplicaciones global.
- Se recomiendan las aplicaciones regionales cuando todos los componentes de la aplicación residen en una sola región Google Cloud . Por lo general, esta práctica es el mejor enfoque si tu arquitectura lo permite.
La siguiente lista de prácticas recomendadas puede ayudarte a elegir entre las aplicaciones globales y regionales:
- Prioriza las aplicaciones regionales: Siempre que sea posible, diseña tus aplicaciones como regionales para aprovechar los beneficios, como la reducción de la latencia, los posibles ahorros de costos en el tráfico de red interregional, la alineación con los requisitos de localidad de los datos y la compatibilidad inherente con lasGoogle Cloud funciones y los dominios de falla específicos de la región.
- Usa las aplicaciones globales de forma estratégica: Opta por las aplicaciones globales solo cuando los componentes de tu sistema deban distribuirse en varias regiones o involucren servicios Google Cloud globales.
- Descompón los sistemas multirregionales: Si tienes recursos en varias regiones que no forman una sola función global cohesiva, considera definir aplicaciones regionales separadas para los recursos dentro de cada región respectiva. Esta práctica maximiza los beneficios de la regionalización para cada implementación.
Para obtener una comparación detallada y un análisis más profundo de las implicaciones de esta elección, consulta Aplicaciones globales y regionales.
Define los entornos como aplicaciones separadas
Puedes representar diferentes entornos de implementación como aplicaciones distintas de App Hub. Este enfoque proporciona un aislamiento sólido para la seguridad, los permisos y el riesgo operativo, lo que evita impactos accidentales en los diferentes entornos.
Por ejemplo, puedes estructurar tus aplicaciones como my-app-dev
, my-app-staging
y my-app-prod
para los entornos de desarrollo, etapa de pruebas y producción, respectivamente.
Si bien puedes usar el atributo Environment
dentro de 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 supervisión. Aun así, debes usar el atributo Environment
de manera coherente en los recursos de estas aplicaciones específicas del entorno para proporcionar detalles precisos y especificar mejor los roles. Para obtener más información sobre este y otros atributos, consulta Usa atributos para la gobernanza.
Alinearse con las estructuras del equipo
Considera alinear los límites de la aplicación con los equipos responsables de su desarrollo y operación. Esta práctica puede simplificar la propiedad y la comunicación, ya que el modelo de aplicación en App Hub refleja la estructura de tu organización.
Usa atributos para la administración
Aplica atributos de forma coherente a todos los recursos de la aplicación para mejorar la detección y aplicar la gobernanza. Estos atributos proporcionan metadatos enriquecidos para el filtrado, la generación de informes y la aplicación de políticas:
- Criticidad: Ayuda a priorizar los recursos para la supervisión y la respuesta ante incidentes.
- Entorno: Admite filtros y políticas específicas del entorno.
- Propietarios: Proporcionan visibilidad y responsabilidad.
Establece estándares organizativos para etiquetar recursos con estos atributos. Para obtener más detalles, consulta Compatibilidad con la visibilidad y la administración.
Identifica casos de uso de la administración de aplicaciones
Integra App Hub con Application Design Center para disfrutar de una experiencia perfecta en el ciclo de vida de la aplicación, desde el diseño hasta las operaciones:
- Tienes recursos preexistentes para registrar como una aplicación: Registra los recursos Google Cloud existentes de tumodelo de configuración en una aplicación en App Hub para obtener visibilidad unificada y control operativo.
- No tienes recursos preexistentes para registrar como una aplicación: Usa el Centro de diseño de aplicaciones para diseñar y, luego, implementar aplicaciones nuevas. El Centro de diseño de aplicaciones registra automáticamente los recursos implementados en App Hub, por lo que tu modelo refleja con precisión el diseño previsto. App Design Center también te ayuda a administrar las actualizaciones de las aplicaciones. Cuando cambia una plantilla de aplicación, puedes actualizar las instancias basadas en la plantilla, lo que te permite asegurarte de que las actualizaciones de la aplicación sean coherentes.
Jerarquía de recursos
La jerarquía de recursos estándar deGoogle Cloud consta de recursos de organización, carpeta y proyecto. App Hub introduce una capa de administración de aplicaciones sobre esa jerarquía a través del concepto de carpetas habilitadas para aplicaciones y proyectos host, según tu modelo de configuración.
Comprender cómo se ajusta el modelo de configuración que elegiste a tu jerarquía de recursos existente de Google Cloudte permite lograr una administración, una aplicación de políticas y un descubrimiento de recursos eficaces. Revisa las estructuras recomendadas y planifica la jerarquía de recursos cuando elijas tu modelo de configuración para administrar aplicaciones.
Perfeccionamiento continuo
Los diseños de las aplicaciones no son estáticos, sino que suelen evolucionar con el tiempo. Revisa y define mejor tus aplicaciones periódicamente para asegurarte de que sigan alineándose con las necesidades de tu empresa, las estructuras de los equipos y 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 administrar el ciclo de vida de tus aplicaciones. La página Deployments en Cloud Hub muestra las aplicaciones que tienen actualizaciones disponibles de la plantilla de Application Design Center en la que se basaron, lo que agiliza el proceso de actualización.