Questa guida fornisce le best practice per progettare, definire e gestire le applicazioni App Hub in Google Cloud incentrato sulle applicazioni, utilizzando App Hub e App Design Center. Seguire queste pratiche è fondamentale per creare applicazioni operative, governabili ed efficienti in linea con i tuoi obiettivi aziendali.
Principi fondamentali della gestione delle applicazioni
Il rispetto dei seguenti principi fondamentali ti aiuta a massimizzare il valore che ottieni dalla gestione della tua infrastruttura Google Cloud in modo incentrato sulle applicazioni:
Definisci confini chiari:imposta il confine di gestione delle applicazioni in modo logico per le operazioni, il monitoraggio, la governance e la risoluzione dei problemi. Inoltre, le risorse all'interno di questo confine che utilizzi come componenti dell'applicazione dovrebbero idealmente condividere un ciclo di vita operativo o un valore aziendale congiunto per semplificare la gestione e ridurre il rischio.
Ai fini operativi, è importante comprendere la differenza tra un confine di gestione delle applicazioni e gli ambiti di osservabilità.
- Il confine di gestione delle applicazioni definisce la raccolta di progetti che contengono le risorse Google Cloud che puoi utilizzare per progettare, creare e gestire le applicazioni, come descritto in Concetti chiave.
- Gli ambiti di osservabilità in Google Cloud Observability ti consentono di visualizzare insieme i dati di telemetria di più progetti.
Gli ambiti di log, metriche e tracce devono includere dati degli stessi progetti inclusi nel limite di gestione delle applicazioni. Per ulteriori informazioni sugli ambiti di osservabilità, consulta Configura gli ambiti di osservabilità.
Rifletti sulle funzionalità aziendali: definisci le tue applicazioni in base alle funzioni aziendali o ai flussi di lavoro end-to-end, non solo ai livelli tecnici. Un'applicazione deve rappresentare un flusso di valore distinto per la tua attività.
Stabilisci una proprietà e metadati chiari:assegna attributi chiari a ogni applicazione per consentire ai team di trovarle, comprenderle e gestirle in modo efficace in App Hub. Questi attributi supportano la rilevabilità e la governance. La rilevabilità significa che i team pertinenti, come sviluppatori e operatori, possono trovare le applicazioni. La governance definisce chiaramente chi possiede e chi è responsabile di ogni applicazione.
In App Hub puoi definire attributi chiave come i seguenti:
- Ambiente:la fase del ciclo di vita dell'applicazione, ad esempio produzione, gestione temporanea, test o sviluppo. Questo attributo aiuta i team a filtrare e gestire i componenti in base alla fase di implementazione.
- Criticità:l'importanza dell'applicazione e dei suoi componenti per l'attività, ad esempio se sono mission critical. Questo attributo può fornire informazioni sulle priorità di monitoraggio e risposta agli incidenti.
- Proprietari: dati di contatto dei diversi team responsabili dell'applicazione, il che favorisce la responsabilità, semplifica la comunicazione e chiarisce le responsabilità.
Application Design Center supporta questi attributi e include anche i dettagli di posizione e configurazione per i componenti dell'applicazione. L'applicazione coerente di questi attributi e dettagli è fondamentale per la scoperta, la governance e la generazione di report.
Progettazione per l'evoluzione: Application Design Center ti aiuta a progettare per l'evoluzione consentendoti di creare modelli riutilizzabili per le tue applicazioni. Se aggiorni il modello sottostante, puoi applicare le modifiche eseguendo nuovamente il deployment delle applicazioni, il che ti aiuta a soddisfare la domanda, introdurre nuove funzionalità o apportare modifiche all'architettura, tenendo conto della crescita futura e dell'evoluzione delle esigenze dell'infrastruttura.
Esegui l'iterazione e perfeziona i modelli di applicazione: rivedi e modifica regolarmente le definizioni delle applicazioni per riflettere i cambiamenti nella struttura della tua organizzazione, nelle priorità aziendali e nell'architettura tecnica. Cloud Hub fornisce visualizzazioni centralizzate degli aggiornamenti disponibili per le applicazioni di cui è stato eseguito il deployment dai modelli di Application Design Center, aiutandoti a rivedere e modificare le definizioni delle applicazioni per riflettere queste esigenze in evoluzione.
Suggerimenti per il modello dati
Se comprendi come modellare i tuoi sistemi reali come applicazioni, servizi e carichi di lavoro all'interno del framework di App Hub, puoi utilizzare in modo efficace le funzionalità di gestione delle applicazioni nel tuo ambiente Google Cloud.
Quando definisci le tue applicazioni, è importante applicare i principi fondamentali della gestione delle applicazioni, ad esempio l'utilizzo degli attributi per stabilire una proprietà e dei metadati chiari.
Per modellare i componenti dell'applicazione tenendo presente questo framework, considera i seguenti esempi di casi d'uso consigliati.
Esempio: applicazione basata su microservizi
Un sistema di e-commerce, come quello descritto nella demo di OpenTelemetry per un negozio online, è un esempio di applicazione basata su microservizi. Ti consigliamo di modellare questo tipo di sistema come una singola applicazione. Questo approccio fornisce una visione unificata dell'intera funzione aziendale, dalla scoperta dei prodotti al pagamento. Ad esempio, considera il seguente modello per le risorse esistenti in esecuzione in Google Cloud:
Applicazione:crea o definisci una singola applicazione in App Hub denominata, ad esempio,
my-ecommerce-site. Questa applicazione rappresenta l'intero negozio online come un'unica unità gestibile. Registra le seguenti risorse nell'applicazione per creare un raggruppamento logico di componenti che forniscono congiuntamente la funzione aziendale del tuo negozio online:- Microservizi come carichi di lavoro:registra i singoli microservizi che compongono il sistema di e-commerce, come Ad, Cart e Checkout, come carichi di lavoro all'interno dell'applicazione. Queste sono le risorse di calcolo con il codice binario che eseguono una parte discreta della logica di business, in esecuzione come deployment Google Kubernetes Engine (GKE).
- Endpoint di rete come servizi:registra gli endpoint di rete per questi microservizi, ad esempio i relativi bilanciatori del carico, come servizi dell'applicazione. Questi espongono la funzionalità del negozio online ai clienti.
Evita di registrare ogni microservizio come applicazione separata. Questo approccio frammenta il contesto aziendale e rende difficile ottenere una visione completa dell'integrità e del rendimento del tuo negozio online.
Se raggruppi tutti i microservizi in una singola applicazione, ottieni i seguenti vantaggi:
- Visibilità completa:puoi monitorare l'integrità e il rendimento dell'intero percorso dell'utente di e-commerce, dalla funzionalità degli annunci a quella di pagamento, in un'unica visualizzazione unificata.
- Contesto aziendale chiaro: l'applicazione allinea l'infrastruttura alla funzione aziendale che serve, ovvero il negozio online. Questo approccio semplifica la comprensione dell'integrità e del costo dell'applicazione.
- Risoluzione dei problemi semplificata: quando si verifica un problema, puoi visualizzare le dipendenze tra i diversi microservizi all'interno dell'applicazione, accelerando l'analisi delle cause principali.
Esempio: applicazione web a tre livelli
Un'applicazione web a tre livelli è un pattern architetturale che separa un'applicazione in un livello frontend, un livello backend e un livello database. Questo caso d'uso mostra come modellare una funzione aziendale completa come una singola applicazione, anziché trattare ogni livello come un componente isolato.
Il seguente modello mappa i livelli tecnici in un'applicazione web a tre livelli:
Applicazione:crea una singola applicazione, ad esempio
my-web-app, che funga da contenitore logico per tutti i componenti che costituiscono la tua applicazione web.Servizi:registra le interfacce di rete che espongono funzionalità ad altri livelli o agli utenti come servizi, ad esempio:
- Il bilanciatore del carico frontend che riceve il traffico degli utenti.
- Il bilanciatore del carico interno che gestisce il traffico tra il frontend e il backend.
- L'istanza di database Cloud SQL o Spanner, che espone un servizio di dati al livello logico di backend.
Workload:registra le risorse di calcolo che eseguono il codice dell'applicazione come workload, ad esempio:
- I deployment di Managed Instance Groups (MIG) o Google Kubernetes Engine che servono l'interfaccia utente frontend.
- I deployment di MIG o Google Kubernetes Engine che eseguono la logica di business di backend.
Se raggruppi tutti e tre i livelli in un'unica applicazione, ottieni i seguenti vantaggi:
- Osservabilità unificata:puoi monitorare l'integrità e le prestazioni dell'intera applicazione da un'unica dashboard in Application Monitoring, anziché dover mettere insieme i dati di tre applicazioni separate.
- Proprietà chiara:puoi assegnare proprietari di attività, sviluppatori e operatori
all'applicazione
my-web-app, chiarendo la responsabilità dell'intera funzione aziendale. - Governance semplificata: puoi applicare policy e controlli dell'accesso a livello di
my-web-app, supportando una governance coerente in tutti i livelli.
Strategie di progettazione e governance delle applicazioni
Adotta le seguenti strategie per assicurarti che la configurazione di App Hub e Application Design Center sia scalabile, gestibile e in linea con le tue pratiche operative.
Scegliere tra applicazioni globali e regionali
La località che scegli per un'applicazione, globale o regionale, è una decisione fondamentale che influisce su gestione dei dati, latenza e conformità:
- Dai la priorità alle applicazioni regionali:quando possibile, definisci le tue applicazioni come regionali. Questa pratica offre vantaggi come la riduzione della latenza, potenziali risparmi sui costi e l'allineamento ai requisiti di residenza dei dati. Le applicazioni regionali sono consigliate quando tutti i componenti dell'applicazione si trovano all'interno di una singola regione Google Cloud , fornendo una compatibilità intrinseca con le funzionalità Google Cloud e i domini di errore specifici della regione. Per indicazioni sulla creazione di sistemi a disponibilità elevata, consulta Creare sistemi a disponibilità elevata tramite la ridondanza delle risorse.
- Utilizza le applicazioni globali in modo strategico:scegli un'applicazione globale solo quando i componenti del sistema sono necessariamente distribuiti in più regioni o coinvolgono risorse Google Cloud globali, come un bilanciatore del carico delle applicazioni esterno globale.
- 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 i componenti all'interno di ogni regione. Questa pratica massimizza i vantaggi della regionalizzazione per ogni deployment.
Per un confronto dettagliato tra le diverse aree geografiche di deployment in App Hub, vedi Applicazioni globali e regionali.
Separare gli ambienti in applicazioni distinte
Per supportare l'isolamento per la sicurezza, le autorizzazioni e il rischio operativo, rappresenta
diversi ambienti di deployment, come sviluppo, gestione temporanea e produzione,
come applicazioni distinte. Ad esempio, potresti strutturare le applicazioni come
my-app-dev, my-app-staging e my-app-prod.
La separazione degli ambienti in applicazioni distinte offre limiti precisi per
controllo dell'accesso'accesso, l'applicazione dei criteri e il monitoraggio. Inoltre, l'utilizzo coerente
di attributi, dettagli di configurazione e posizione nei componenti
dell'applicazione migliora la rilevabilità e rafforza la governance. Questi attributi
forniscono metadati avanzati per il filtraggio, la generazione di report e l'applicazione delle norme. Ad esempio, l'attributo Environment fornisce dettagli granulari e controllo specifico delle risorse per criteri di ambiente di deployment distinti. Per ulteriori
informazioni su questo e altri attributi, consulta
Proprietà e attributi.
Allineare i limiti di gestione delle applicazioni alle strutture dei team
Rappresenta la tua struttura organizzativa, in particolare i team responsabili dello sviluppo e del funzionamento delle applicazioni, all'interno dei confini della gestione delle applicazioni.
Questa pratica semplifica la proprietà e la comunicazione perché il modello di applicazione rispecchia il framework utilizzato dalla tua attività per definire come le attività vengono suddivise, raggruppate e coordinate per svolgere le sue funzioni.
Segui il ciclo di vita dell'applicazione
Integra App Hub con App Design Center per un'esperienza di ciclo di vita dell'applicazione senza interruzioni:
- Hai risorse preesistenti da registrare in un'applicazione:utilizza App Hub per registrare le tue risorse Google Cloud esistenti come servizi o workload nelle applicazioni. Questa pratica fornisce rapidamente visibilità e controllo operativo unificati sull'infrastruttura attuale. Se vuoi, puoi creare un modello in Application Design Center da un'applicazione in esecuzione per standardizzare l'architettura per i deployment futuri.
- Non hai risorse preesistenti da registrare in un'applicazione:utilizza Application Design Center per progettare e implementare nuove applicazioni da modelli riutilizzabili e controllati. Quando esegui il deployment di un'applicazione da un modello di Application Design Center, i componenti vengono registrati automaticamente in App Hub, in modo che il modello di applicazione rifletta con precisione il design previsto. Application Design Center ti aiuta anche a gestire aggiornamenti coerenti delle applicazioni in base alle revisioni dei modelli. Se aggiorni il modello, puoi eseguire nuovamente il deployment dell'applicazione per propagare le modifiche, garantendo coerenza e governance.
Considerazioni sulla gerarchia delle risorse
La gerarchia delle risorse in Google Cloud è la base per la gestione pratica delle applicazioni. Introduci un livello di gestione delle applicazioni sopra questa gerarchia tramite la configurazione di un progetto di gestione per definire il limite di gestione delle applicazioni. Per una panoramica di come i diversi prodotti funzionano insieme nell'ambito delle soluzioni Google Cloud incentrate sulle applicazioni, consulta Google Cloud incentrato sulle applicazioni.
Una pianificazione accurata della gerarchia delle risorse per la gestione delle applicazioni è essenziale per stabilire raggruppamenti logici. Google Cloud La scelta di un singolo progetto, una cartella o un insieme di progetti per definire il limite di gestione delle applicazioni modella fondamentalmente la governance, l'applicazione delle policy e l'individuazione delle risorse. Inoltre, l'assistenza per i prodotti Google Cloud incentrati sulle applicazioni varia a seconda di come definisci questo limite di gestione delle applicazioni.
Per definire il limite di gestione delle applicazioni migliore per la gerarchia delle risorse e le esigenze aziendali e scoprire l'assistenza per i prodotti per diversi pattern di struttura delle risorse, consulta Scegliere il modello di configurazione dell'applicazione.
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 tue funzioni aziendali, 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. Utilizza Application Design Center per modellare ed eseguire il deployment delle modifiche all'architettura e gestire il ciclo di vita delle applicazioni tramite i modelli.