Ho una domanda per le persone che hanno implementato i microservizi nelle grandi aziende.
Ovviamente ci sono enormi quantità di benefici per i microservizi (comparativamente all'architettura dei monoliti).
Tuttavia, c'è una cosa che è problematica. È più difficile fare un lavoro sulle operazioni.
Nel caso del monolite. C'è un gruppo di ingegneri Ops che si assicurano che la produzione sia operativa. E la cosa più importante è che ci sono abbastanza persone da creare 24 ore su 24, 7 giorni su 7, sulla rotazione delle chiamate. Ad esempio, se si dispone di 15 operazioni, è possibile creare un programma in cui si dispone di un paio di persone (per ridondanza) su chiamata per una settimana e tutti saranno programmati solo una volta ogni due mesi.
Ora, diciamo che una società ha implementato i microservizi e ogni team è responsabile del proprio microservizio. Una squadra con 4-5 ingegneri avrà ancora bisogno di qualcuno su chiamata. E se provate ad avere la stessa coppia di persone a disposizione, saranno programmate una settimana l'altra (il che sarebbe abbastanza stressante).
D'altro canto, non è possibile centralizzare Ops con microservizi, perché ogni microservizio può avere stack tecnologici diversi, diversi modi di risoluzione dei problemi e monitoraggio. Quindi, il team centrale di Ops annegherà semplicemente nella quantità di informazioni per gestire tutti i microservizi.
Ho sentito un argomento secondo cui i microservizi saranno più stabili e facilmente gestibili. Credo che sia il caso. Tuttavia, anche l'aumento della stabilità non elimina la necessità di una persona di risolvere i problemi se il servizio scendeva alle 3 del mattino e l'attività dell'azienda dipende strongmente da esso.
Sono curioso. Come, viene gestito in grandi aziende?
Un altro suggerimento era che i microservizi dovevano usare lo stesso stack per consentire operazioni centralizzate. Idea interessante Tuttavia, ritengo che riduca un valore (non puoi scegliere le migliori tecnologie per i tuoi microservizi e devi usare il set standard).