Prácticas recomendadas para la administración de aplicaciones

En esta guía, se proporcionan prácticas recomendadas para diseñar, definir y administrar tus aplicaciones de App Hub en Google Cloud centrado en las aplicaciones, con App Hub y App Design Center. Seguir estas prácticas es clave para crear aplicaciones operativas, gobernables y eficientes que se alineen con tus objetivos comerciales.

Principios básicos de la administración de aplicaciones

Cumplir con los siguientes principios básicos te ayuda a maximizar el valor que obtienes de la administración de tu infraestructura Google Cloud de una manera centrada en las aplicaciones:

  • Define límites claros: Establece el límite de administración de aplicaciones de una manera lógica para tus operaciones, supervisión, administración y solución de problemas. Además, los recursos dentro de este límite que uses como componentes de la aplicación deberían, idealmente, compartir un ciclo de vida operativo o un valor comercial conjunto para simplificar la administración y reducir el riesgo.

    Para fines operativos, es importante comprender la diferencia entre un límite de administración de aplicaciones y los alcances de observabilidad.

    • El límite de administración de aplicaciones define la colección de proyectos que contienen los recursos de Google Cloud que puedes usar para diseñar, crear y administrar aplicaciones, como se describe en Conceptos clave.
    • Los permisos de observabilidad en Google Cloud Observability te permiten ver la telemetría de varios proyectos juntos.

    Tus registros, métricas y alcances de seguimiento deben incluir datos de los mismos proyectos que se incluyen en el límite de administración de tu aplicación. Para obtener más información sobre los permisos de observabilidad, consulta Cómo configurar los permisos de observabilidad.

  • Refleja las capacidades comerciales: Define tus aplicaciones en torno a las funciones comerciales o los flujos de trabajo de extremo a extremo, no solo en torno a las capas técnicas. Una aplicación debe representar un flujo de valor distinto para tu empresa.

  • Establece la propiedad y los metadatos de forma clara: Asigna atributos claros a cada aplicación para que los equipos puedan encontrarlas, comprenderlas y administrarlas de manera eficaz en App Hub. Estos atributos admiten la detección y la administración. La detectabilidad significa que los equipos pertinentes, como los de desarrolladores y 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: Es la etapa del ciclo de vida de la aplicación, como producción, etapa de pruebas, prueba o desarrollo. Este atributo ayuda a los equipos a filtrar y administrar los componentes según su etapa de implementación.
    • Criticidad: Es la importancia comercial de la aplicación y sus componentes, por ejemplo, si son esenciales para la misión. Este atributo puede informar las prioridades de supervisión y respuesta ante incidentes.
    • Propietarios: Información de contacto de los diferentes equipos responsables de la aplicación, lo que fomenta la responsabilidad, optimiza la comunicación y aclara las responsabilidades.

    El Centro de diseño de aplicaciones admite estos atributos y también incluye detalles de ubicación y configuración para los componentes de la aplicación. Aplicar esos atributos y detalles de forma coherente es fundamental para el descubrimiento, la administración y la generación de informes.

  • Diseño para la evolución: Application Design Center te ayuda a diseñar para la evolución, ya que te permite crear plantillas reutilizables para tus aplicaciones. Si actualizas la plantilla subyacente, puedes aplicar esos cambios volviendo a implementar las aplicaciones, lo que te ayuda a satisfacer la demanda, introducir nuevas funciones o realizar cambios arquitectónicos, y así adaptarte al crecimiento futuro y a las necesidades cambiantes de la infraestructura.

  • Itera y define mejor los modelos de aplicación: Revisa y ajusta periódicamente las definiciones de tus aplicaciones para reflejar los cambios en la estructura de tu organización, las prioridades comerciales y la arquitectura técnica. Cloud Hub proporciona vistas centralizadas de las actualizaciones disponibles para las aplicaciones implementadas desde las plantillas del Centro de diseño de aplicaciones, lo que te ayuda a revisar y ajustar las definiciones de tus aplicaciones para reflejar estas necesidades en evolución.

Recomendaciones de modelos de datos

Si comprendes cómo modelar tus sistemas del mundo real como aplicaciones, servicios y cargas de trabajo dentro del marco de App Hub, podrás usar de manera eficaz las capacidades de administración de aplicaciones en tu entorno de Google Cloud.

A medida que defines tus aplicaciones, es importante aplicar los principios básicos de la administración de aplicaciones, como usar atributos para establecer la propiedad y los metadatos de forma clara.

Para modelar los componentes de tu aplicación teniendo en cuenta este framework, considera los siguientes ejemplos de casos de uso recomendados.

Ejemplo: Aplicación basada en microservicios

Un sistema de comercio electrónico, como el que se describe en la demostración de OpenTelemetry para una tienda en línea, es un ejemplo de una aplicación basada en microservicios. Recomendamos modelar este tipo de sistema como una sola aplicación. Este enfoque proporciona una vista unificada de toda la función comercial, desde el descubrimiento de productos hasta la confirmación de compra. Por ejemplo, considera el siguiente modelo para los recursos existentes que se ejecutan en Google Cloud:

  • Aplicación: Crea o define una sola aplicación en App Hub llamada, por ejemplo, my-ecommerce-site. Esta aplicación representa toda la tienda en línea como una sola unidad administrable. Registra los siguientes recursos en la aplicación para crear una agrupación lógica de componentes que, en conjunto, proporcionen la función comercial de tu tienda en línea:

    • Microservicios como cargas de trabajo: Registra los microservicios individuales que componen el sistema de comercio electrónico, como Anuncio, Carrito y Confirmación de compra, como cargas de trabajo dentro de la aplicación. Estos son los recursos de procesamiento con el código binario que realizan una parte discreta de la lógica de negocios y se ejecutan como implementaciones de Google Kubernetes Engine (GKE).
    • Extremos de red como servicios: Registra los extremos de red de estos microservicios, como sus balanceadores de cargas, como servicios de la aplicación. Estos exponen la funcionalidad de la tienda en línea a los clientes.

Evita registrar cada microservicio como su propia aplicación. Ese enfoque fragmenta el contexto comercial y dificulta obtener una vista integral del estado y el rendimiento de tu tienda en línea.

Si agrupas todos los microservicios en una sola aplicación, obtendrás los siguientes beneficios:

  • Visibilidad integral: Puedes supervisar el estado y el rendimiento de todo el recorrido del usuario de comercio electrónico, desde la funcionalidad del anuncio hasta la funcionalidad de la confirmación de compra, en una sola vista unificada.
  • Contexto empresarial claro: La aplicación alinea la infraestructura con la función empresarial que presta, que es la tienda en línea. Este enfoque facilita la comprensión del estado y el costo de la aplicación.
  • Solución de problemas simplificada: Cuando surge un problema, puedes ver las dependencias entre los diferentes microservicios dentro de la aplicación, lo que acelera el análisis de la causa raíz.

Ejemplo: Aplicación web de tres niveles

Una aplicación web de tres niveles es un patrón de arquitectura que separa una aplicación en un nivel de frontend, un nivel de backend y un nivel de base de datos. En este caso de uso, se muestra cómo modelar una función comercial completa como una sola aplicación, en lugar de tratar cada nivel como un componente aislado.

En el siguiente modelo, se asignan 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 como contenedor lógico de todos los componentes que conforman tu aplicación web.

  • Servicios: Registra las interfaces de red que exponen la funcionalidad a otros niveles o a los usuarios como servicios, por ejemplo:

    • Es el balanceador de cargas de frontend que recibe el tráfico del usuario.
    • Es el balanceador de cargas interno que administra el tráfico entre el frontend y el backend.
    • Es 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 procesamiento que ejecutan el código de tu aplicación como cargas de trabajo, por ejemplo:

    • Son los grupos de instancias administrados (MIG) o las implementaciones de Google Kubernetes Engine que publican la interfaz de usuario del frontend.
    • Son las MIG o las implementaciones de Google Kubernetes Engine que ejecutan la lógica comercial del backend.

Si agrupas los tres niveles en una sola aplicación, obtendrás los siguientes beneficios:

  • Observabilidad unificada: Puedes supervisar el estado y el rendimiento de toda la aplicación desde un solo panel en Supervisión de aplicaciones, en lugar de tener que recopilar datos de tres aplicaciones separadas.
  • Propiedad clara: Puedes asignar propietarios de la empresa, desarrolladores y operadores a la aplicación my-web-app, lo que aclara la responsabilidad de toda la función comercial.
  • Administración simplificada: Puedes aplicar políticas y controles de acceso a nivel de my-web-app, lo que permite una administración coherente en todos los niveles.

Estrategias de diseño y administración de aplicaciones

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

Elige entre aplicaciones globales y regionales

La ubicación que elijas para una aplicación, ya sea global o regional, es una decisión fundamental que afecta el manejo de datos, la latencia y el cumplimiento:

  • Prioriza las aplicaciones regionales: Siempre que sea posible, define tus aplicaciones como regionales. Esta práctica proporciona beneficios, como la reducción de la latencia, el potencial ahorro de costos y la alineación con los requisitos de residencia de datos. Se recomiendan las aplicaciones regionales cuando todos los componentes de la aplicación residen en una sola Google Cloud región, lo que proporciona una compatibilidad inherente con las Google Cloud funciones específicas de la región y los dominios de falla. Para obtener orientación sobre cómo compilar sistemas con alta disponibilidad, consulta Crea sistemas con alta disponibilidad a través de la redundancia de recursos.
  • Usa las aplicaciones globales de forma estratégica: Opta por una aplicación global solo cuando los componentes de tu sistema deban distribuirse en varias regiones o involucren recursos Google Cloud globales, como un balanceador de cargas de aplicaciones externo global.
  • 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 componentes 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 entre las diferentes ubicaciones geográficas de implementación en App Hub, consulta Aplicaciones globales y regionales.

Separa los entornos en aplicaciones distintas

Para admitir el aislamiento en cuanto a seguridad, permisos y riesgo operativo, representa diferentes entornos de implementación, como el desarrollo, la etapa de pruebas y la producción, como aplicaciones distintas. Por ejemplo, podrías estructurar tus aplicaciones como my-app-dev, my-app-staging y my-app-prod.

La separación de los entornos en aplicaciones distintas ofrece límites precisos para el control de acceso, la aplicación de políticas y la supervisión. Además, usar de forma coherente los atributos, los detalles de configuración y la ubicación en los componentes de la aplicación mejora la visibilidad y refuerza la administración. Estos atributos proporcionan metadatos enriquecidos para el filtrado, la generación de informes y la aplicación de políticas. Por ejemplo, el atributo Environment proporciona detalles específicos y control de recursos para distintas políticas de entorno de implementación. Para obtener más información sobre este y otros atributos, consulta Propiedades y atributos.

Alinear los límites de administración de aplicaciones con las estructuras de los equipos

Representa tu estructura organizativa, específicamente los equipos responsables del desarrollo y la operación de la aplicación, dentro de tus límites de administración de aplicaciones.

Esta práctica simplifica la propiedad y la comunicación, ya que el modelo de aplicación refleja el marco de trabajo que usa tu empresa para definir cómo se dividen, agrupan y coordinan las tareas para lograr sus funciones.

Sigue el ciclo de vida de la aplicación

Integra App Hub con Application Design Center para obtener una experiencia fluida del ciclo de vida de la aplicación:

  • Tienes recursos preexistentes para registrar en una aplicación: Usa App Hub para registrar tus recursos Google Cloud existentes como servicios o cargas de trabajo en las aplicaciones. Esta práctica proporciona visibilidad unificada y control operativo sobre tu infraestructura actual de forma rápida. De manera opcional, puedes crear una plantilla en App Design Center a partir de una aplicación en ejecución para estandarizar la arquitectura de implementaciones futuras.
  • No tienes recursos preexistentes para registrar en una aplicación: Usa el Centro de diseño de aplicaciones para diseñar y, luego, implementar aplicaciones nuevas a partir de plantillas reutilizables y controladas. Cuando implementas una aplicación desde una plantilla de Application Design Center, los componentes se registran automáticamente en App Hub para que el modelo de tu aplicación refleje con precisión el diseño previsto. El Centro de diseño de aplicaciones también te ayuda a administrar actualizaciones coherentes de la aplicación según las revisiones de la plantilla. Si actualizas la plantilla, puedes volver a implementar la aplicación para propagar los cambios, lo que admite la coherencia y la gobernanza.

Consideraciones sobre la jerarquía de recursos

Tu jerarquía de recursos en Google Cloud es la base para la administración práctica de aplicaciones. Introduces una capa de administración de aplicaciones sobre esa jerarquía a través de la configuración de un proyecto de administración para definir el límite de administración de tu aplicación. Para obtener una descripción general de cómo funcionan los diferentes productos en conjunto como parte de las soluciones de Google Cloud centradas en las aplicaciones, consulta Google Cloud centrado en las aplicaciones.

La planificación cuidadosa de la jerarquía de recursos Google Cloud para la administración de aplicaciones es fundamental 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 administración de tu aplicación determina fundamentalmente la gobernanza, la aplicación de políticas y el descubrimiento de recursos. Además, la asistencia para productos de Google Cloud centrada en la aplicación varía según cómo definas este límite de administración de aplicaciones.

Para definir el mejor límite de administración de aplicaciones para tu jerarquía de recursos y necesidades comerciales, y obtener información sobre la compatibilidad del producto con diferentes patrones de estructura de recursos, consulta Elige tu modelo de configuración de aplicaciones.

Perfeccionamiento 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 sigan alineadas con tus funciones comerciales, 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 e implementar cambios arquitectónicos, y administrar el ciclo de vida de tus aplicaciones a través de plantillas.