En esta guía se ofrecen prácticas recomendadas para diseñar, definir y gestionar tus aplicaciones de App Hub en Google Cloud centrado en aplicaciones, con App Hub y Application Design Center. Seguir estas prácticas es fundamental para crear aplicaciones operativas, gobernables y eficientes que se ajusten a tus objetivos de negocio.
Principios básicos de la gestión de aplicaciones
Si sigues estos principios básicos, podrás maximizar el valor que obtienes al gestionar tu infraestructura de forma centrada en las aplicaciones: Google Cloud
Define límites claros: establece el límite de gestión de aplicaciones de forma lógica para tus operaciones, monitorización, gobernanza y solución de problemas. Además, los recursos de este límite que utilices como componentes de la aplicación deberían compartir un ciclo de vida operativo o un valor empresarial conjunto para simplificar la gestión y reducir los riesgos.
Por motivos operativos, es importante entender la diferencia entre un límite de gestión de aplicaciones y los ámbitos de observabilidad.
- El límite de gestión de aplicaciones define el conjunto de proyectos que contienen los Google Cloud recursos que puedes usar para diseñar, crear y gestionar aplicaciones, tal como se describe en Conceptos clave.
- Los permisos de observabilidad de Google Cloud Observability te permiten ver la telemetría de varios proyectos a la vez.
Los ámbitos de registros, métricas y trazas deben incluir datos de los mismos proyectos que se incluyan en el límite de gestión de aplicaciones. Para obtener más información sobre los ámbitos de observabilidad, consulta Configurar ámbitos de observabilidad.
Reflejar las funciones de la empresa: define tus aplicaciones en torno a las funciones de la empresa o los flujos de trabajo integrales, no solo en torno a las capas técnicas. Una aplicación debe representar un flujo de valor distinto para tu empresa.
Define la propiedad y los metadatos de forma clara: asigna atributos claros a cada aplicación para que los equipos puedan encontrarlas, entenderlas y gestionarlas de forma eficaz en App Hub. Estos atributos permiten mejorar la visibilidad y la gestión. La visibilidad implica que los equipos pertinentes, como los desarrolladores y los operadores, pueden encontrar aplicaciones. La gobernanza define claramente quién es el propietario de cada aplicación y quién es responsable de ella.
En App Hub, puedes definir atributos clave como los siguientes:
- Entorno: la fase del ciclo de vida de la aplicación, como producción, staging, prueba o desarrollo. Este atributo ayuda a los equipos a filtrar y gestionar componentes en función de su fase de implementación.
- Criticidad: la importancia de la aplicación y sus componentes para la empresa, por ejemplo, si son fundamentales. Este atributo puede informar sobre las prioridades de monitorización y respuesta a incidentes.
- Propietarios: información de contacto de los diferentes equipos responsables de la aplicación, lo que fomenta la rendición de cuentas, agiliza la comunicación y aclara las responsabilidades.
Application Design Center admite estos atributos y también incluye detalles de ubicación y configuración de los componentes de la aplicación. Aplicar esos atributos y detalles de forma coherente es fundamental para el descubrimiento, la gobernanza y la creación de informes.
Diseño para la evolución: Application Design Center te ayuda a diseñar para la evolución permitiéndote crear plantillas reutilizables para tus aplicaciones. Si actualizas la plantilla subyacente, puedes aplicar esos cambios volviendo a implementar las aplicaciones, lo que te ayudará a satisfacer la demanda, introducir nuevas funciones o hacer cambios en la arquitectura, así como a adaptarte al crecimiento futuro y a las necesidades cambiantes de la infraestructura.
Itera y perfecciona los modelos de aplicaciones: revisa y ajusta periódicamente las definiciones de tus aplicaciones para reflejar los cambios en la estructura de tu organización, las prioridades de tu empresa y la arquitectura técnica. Cloud Hub ofrece vistas centralizadas de las actualizaciones disponibles para las aplicaciones implementadas a partir de plantillas de Application Design Center, lo que te ayuda a revisar y ajustar las definiciones de tus aplicaciones para reflejar estas necesidades cambiantes.
Recomendaciones de modelos de datos
Si sabes cómo modelar tus sistemas reales como aplicaciones, servicios y cargas de trabajo en el framework de App Hub, podrás usar de forma eficaz las funciones de gestión de aplicaciones en tu entorno de Google Cloud.
Cuando definas tus aplicaciones, es importante que apliques los principios básicos de la gestión de aplicaciones, como usar atributos para establecer claramente la propiedad y los metadatos.
Para modelar los componentes de tu aplicación teniendo en cuenta este framework, consulta los siguientes ejemplos de casos prácticos recomendados.
Ejemplo: aplicación basada en microservicios
Un sistema de comercio electrónico, como el que se describe en la demostración de OpenTelemetry de una tienda online, es un ejemplo de aplicación basada en microservicios. Te recomendamos que modelices este tipo de sistema como una sola aplicación. Este enfoque ofrece una visión unificada de toda la función empresarial, desde el descubrimiento de productos hasta la tramitación de la compra. Por ejemplo, considera el siguiente modelo para los recursos que ya se están ejecutando en Google Cloud:
Aplicación: crea o define una sola aplicación en App Hub con el nombre
my-ecommerce-site, por ejemplo. Esta aplicación representa toda la tienda online como una sola unidad gestionable. Registra los siguientes recursos en la aplicación para crear una agrupación lógica de componentes que, en conjunto, ofrezcan la función empresarial de tu tienda online:- Microservicios como cargas de trabajo: registra los microservicios individuales que componen el sistema de comercio electrónico, como Anuncio, Carrito y Finalizar compra, como cargas de trabajo en la aplicación. Se trata de los recursos de computación con el código binario que realizan una parte independiente de la lógica empresarial y que se ejecutan como implementaciones de Google Kubernetes Engine (GKE).
- Puntos de conexión de red como servicios: registra los puntos de conexión de red de estos microservicios, como sus balanceadores de carga, como servicios de la aplicación. Estas exponen la funcionalidad de la tienda online a los clientes.
No registres cada microservicio como una aplicación independiente. Este enfoque fragmenta el contexto empresarial y dificulta la obtención de una visión completa del estado y el rendimiento de su tienda online.
Si agrupas todos los microservicios en una sola aplicación, obtendrás las siguientes ventajas:
- Visibilidad completa: puede monitorizar el estado y el rendimiento de todo el recorrido del usuario de comercio electrónico, desde la funcionalidad de los anuncios hasta la de la tramitación de la compra, en una sola vista unificada.
- Contexto empresarial claro: la aplicación alinea la infraestructura con la función empresarial que ofrece, que es la tienda online. Este enfoque facilita la comprensión del estado y el coste de la aplicación.
- Solución de problemas simplificada: cuando surge un problema, puedes ver las dependencias entre los distintos microservicios de la aplicación, lo que acelera el análisis de la causa principal.
Ejemplo: aplicación web de tres niveles
Una aplicación web de tres niveles es un patrón arquitectónico que separa una aplicación en un nivel de frontend, un nivel de backend y un nivel de base de datos. En este caso práctico se muestra cómo modelizar una función empresarial completa como una sola aplicación, en lugar de tratar cada nivel como un componente aislado.
El siguiente modelo asigna capas técnicas a una aplicación web de tres niveles:
Aplicación: crea una sola aplicación, por ejemplo,
my-web-app, para que sirva de contenedor lógico de todos los componentes que forman tu aplicación web.Servicios: registra las interfaces de red que exponen funciones a otros niveles o a los usuarios como servicios. Por ejemplo:
- El balanceador de carga de frontend que recibe el tráfico de los usuarios.
- El balanceador de carga interno que gestiona el tráfico entre el frontend y el backend.
- La instancia de base de datos de Cloud SQL o Spanner, que expone un servicio de datos a la capa de lógica de backend.
Cargas de trabajo: registra los recursos de computación que ejecutan el código de tu aplicación como cargas de trabajo. Por ejemplo:
- Los grupos de instancias gestionadas o los despliegues de Google Kubernetes Engine que sirven la interfaz de usuario frontend.
- Las MIGs o los despliegues de Google Kubernetes Engine que ejecutan la lógica empresarial del backend.
Si agrupas los tres niveles en una sola aplicación, obtendrás las siguientes ventajas:
- Observabilidad unificada: puedes monitorizar el estado y el rendimiento de toda la aplicación desde un único panel de control en Monitorización de aplicaciones, en lugar de tener que combinar datos de tres aplicaciones independientes.
- Propiedad clara: puedes asignar propietarios de la empresa, desarrolladores y operadores a la aplicación
my-web-app, lo que aclara las responsabilidades de toda la función empresarial. - Gobernanza simplificada: puedes aplicar políticas y controles de acceso a nivel de
my-web-app, lo que permite mantener una gobernanza coherente en todos los niveles.
Estrategias de diseño y gobernanza de aplicaciones
Adopta las siguientes estrategias para asegurarte de que la configuración de tu centro de aplicaciones y de tu centro de diseño de aplicaciones sea escalable, gobernable y esté alineada con tus prácticas operativas.
Elegir entre aplicaciones globales y regionales
La ubicación que elijas para una aplicación (global o regional) es una decisión fundamental que influye en la gestión de los datos, la latencia y el cumplimiento:
- Prioriza las aplicaciones regionales: siempre que sea posible, define tus aplicaciones como regionales. Esta práctica ofrece ventajas como una latencia reducida, posibles ahorros de costes y el cumplimiento de los requisitos de residencia de los datos. Se recomienda usar aplicaciones regionales cuando todos los componentes de la aplicación residan en una sola región, lo que proporciona una compatibilidad inherente con las funciones y los dominios de errores específicos de la región. Google Cloud Google Cloud Para obtener información sobre cómo crear sistemas de alta disponibilidad, consulta el artículo Crear sistemas de alta disponibilidad mediante la redundancia de recursos.
- Usa las aplicaciones globales de forma estratégica: elige una aplicación global solo cuando los componentes de tu sistema estén necesariamente distribuidos en varias regiones o impliquen recursos globales, como un balanceador de carga de aplicación externo global. 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 componentes 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 de las diferentes zonas geográficas de implementación en App Hub, consulta Aplicaciones globales y regionales.
Separar los entornos en aplicaciones distintas
Para admitir el aislamiento por motivos de seguridad, permisos y riesgos operativos, representa los diferentes entornos de despliegue (como desarrollo, staging y producción) como aplicaciones independientes. Por ejemplo, puedes estructurar tus aplicaciones como my-app-dev, my-app-staging y my-app-prod.
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. Además, si usas de forma coherente los atributos, los detalles de configuración y la ubicación en los componentes de tu aplicación, mejorarás la visibilidad y reforzarás la gobernanza. Estos atributos
proporcionan metadatos enriquecidos para filtrar, generar informes y aplicar políticas. Por ejemplo, el atributo Environment proporciona detalles específicos y control de recursos para distintas políticas de entornos de implementación. Para obtener más información sobre este y otros atributos, consulte Propiedades y atributos.
Alinear los límites de gestión de aplicaciones con las estructuras de los equipos
Representa tu estructura organizativa, en concreto los equipos responsables del desarrollo y el funcionamiento de las aplicaciones, dentro de los límites de gestión de aplicaciones.
Esta práctica simplifica la propiedad y la comunicación, ya que el modelo de aplicación refleja el marco que usa tu empresa para definir cómo se dividen, agrupan y coordinan las tareas para llevar a cabo sus funciones.
Seguir el ciclo de vida de las aplicaciones
Integra App Hub con Application Design Center para disfrutar de una experiencia fluida durante todo el ciclo de vida de la aplicación:
- Tienes recursos que ya están registrados en una aplicación: usa App Hub para registrar tus Google Cloud recursos Google Cloud como servicios o cargas de trabajo en aplicaciones. Esta práctica proporciona una visibilidad unificada y un control operativo sobre tu infraestructura actual de forma rápida. También puedes crear una plantilla en Application Design Center a partir de una aplicación en ejecución para estandarizar la arquitectura de futuras implementaciones.
- No tienes recursos preexistentes para registrar en una aplicación: usa el Centro de Diseño de Aplicaciones para diseñar y desplegar nuevas aplicaciones a partir de plantillas reutilizables y gobernadas. Cuando implementas una aplicación a partir de una plantilla de Application Design Center, los componentes se registran automáticamente en App Hub para que el modelo de la aplicación refleje con precisión el diseño previsto. Application Design Center también te ayuda a gestionar las actualizaciones de aplicaciones coherentes en función de las revisiones de las plantillas. Si actualizas la plantilla, puedes volver a implementar la aplicación para propagar los cambios, lo que favorece la coherencia y la gobernanza.
Consideraciones sobre la jerarquía de recursos
La jerarquía de recursos Google Cloud es la base de la gestión práctica de aplicaciones. Para definir el límite de gestión de aplicaciones, puedes introducir una capa de gestión de aplicaciones en la parte superior de esa jerarquía configurando un proyecto de gestión. Para obtener una descripción general de cómo funcionan los diferentes productos en las soluciones de Google Cloud centradas en aplicaciones, consulta Google Cloud centrado en aplicaciones.
Es fundamental planificar cuidadosamente la Google Cloud jerarquía de recursos de tu aplicación para establecer agrupaciones lógicas. La elección de un solo proyecto, una carpeta o un conjunto de proyectos para definir el límite de gestión de aplicaciones influye de forma fundamental en la gobernanza, la aplicación de políticas y la detección de recursos. Además, la asistencia para productos de Google Cloud centrada en aplicaciones varía en función de cómo definas este límite de gestión de aplicaciones.
Para definir el mejor límite de gestión de aplicaciones para tu jerarquía de recursos y tus necesidades empresariales, así como para obtener información sobre la asistencia de productos para diferentes patrones de estructura de recursos, consulta el artículo Elegir el modelo de configuración de 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 alineadas con tus funciones empresariales, estructuras de equipo y 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. Usa Application Design Center para modelar y desplegar cambios en la arquitectura, así como para gestionar el ciclo de vida de tus aplicaciones mediante plantillas.