Principi fondamentali della progettazione del sistema

Last reviewed 2024-05-30 UTC

Questo documento nel Framework dell'architettura Google Cloud descrive i principi fondamentali della progettazione del sistema. La robusta progettazione del sistema sicuri, affidabili, scalabili e indipendenti. Consente di rendere iterative modifiche reversibili senza interrompere il sistema, minimizzare i rischi potenziali e per migliorare l'efficienza operativa.

Progetta per il cambiamento

Nessun sistema è statico. Le esigenze dei suoi utenti, gli obiettivi del team che crea e il sistema stesso è in continua evoluzione. Con la necessità di cambiare di sviluppare un percorso di produzione che consenta ai team di piccole modifiche e ricevere rapidamente un feedback al riguardo. Dimostrazione costante la possibilità di implementare le modifiche è un modo per instaurare un rapporto di fiducia con gli stakeholder, tra cui i team responsabili del sistema e gli utenti del sistema. Utilizzo Metriche di distribuzione del software di DORA possono aiutare il tuo team a monitorare la velocità, la facilità e la sicurezza delle modifiche al sistema.

Documenta l'architettura

Quando inizi a spostare i carichi di lavoro nel cloud o a creare le tue applicazioni, il principale ostacolo del successo è la mancanza di documentazione del sistema. Documentazione è particolarmente importante per visualizzare correttamente l'architettura deployment attuali.

Una documentazione di qualità non può essere ottenuta da un quantità di documentazione, ma contenuti chiari, utili e vengono mantenute man mano che il sistema cambia.

Un'architettura cloud opportunamente documentata stabilisce un linguaggio comune che consentono ai team interfunzionali di comunicare e collaborare in modo efficace. Fornisce inoltre le informazioni necessarie per identificare e per guidare le future decisioni di progettazione. La documentazione deve essere scritta insieme all'utente ai diversi casi, per fornire il contesto delle decisioni di progettazione.

Nel tempo, le decisioni inerenti alla progettazione si evolveranno e cambieranno. La cronologia delle modifiche fornisce il contesto richiesto ai team per allineare le iniziative, evitare duplicati e misurare le variazioni del rendimento in modo efficace nel corso del tempo. Log delle modifiche particolarmente utili quando si progetta un nuovo cloud architect che non è ancora hai familiarità con la progettazione, la strategia o la storia del tuo sistema.

Analisi di DORA ha trovato un chiaro collegamento tra qualità della documentazione e organizzazione le prestazioni, ovvero la capacità dell'organizzazione di raggiungere le proprie obiettivi di redditività.

Semplifica la progettazione e utilizza servizi completamente gestiti

La semplicità è fondamentale per la progettazione del sistema. Se la tua architettura è troppo complessa capire, sarebbe difficile implementare il design e gestirlo nel tempo. Ove possibile, utilizzare servizi completamente gestiti per ridurre al minimo i rischi, il tempo e impegno associati alla gestione e alla manutenzione dei sistemi di base.

Se esegui già i carichi di lavoro in produzione, esegui il test con per capire come possono aiutare a ridurre le complessità operative. Se devi sviluppare nuovi carichi di lavoro, quindi iniziare in modo semplice, stabilire un livello minimo di attività prodotto (MVP) e resistere al desiderio di esagerare. Puoi identificare casi d'uso eccezionali, iterare e migliorare i sistemi in modo incrementale nel tempo.

Disaccoppia l'architettura

Ricerca di DORA dimostra che l'architettura è un importante fattore predittivo per ottenere la distribuzione dei contenuti. Il disaccoppiamento è una tecnica utilizzata per separare le applicazioni e di servizio in componenti più piccoli che possono funzionare in modo indipendente. Ad esempio, potresti separare uno stack di applicazione monolitica in componenti del servizio. In un'architettura a basso accoppiamento, un'applicazione può eseguire e le sue funzioni in modo indipendente, indipendentemente dalle varie dipendenze.

Un'architettura disaccoppiata offre una maggiore flessibilità per:

  • Applica upgrade indipendenti.
  • Applicare controlli di sicurezza specifici.
  • Definire obiettivi di affidabilità per ogni sottosistema.
  • Monitora la salute.
  • Controllo granulare delle prestazioni e dei parametri di costo.

Puoi iniziare il disaccoppiamento all'inizio della fase di progettazione oppure incorporarlo come parte e l'upgrade del sistema man mano che scala.

Utilizza un'architettura stateless

Un'architettura stateless può aumentare l'affidabilità e la scalabilità le tue applicazioni.

Le applicazioni stateful si basano su varie dipendenze per l'esecuzione di attività, come memorizzati localmente nella cache. Le applicazioni stateful spesso richiedono meccanismi aggiuntivi per acquisire i progressi e riavviare senza problemi. le applicazioni stateless di eseguire attività senza dipendenze locali significative utilizzando lo spazio di archiviazione condiviso i servizi di machine learning. Un'architettura stateless consente un rapido scale up delle applicazioni con dipendenze di avvio minime. Le applicazioni sono in grado di sopportare riavvii forzati, hanno tempi di inattività ridotti e offrono prestazioni migliori per gli utenti finali.

La categoria Progettazione del sistema descrive i suggerimenti per rendere le tue applicazioni stateless o di utilizzare funzionalità cloud-native per migliorare l'acquisizione dello stato della macchina per le applicazioni stateful.

Passaggi successivi