Qualche teoria:
L'obiettivo per il CD è di fornire modifiche all'ambiente di produzione con la massima velocità. Per fare con successo, tuttavia, la consegna delle funzionalità dovrebbe essere separata dall'attivazione della funzione. Un determinato ambiente deve essere in grado di supportare molte funzionalità non attive incompatibili. La compatibilità delle funzioni può quindi essere gestita al momento dell'attivazione.
L'obiettivo dei microservizi è quello di consentire una maggiore flessibilità in relazione alle dipendenze dei componenti e alla compatibilità delle chiamate tra i componenti. In un monolite, le dipendenze dei componenti devono essere soddisfatte a livello linguistico in modi molto limitati da qualcosa che assomiglia ad un compilatore. Con i microservizi, le dipendenze dei componenti e la compatibilità delle chiamate esistono solo a livello di dati, quindi è possibile utilizzare più lingue e possono essere utilizzate più strategie di evoluzione del modello di dati.
Con questo in mente:
Ovviamente nessuno è perfetto, ma in generale, avere delle dipendenze cross-repo che verranno mostrate nella pipeline è il tipo di abitudine al dolore con cui dovresti uscire e non continuare a soffrire.
Apporta solo modifiche additive ai componenti upstream, in modo che downstream non sia rotto e introduce nuovi componenti quando ciò non è possibile. Metti l'uso delle modifiche dietro i flag di funzionalità, in modo che possano essere distribuite separatamente dall'attivazione. Tieni traccia del grafico delle dipendenze delle funzioni, in modo che l'attivazione delle funzioni possa essere eseguita in sicurezza per gli utenti nell'ordine corretto.