Ho posto questa domanda su Stack Overflow e ho ricevuto un suggerimento di postarla qui per una migliore idoneità. Quindi, ecco la mia domanda:
Sono nuovo di DevOps, e ho una soluzione con Umbraco come CMS, Mobile App come front-end per il contenuto aggiunto in CMS e .Net MVC web API per connettere CMS con l'app mobile. Ho anche WebJob e Microsoft flusso per alcune attività di pianificazione.
Devo implementare DevOps per la mia multi tenant application, ecco il mio scenario:
La soluzione avrà un'applicazione master che servirà solo come elenco principale di funzionalità per l'amministrazione per abilitare le funzionalità durante la creazione di una nuova comunità. Più comunità con database separati, ogni comunità ha più funzionalità (Feature1, Feature2). Ci dovrebbe essere un modo per gli sviluppatori di integrare l'integrazione e di integrare le funzionalità indietro.
Dopo aver aggiunto la funzione a qualsiasi comunità, può avere le sue personalizzazioni in particolare. In alcuni scenari gli sviluppatori devono anche aggiungere queste modifiche al master o alle comunità di pari livello. Ho anche aggiunto l'immagine per una migliore comprensione.
Ho bisogno di aiuto per creare la strategia di ramificazione per la mia soluzione che soddisfi tutti i requisiti di cui sopra e riduca al minimo le probabilità di conflitti mentre uniamo i rami in tutte le direzioni. Ho sotto le opzioni nella mia mente.
- Dovrei considerare ciascuna caratteristica come un ramo separato? In caso affermativo, che ne pensi di gestire le modifiche specifiche della comunità eseguite in una singola comunità?
- Dovrei considerare ogni comunità come un ramo separato? In caso affermativo, come separare il codice funzione da unire al ramo della comunità?
- Dovrei considerare il codice condiviso tra tutte le comunità? In caso affermativo, quali sono le modifiche specifiche della comunità?
Tutto sarà pronto al volo una volta implementato (nella base di codice con Visual Studio 2017). Quale strategia dovrei fare? O c'è un approccio migliore di questi? Come posso risolvere i conflitti di fusione se generati dopo la distribuzione? Inoltre, in DevOps dovrei andare per Git o TFS?