Google Cloud incentrato sulle applicazioni ti consente di creare e gestire le applicazioni in modo coerente in Google Cloud. Seguire le best practice per la progettazione e la gestione delle applicazioni in App Hub e App Design Center ti aiuta a creare applicazioni operative, gestibili ed efficienti in linea con i tuoi scopi commerciali.
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 i rischi.
Ai fini operativi, è importante comprendere la differenza tra un confine di gestione delle applicazioni e gli scope 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 scope di osservabilità in Google Cloud Observability ti consentono di visualizzare la telemetria di più progetti contemporaneamente.
Gli ambiti di log, metriche e tracce devono includere i dati degli stessi progetti inclusi nel confine di gestione delle applicazioni. Per saperne di più sugli ambiti di osservabilità, consulta Configura gli ambiti di osservabilità.
Rifletti le funzionalità aziendali: definisci le tue applicazioni in base alle funzioni aziendali o ai workflow end-to-end, non solo ai livelli tecnici. Un'applicazione deve rappresentare un flusso di valore distinto per la tua attività.
Stabilisci 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 è il proprietario e il 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 deployment.
- Criticità: l'importanza aziendale dell'applicazione e dei suoi componenti, ad esempio se sono fondamentali per l'attività. Questo attributo può fornire informazioni sulle priorità di monitoraggio e risposta agli incidenti.
- Proprietari: dati di contatto dei diversi team responsabili dell'applicazione, per promuovere la responsabilità, semplificare la comunicazione e chiarire le responsabilità.
Application Design Center supporta questi attributi e include anche i dettagli di posizione e configurazione dei 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 template riutilizzabili per le tue applicazioni. Se aggiorni il template sottostante, puoi applicare le modifiche rifacendo il deployment delle applicazioni, il che ti aiuta a soddisfare la domanda, introdurre nuove funzionalità o apportare modifiche all'architettura, assecondando la crescita futura e le esigenze di evoluzione 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, nelle priorità aziendali e nell'architettura tecnica della tua organizzazione. Cloud Hub fornisce viste centralizzate degli aggiornamenti disponibili per le applicazioni di cui è stato eseguito il deployment dai template di Application Design Center, aiutandoti a rivedere e modificare le definizioni delle applicazioni in modo che riflettano queste esigenze in evoluzione.
Suggerimenti per il modello dei dati
Se comprendi come modellare i tuoi sistemi reali come applicazioni, servizi e workload 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 di attributi per stabilire proprietà e 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 un'unica applicazione. Questo approccio fornisce una visualizzazione unificata dell'intera funzione aziendale, dalla scoperta del prodotto 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 gruppo logico di componenti che, insieme, forniscono la funzione aziendale del tuo negozio online:- Microservizi come workload: registra i singoli microservizi che compongono il sistema di e-commerce, come Ad, Cart e Checkout, come workload all'interno dell'applicazione. Si tratta delle risorse di computing con il codice binario che eseguono una parte distinta della logica di business, eseguite come deployment di 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. Queste espongono la funzionalità del negozio online ai clienti.
Evita di registrare ogni microservizio come applicazione a sé stante. Questo approccio frammenta il contesto aziendale e rende difficile ottenere una visione completa dello stato e del rendimento del tuo negozio online.
Raggruppando tutti i microservizi in un'unica applicazione, ottieni i seguenti vantaggi:
- Visibilità completa: puoi monitorare l'integrità e le prestazioni dell'intero percorso dell'utente di e-commerce, dalla funzionalità degli annunci a quella del 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 dello stato e del costo dell'applicazione.
- Risoluzione dei problemi semplificata: quando si verifica un problema, puoi vedere le dipendenze tra i diversi microservizi all'interno dell'applicazione, accelerando l'analisi della causa principale.
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 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 container logico per tutti i componenti che compongono 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 di 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 dati al livello della logica di backend.
Workload: registra le risorse di computing che eseguono il codice della tua applicazione come workload, ad esempio:
- I gruppi di istanze gestite (MIG) o i deployment di Google Kubernetes Engine che gestiscono l'interfaccia utente del frontend.
- I MIG o i deployment Google Kubernetes Engine che eseguono la logica di business del backend.
Raggruppando 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 una singola dashboard in Application Monitoring, anziché dover mettere insieme i dati di tre applicazioni separate.
- Proprietà chiara: puoi assegnare proprietari aziendali, sviluppatori e operatori all'applicazione
my-web-app, chiarendo la responsabilità dell'intera funzione aziendale. - Governance semplificata: puoi applicare policy e controlli degli accessi 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 allineata alle tue pratiche operative.
Scegli tra applicazioni globali e regionali
La scelta della località per un'applicazione, globale o regionale, è una decisione fondamentale che influisce sulla gestione dei dati, sulla latenza e sulla conformità:
- Dai la priorità alle applicazioni regionali: quando possibile, definisci le tue applicazioni come regionali. Questa pratica offre vantaggi come una latenza ridotta, potenziali risparmi sui costi e l'allineamento ai requisiti di residenza dei dati. Le applicazioni a livello di regione sono consigliate quando tutti i componenti dell'applicazione risiedono all'interno di un'unica regione Google Cloud , fornendo una compatibilità intrinseca con le funzionalità Google Cloud e i domini in errore specifici della regione. Per indicazioni sulla creazione di sistemi ad alta affidabilità, consulta Crea sistemi ad alta affidabilità tramite la ridondanza delle risorse.
- Utilizza le applicazioni globali in modo strategico: scegli un'applicazione globale solo quando i componenti del tuo sistema sono necessariamente distribuiti in più regioni o coinvolgono risorse Google Cloud globali, come un bilanciatore del carico delle applicazioni esterno globale.
- Scomponi i sistemi multiregionali: se hai risorse in più regioni che non formano un'unica funzione globale coesa, valuta la possibilità di definire applicazioni regionali separate per i componenti all'interno di ogni rispettiva 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, consulta Applicazioni globali e regionali.
Separa gli ambienti in applicazioni distinte
Per supportare l'isolamento per la sicurezza, le autorizzazioni e il rischio operativo, rappresenta i diversi ambienti di deployment, come sviluppo, gestione temporanea e produzione, come applicazioni distinte. Ad esempio, potresti strutturare le tue 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, l'applicazione delle policy e il monitoraggio. Inoltre, l'utilizzo coerente di attributi, dettagli di configurazione e posizione sui componenti dell'applicazione migliora la rilevabilità e applica la governance. Questi attributi forniscono metadati completi per l'applicazione di filtri, report e policy. Ad esempio, l'attributo Environment fornisce dettagli granulari e un controllo specifico per le risorse per criteri di ambiente di deployment distinti. Per ulteriori informazioni su questo e altri attributi, consulta Proprietà e attributi.
Allinea i confini 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 tuoi limiti di gestione delle applicazioni.
Questa pratica semplifica la proprietà e la comunicazione perché il modello dell'applicazione rispecchia il framework utilizzato dalla tua azienda per definire il modo in cui le attività vengono suddivise, raggruppate e coordinate per raggiungere le sue funzioni.
Segui il ciclo di vita dell'applicazione
Integra App Hub con App Design Center per un'esperienza di ciclo di vita delle applicazioni senza interruzioni:
- Hai risorse preesistenti da registrare in un'applicazione: utilizza App Hub per registrare le risorse Google Cloud esistenti come servizi o workload nelle applicazioni. Questa pratica offre rapidamente visibilità unificata e controllo operativo sulla tua infrastruttura attuale. Facoltativamente, in un secondo momento puoi creare un template 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 App Design Center per progettare ed eseguire il deployment di nuove applicazioni da modelli regolamentati e riutilizzabili. Quando esegui il deployment di un'applicazione da un template di Application Design Center, i componenti vengono registrati automaticamente in App Hub in modo che il modello dell'applicazione rifletta accuratamente il design previsto. Application Design Center ti aiuta anche a gestire aggiornamenti coerenti delle applicazioni in base alle revisioni dei template. Se aggiorni il template, puoi rifare il deployment dell'applicazione per propagare le modifiche, supportando la coerenza e la governance.
Considerazioni sulla gerarchia delle risorse
La gerarchia delle risorse in Google Cloud è la base per la gestione pratica delle applicazioni. Puoi introdurre un livello di gestione delle applicazioni sopra questa gerarchia tramite la configurazione di un progetto di gestione per definire il confine di gestione delle applicazioni. Per una panoramica di come i diversi prodotti interagiscono nell'ambito delle soluzioni Google Cloud incentrate sulle applicazioni, consulta Google Cloud incentrato sulle applicazioni.
Una pianificazione attenta della gerarchia delle risorse Google Cloud per la gestione delle applicazioni è essenziale per stabilire raggruppamenti logici. La scelta di un singolo progetto, di una cartella o di un insieme di progetti per definire il confine di gestione delle applicazioni determina fondamentalmente la governance, l'applicazione delle policy e il rilevamento delle risorse. Inoltre, l'assistenza per i prodotti Google Cloud incentrati sulle applicazioni varia a seconda di come definisci questo confine di gestione delle applicazioni.
Per definire il confine di gestione delle applicazioni migliore per la gerarchia delle risorse e le esigenze aziendali e per scoprire di più sul supporto dei prodotti per i diversi pattern di struttura delle risorse, consulta Scegli il modello di configurazione dell'applicazione.
Perfezionamento continuo
I design delle applicazioni non sono statici, ma in genere si evolvono nel tempo. Esamina e perfeziona regolarmente le tue applicazioni per assicurarti che continuino ad essere in linea con le tue funzioni aziendali, le strutture dei team e le architetture in evoluzione.
Ti consigliamo di utilizzare gli insight di Cloud Hub e Gemini Cloud Assist per identificare le opportunità di ottimizzazione e adattare le tue applicazioni di conseguenza. Utilizza Application Design Center per modellare ed eseguire il deployment delle modifiche all'architettura e gestire il ciclo di vita delle tue applicazioni tramite i template.