Gli esempi in questa pagina mostrano alcuni scenari ipotetici che utilizzano parchi risorse che illustrare alcuni concetti e best practice delle nostre guide. Prima del giorno alla lettura di questa guida, dovresti avere familiarità con i concetti trattati in Introduzione flotte e Requisiti e best practice del parco risorse.
Esempio 1: parchi risorse con risorse di produzione, gestione temporanea e sviluppo
In questo primo esempio, sono presenti quattro cluster. Due cluster sono per la produzione
(in due regioni per la ridondanza), una per le fasi di gestione temporanea e test e l'ultima
una è per lo sviluppo. Tutti i cluster sono di proprietà e amministrati
a livello centrale, da parte di
un team della piattaforma. In questo semplice esempio, sono presenti due servizi:
frontend
e backend
. Tuttavia, scenari più complessi possono avere
e un numero maggiore di servizi e cluster.
Approccio 1: separare i parchi risorse per produzione, gestione temporanea e sviluppo
Un possibile approccio per sfruttare i parchi risorse è creare parchi risorse separati per risorse di produzione, gestione temporanea e sviluppo.
Per farlo, creiamo tre progetti host del parco risorse separati e uno dei due
risorse in questi progetti o, nel caso del nostro sviluppo on-premise,
registra il cluster nel progetto example-dev
. Non abbiamo dovuto
risolvere molti dei problemi di uguaglianza dello spazio dei nomi e uguaglianza dei servizi a causa
di dettaglio in questo esempio, ma ci siamo assicurati che i valori prod-east
e
prod-west
cluster sono stati ben normalizzati.
Il vantaggio di questo approccio è che abbiamo un forte isolamento tra ciascuna delle flotte. Lo svantaggio principale di questo approccio è che gestire tre flotte diverse, il che rende più difficile e coerenza tra produzione, gestione temporanea e sviluppo. Per i team di sviluppo, è anche più difficile svilupparlo rispetto ai servizi in fasi.
Approccio 2: un parco risorse per tutte le risorse
In questo approccio, creiamo un unico parco risorse per tutte le risorse.
Per farlo, possiamo lasciare le risorse nel progetto example
e creare
del parco risorse in quel progetto. Avremmo potuto separare la produzione dalla gestione temporanea
di risorse posizionandole in altri progetti host del parco risorse
VPC condiviso, ma abbiamo scelto di non farlo per semplicità
in questo esempio.
Con questo approccio, dobbiamo assicurarci che i nostri spazi dei nomi e servizi
normalizzati in tutto il parco risorse. Ad esempio, rinominiamo il nostro nome generico frontend
a frontend-prod
e frontend-staging
nei cluster di produzione e di gestione temporanea
rispettivamente. Infine, anche se potevamo mantenere i nomi originali dei nostri
di sviluppo, forniamo nomi più chiari (ad esempio frontend-dev-alice
)
indicano che si tratta di spazi dei nomi di sviluppo.
Con questo approccio, preferiamo preferire la facilità di gestione all'isolamento. Stiamo fare affidamento sull'autorizzazione del mesh di servizi per impedire comunicazione, ma possiamo facilmente amministrare il sistema nel suo insieme parco risorse. Questo accordo ci consente di applicare criteri a tutte le risorse, il che può darci la certezza che lo sviluppo sia molto simile e produzione.
Approccio 3: separa i parchi risorse per la produzione e per quelli non di produzione
In questo approccio, poniamo una via di mezzo che combina la gestione temporanea e risorse di sviluppo in un parco risorse non di produzione, mentre in un parco risorse separato.
Per farlo, creiamo due progetti host del parco risorse, uno per la produzione e uno per
non in produzione. Inoltre, inseriamo le nostre risorse direttamente in questi progetti,
il cluster dev
on-premise registrato nel parco risorse non di produzione. Me
devi normalizzare gli spazi dei nomi e i servizi tra
risorse di sviluppo per fare chiarezza; ad esempio, rinominiamo frontend
frontend-staging
nel cluster di gestione temporanea.
Il vantaggio in questo caso è che la produzione è ben isolata dalla non produzione. Per
Ad esempio, possiamo consentire ai servizi di sviluppo di comunicare con i servizi di gestione temporanea,
la frontend
di Alice può parlare con una backend
inscenata mentre
sviluppare il proprio servizio.
Riepilogo
Ciascuno degli approcci descritti nell'esempio 1 è valido. Quale le scelte dell'organizzazione dipendono dall'isolamento e dalla coerenza (e facilità di gestione); in altre parole, quanto isolamento è necessario tra diversi tipi di risorse rispetto alla coerenza necessaria tra di esse. Maggiore coerenza è più facile da ottenere con meno parchi risorse. Il terzo approccio è offerte come possibile compromesso, mantenendo la produzione completamente isolata mentre offrendo agli sviluppatori la possibilità di lavorare con servizi in fasi.
Esempio 2: parchi risorse con diversi proprietari di risorse
In questo esempio abbiamo due team, team-a e team-b. Questi team possiedono
amministrano i propri cluster ed entrambi hanno utilizzato gli spazi dei nomi frontend
e
backend
per i servizi che produce. Tuttavia, nessuna delle due
frontend
né backend
sono effettivamente uguali a quelli del team-b. I due team vogliono
creano un mesh di servizi in modo che i servizi possano interagire.
Senza un intervento, non è possibile rendere questi cluster parte del
la stessa rete mesh. Un buon punto di partenza è trasferire la proprietà dei cluster a un
un team della piattaforma centralizzata
per instaurare un rapporto di fiducia tra loro. In alternativa, se
team-a e team-b si fidano l'uno dell'altro, possono anche coordinarsi per formare questa fiducia.
Il passaggio successivo consiste nel normalizzare l'utilizzo dello spazio dei nomi in modo che frontend
e
I backend
non sono più sovraccarichi di questi due team cluster. Trascorso questo periodo,
possono creare un unico parco risorse su tutte le risorse e creare
il proprio mesh di servizi.
Se non è possibile stabilire questo livello di fiducia, i team-a e team-b devono formare due parchi risorse separati che utilizzano due progetti host diversi. Lo svantaggio con questo approccio è che ora devono sfruttare la federazione mesh, più difficili da amministrare rispetto a un singolo mesh. Il vantaggio è che nessuno dei team ha bisogno normalizzare gli spazi dei nomi e i servizi di cui è stato eseguito il deployment, limitando la possibilità sia possibile una comunicazione specificamente autorizzata.