Prácticas recomendadas para la administración de aplicaciones

Google Cloud centrado en las aplicaciones te permite crear y administrar aplicaciones de forma coherente en Google Cloud. Seguir las prácticas recomendadas para el diseño y la administración de aplicaciones en App Hub y Application Design Center te ayuda a crear aplicaciones operables, gobernables y eficientes que se alineen con tus objetivos comerciales.

Principios básicos de la administración de aplicaciones

Seguir los siguientes principios básicos te ayuda a maximizar el valor que obtienes de administrar tu infraestructura de 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 que sea 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 compartir un ciclo de vida operativo conjunto o un valor empresarial 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 permisos 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.

    Los permisos de registro, métricas y 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 Configura los permisos de observabilidad.

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

  • Establece una propiedad y metadatos claros: Asigna atributos claros a cada aplicación para permitir que los equipos las encuentren, comprendan y administren de manera eficaz en App Hub. Estos atributos admiten la visibilidad y la administración. La visibilidad significa que los equipos pertinentes, como los desarrolladores y los operadores, pueden encontrar aplicaciones. La gobernanza define con claridad quién es el propietario y el responsable de cada aplicación.

    En App Hub, puedes definir atributos clave como los siguientes:

    • Entorno: Es la etapa en el 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.
    • Importancia: La importancia empresarial de la aplicación y sus componentes, por ejemplo, si son esenciales. 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, 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 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ña para la evolución: App 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 de arquitectura, lo que se adapta al crecimiento futuro y a las necesidades de infraestructura en evolución.

  • Itera y define mejor los modelos de aplicaciones: Revisa y ajusta con regularidad las definiciones de tus aplicaciones para reflejar los cambios en la estructura, las prioridades empresariales y la arquitectura técnica de tu organización. Cloud Hub proporciona vistas centralizadas de las actualizaciones disponibles para las aplicaciones implementadas desde las plantillas de Application Design Center, 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 reales como aplicaciones, servicios y cargas de trabajo dentro del framework de App Hub, puedes usar de forma eficaz las capacidades de administración de aplicaciones en tu entorno de Google Cloud.

Cuando definas tus aplicaciones, es importante que apliques los principios básicos de la administración de aplicaciones, como el uso de atributos para establecer una propiedad y metadatos claros.

Para modelar los componentes de tu aplicación con este framework en mente, 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. Te recomendamos modelar este tipo de sistema como una sola aplicación. Este enfoque proporciona una vista unificada de toda la función empresarial, desde el descubrimiento de productos hasta la confirmación de la 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 con el nombre, 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 ofrezca de forma conjunta la función empresarial 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 empresarial, que 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. Estas 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 empresarial 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 de los anuncios hasta la funcionalidad de la confirmación de la compra, en una sola vista unificada.
  • Contexto empresarial claro: La aplicación alinea la infraestructura con la función empresarial a la que sirve, 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 empresarial 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:

    • El balanceador de cargas de frontend que recibe el tráfico de los usuarios.
    • El balanceador de cargas interno que administra 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 al nivel 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:

    • Los grupos de instancias administrados (MIG) o las implementaciones de Google Kubernetes Engine que entregan la interfaz de usuario de frontend.
    • Los MIG o las implementaciones de Google Kubernetes Engine que ejecutan la lógica empresarial 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 Application Monitoring, en lugar de tener que recopilar datos de tres aplicaciones independientes.
  • Propiedad clara: Puedes asignar propietarios de negocios, desarrolladores y operadores a la aplicación de my-web-app, lo que aclara la responsabilidad de toda la función empresarial.
  • Administración simplificada: Puedes aplicar políticas y controles de acceso a nivel de my-web-app, lo que admite 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 Application Design Center sea escalable, controlable 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 una latencia reducida, un posible ahorro de costos y la alineación con los requisitos de residencia de los datos. Se recomiendan las aplicaciones regionales cuando todos los componentes de la aplicación residen en una sola región de Google Cloud , lo que proporciona una compatibilidad inherente con las funciones y los dominios con fallas específicos de la región de Google Cloud . Para obtener orientación sobre cómo crear sistemas con alta disponibilidad, consulta Crea sistemas con alta disponibilidad a través de la redundancia de recursos.
  • Usa aplicaciones globales de forma estratégica: Opta por una aplicación global solo cuando los componentes de tu sistema se distribuyan necesariamente en varias regiones o involucren recursos globales de Google Cloud , como un balanceador de cargas de aplicaciones externo global.
  • Descompón sistemas multirregionales: Si tienes recursos en varias regiones que no forman una sola función global cohesiva, considera definir aplicaciones regionales independientes 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 de la seguridad, los permisos y el riesgo operativo, representa diferentes entornos de implementación, como desarrollo, etapa de pruebas y producción, como aplicaciones distintas. Por ejemplo, podrías 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 supervisión. Además, el uso coherente de atributos, detalles de configuración y ubicación en los componentes de la aplicación mejora la visibilidad y aplica la administración. Estos atributos proporcionan metadatos enriquecidos para el filtrado, los informes y la aplicación de políticas. Por ejemplo, el atributo Environment proporciona detalles detallados y control específico 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 la estructura de tu organización, específicamente los equipos responsables del desarrollo y la operación de las aplicaciones, dentro de los 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 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 las aplicaciones:

  • Tienes recursos preexistentes para registrar en una aplicación: Usa App Hub para registrar tus recursos de Google Cloud existentes como servicios o cargas de trabajo en aplicaciones. Esta práctica proporciona visibilidad unificada y control operativo sobre tu infraestructura actual con rapidez. De forma opcional, puedes crear una plantilla en App Design Center a partir de una aplicación en ejecución para estandarizar la arquitectura de las implementaciones futuras.
  • No tienes recursos preexistentes para registrar en una aplicación: Usa Application Design Center para diseñar e implementar aplicaciones nuevas a partir de plantillas reutilizables y gobernadas. Cuando implementas una aplicación desde una plantilla del Centro de diseño de aplicaciones, 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. Application Design Center también te ayuda a administrar actualizaciones de aplicaciones coherentes basadas en revisiones de plantillas. Si actualizas la plantilla, puedes volver a implementar la aplicación para propagar los cambios, lo que respalda la coherencia y la administración.

Consideraciones sobre la jerarquía de recursos

La jerarquía de recursos en Google Cloud es la base para la administración práctica de aplicaciones. Debes introducir 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 aplicaciones. Para obtener una descripción general de cómo funcionan juntos los diferentes productos como parte de las soluciones de Google Cloud centradas en las aplicaciones, consulta Google Cloud centrado en las aplicaciones.

La planificación cuidadosa de tu jerarquía de recursos de Google Cloud para la administración de aplicaciones es esencial 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 la aplicación determina fundamentalmente la administración, la aplicación de políticas y el descubrimiento de recursos. Además, la asistencia de productos de Google Cloud centrada en las aplicaciones 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 empresariales, y obtener información sobre la compatibilidad de productos con diferentes patrones de estructura de recursos, consulta Elige tu 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 define mejor tus aplicaciones con regularidad para asegurarte de que sigan alineadas con tus funciones empresariales, estructuras de equipo y arquitecturas cambiantes.

Te recomendamos usar las estadísticas de Cloud Hub y Gemini Cloud Assist para identificar oportunidades de optimización y adaptar tus aplicaciones según corresponda. Usa App Design Center para modelar e implementar cambios de arquitectura y administrar el ciclo de vida de tus aplicaciones a través de plantillas.