Best practice per la progettazione di applicazioni

Questa guida fornisce le best practice per progettare e definire le applicazioni in App Hub. Una progettazione efficace delle applicazioni è fondamentale per sfruttare appieno i vantaggi di Google Cloud incentrato sulle applicazioni, che offre maggiore visibilità, governance ed efficienza operativa.

Principi fondamentali della progettazione di applicazioni

Il rispetto dei seguenti principi fondamentali ti aiuta a creare applicazioni robuste, gestibili e in linea con i tuoi obiettivi commerciali, massimizzando il valore che ottieni da App Hub:

  • Rifletti sulle funzionalità aziendali:definisci le applicazioni dell'App Hub in base alle funzioni aziendali o ai flussi di lavoro end-to-end, anziché solo ai livelli tecnici o ai singoli microservizi. Un'applicazione deve rappresentare un flusso di valore distinto per l'attività.

  • Determina una proprietà chiara:assegna proprietà e attributi chiari a ogni applicazione, supportando la rilevabilità e la governance. In particolare, l'aggiunta dei proprietari delle applicazioni promuove la responsabilità e semplifica la comunicazione.

  • Considera i confini delle applicazioni: definisci i confini più adatti per operazioni, monitoraggio e governance. Le risorse all'interno di un'applicazione devono idealmente condividere un ciclo di vita operativo e un dominio di impatto comuni per semplificare la gestione e ridurre il rischio operativo.

    Quando prendi in considerazione i limiti della tua applicazione per scopi operativi, è importante capire come Google Cloud Observability struttura la raccolta e la visualizzazione dei dati. Mentre App Hub si concentra sui limiti delle applicazioni, Google Cloud Observability utilizza gli ambiti per definire quali dati di telemetria sono visibili e analizzabili nei progetti. La configurazione di questi ambiti di osservabilità ha una relazione specifica con il progetto host o di gestione, che determina come puoi aggregare e visualizzare i dati di telemetria di progetti diversi. Per scoprire di più su come configurare questi elementi per una visualizzazione unificata, consulta Configurare gli ambiti di osservabilità.

  • Adattamento all'evoluzione: progetta le tue applicazioni in modo che si adattino a cambiamenti e crescita futuri nella tua architettura.

  • Perfezionamento iterativo: rivedi e modifica regolarmente le tue applicazioni per riflettere i cambiamenti nella struttura, nei team e nelle priorità aziendali della tua organizzazione.

Che cosa definire come applicazione

Comprendere cosa costituisce un'applicazione in App Hub è fondamentale per integrare in modo efficace le funzionalità di gestione delle applicazioni in Google Cloud. Un'applicazione raggruppa servizi e workload che insieme forniscono una specifica funzione aziendale. Per ulteriori informazioni sui concetti di base di applicazioni, servizi e workload in App Hub, consulta Concetti e modello di dati.

Per aiutarti a determinare il limite appropriato per le tue applicazioni App Hub, considera le seguenti domande chiave:

  • Quale valore per gli utenti o per l'attività offre questa raccolta di risorse?
  • Questi componenti condividono un ciclo di vita operativo comune?
  • Esiste una proprietà chiara e unificata per queste risorse?
  • Questo raggruppamento facilita il monitoraggio e la risoluzione dei problemi in modo efficace?

Esempio: architettura della demo di OpenTelemetry

L'architettura demo di OpenTelemetry rappresenta un sistema di e-commerce che include microservizi come Ad, Cart e Checkout. Per definire al meglio questa applicazione in App Hub, tieni presenti i seguenti consigli:

  • Modella l'intero sistema di e-commerce come un'unica applicazione App Hub, ad esempio my-ecommerce-site:

    • Le istanze di calcolo dei singoli microservizi, ad esempio i deployment di Google Kubernetes Engine (GKE), vengono mappate ai carichi di lavoro di App Hub.
    • Gli endpoint di rete, come le interfacce gRPC/HTTP con bilanciamento del carico, vengono mappati ai servizi di App Hub.
  • Evita di registrare ogni microservizio, ad esempio Annuncio, Carrello e Pagamento, come applicazione App Hub separata. Questo approccio frammenta il contesto aziendale.

Per ulteriori informazioni sulle risorse dell'infrastruttura supportate da App Hub come servizi e workload, consulta Risorse supportate da App Hub.

Strategie di progettazione

Utilizza le seguenti strategie di progettazione per assicurarti che la configurazione di App Hub sia scalabile, governabile e in linea con le tue pratiche operative.

Scegliere tra applicazioni globali e regionali

Quando progetti le applicazioni App Hub, una decisione fondamentale è se definirle come globali o regionali. Questa scelta influisce su quali risorse possono essere incluse, sulla gestione dei dati, sulla latenza, sui costi e sulla conformità:

  • Le applicazioni globali sono più adatte a servizi e carichi di lavoro che sono intrinsecamente distribuiti in più regioni Google Cloud o si basano su risorse globali come un bilanciatore del carico delle applicazioni globale.
  • Le applicazioni regionali sono consigliate quando tutti i componenti dell'applicazione si trovano all'interno di una singola regione Google Cloud . Questa pratica è in genere l'approccio migliore se la tua architettura lo consente.

Il seguente elenco di best practice può aiutarti a scegliere tra applicazioni globali e regionali:

  • Dai la priorità alle applicazioni regionali:se possibile, progetta le tue applicazioni come regionali per sfruttare vantaggi quali latenza ridotta, potenziali risparmi sui costi del traffico di rete tra regioni, allineamento ai requisiti di località dei dati e compatibilità intrinseca con le funzionalità e i domini di errore specifici per regione.Google Cloud
  • Utilizza le applicazioni globali in modo strategico: scegli le applicazioni globali solo quando i componenti del sistema sono necessariamente distribuiti in più regioni o coinvolgono servizi Google Cloud globali.
  • Decomponi i sistemi multiregionali: se hai risorse in più regioni che non formano una singola funzione globale coesa, valuta la possibilità di definire applicazioni regionali separate per le risorse all'interno di ogni regione. Questa pratica massimizza i vantaggi della regionalizzazione per ogni deployment.

Per un confronto dettagliato e un approfondimento delle implicazioni di questa scelta, vedi Applicazioni globali e regionali.

Definisci gli ambienti come applicazioni separate

Puoi rappresentare ambienti di deployment diversi come applicazioni App Hub distinte. Questo approccio fornisce un forte isolamento per la sicurezza, le autorizzazioni e il rischio operativo, impedendo impatti accidentali tra gli ambienti.

Ad esempio, potresti strutturare le tue applicazioni come my-app-dev, my-app-staging e my-app-prod per gli ambienti di sviluppo, gestione temporanea e produzione, rispettivamente.

Sebbene tu possa utilizzare l'attributo Environment all'interno di una singola applicazione per taggare le risorse, la separazione degli ambienti in applicazioni distinte offre limiti precisi per icontrollo dell'accessolo dell'accesso, l'applicazione delle policy e il monitoraggio. Devi comunque utilizzare l'attributo Environment in modo coerente nelle risorse all'interno di queste applicazioni specifiche per l'ambiente per fornire dettagli granulari e specificare ulteriormente i ruoli. Per saperne di più su questo e altri attributi, vedi Utilizzare gli attributi per la governance.

Allinearsi alle strutture dei team

Valuta la possibilità di allineare i confini delle applicazioni ai team responsabili del loro sviluppo e funzionamento. Questa pratica può semplificare la proprietà e la comunicazione perché il modello di applicazione in App Hub rispecchia la struttura della tua organizzazione.

Utilizzare gli attributi per la governance

Applica in modo coerente gli attributi a tutte le risorse dell'applicazione per migliorare la rilevabilità e applicare la governance. Questi attributi forniscono metadati avanzati per il filtraggio, la generazione di report e l'applicazione delle norme:

  • Criticità:aiuta a dare la priorità alle risorse per il monitoraggio e la risposta agli incidenti.
  • Ambiente:supporta il filtraggio e le norme specifiche per l'ambiente.
  • Proprietari: forniscono visibilità e responsabilità.

Stabilisci standard organizzativi per il tagging delle risorse con questi attributi. Per maggiori dettagli, vedi Rilevabilità e governance dell'assistenza.

Identificare i casi d'uso della gestione delle applicazioni

Integra App Hub con App Design Center per un'esperienza senza interruzioni del ciclo di vita dell'applicazione, dalla progettazione alle operazioni:

  • Hai risorse preesistenti da registrare come applicazione:registra le risorse esistenti dal tuo modello di configurazione a un'applicazione in App Hub per ottenere visibilità e controllo operativo unificati. Google Cloud
  • Non hai risorse preesistenti da registrare come applicazione: utilizza Application Design Center per progettare e implementare nuove applicazioni. Application Design Center registra automaticamente le risorse di cui è stato eseguito il deployment in App Hub, in modo che il modello rifletta accuratamente la progettazione prevista. App Design Center ti aiuta anche a gestire gli aggiornamenti delle applicazioni. Quando un modello di applicazione cambia, puoi aggiornare tutte le istanze basate sul modello, il che ti consente di assicurarti che gli aggiornamenti delle applicazioni siano coerenti.

Gerarchia delle risorse

La gerarchia delle risorse standard è costituita da risorse organizzazione, cartella e progetto.Google Cloud App Hub introduce un livello di gestione delle applicazioni sopra questa gerarchia tramite il concetto di cartelle abilitate alle app e progetti host, a seconda del modello di configurazione.

Comprendere in che modo il modello di configurazione scelto si inserisce nella gerarchia delle risorse Google Cloud esistente supporta una governance efficace, l'applicazione dei criteri e l'individuazione delle risorse. Esamina le strutture consigliate e pianifica la gerarchia delle risorse quando scegli il modello di configurazione per la gestione delle applicazioni.

Perfezionamento continuo

I progetti delle applicazioni non sono statici, ma in genere si evolvono nel tempo. Rivedi e perfeziona regolarmente le tue applicazioni per assicurarti che continuino a essere in linea con le esigenze della tua attività, le strutture dei team e le architetture in evoluzione.

Ti consigliamo di utilizzare gli approfondimenti di Cloud Hub e Gemini Cloud Assist per identificare le opportunità di ottimizzazione e adattare le applicazioni di conseguenza. Inoltre, puoi utilizzare Application Design Center per gestire il ciclo di vita delle tue applicazioni. La pagina Implementazioni in Cloud Hub mostra le applicazioni per cui sono disponibili aggiornamenti dal template di App Design Center su cui si basano, semplificando la procedura di aggiornamento.