0

Ich erstelle eine VSTS-Build-Pipeline für die fortlaufende Integration und Bereitstellung eines MVC-Webprojekts. Mein Kunde will 0 Ausfallzeit im Falle des Einsatzes weiter, so dass wir die Quelle Steuerungsstrategie betrachtet Umstrukturierung und spaltete die einzelnen Code-Repository folgende:Partielle Bereitstellung mithilfe von VSTS-Builds - Strategie für die Quellcodeverwaltung

Kernfunktionen

  1. Eigenschaft 1
  2. Merkmal 2 .. ...
  3. Eigenschaft n

Wir planen Funktionen als Kind Zweige der Kernfunktion zu halten, und legen Sie einzelne Build-Vorlagen für jede der branc h und Unterzweige. Das ideale Szenario besteht also darin, dass bei einer Änderung des Hauptfunktionszweigs der Build mit vollem Code (Zweig + Unterzweige) bereitgestellt werden sollte. Wenn jedoch nur ein Feature-Zweig geändert wird, wird die fortgesetzte Bereitstellung nur für diesen Zweig ausgeführt oder das Feature in der Branche.

So sind die Fragen, die eine Anleitung benötigen, sind: -

  • Ist die Idee der Funktion Verzweigung in Ordnung ist und kann auf die Produktion eingesetzt werden?
  • Die .Net MVC-Anwendung ist eine n-Tier-Anwendung mit Web Tier-, Service- und Repository-Tiers. Soll ich die Service- und Repository-Layer auch in die Core- und Feature-Zweige aufteilen, um sie zu trennen?
  • Wenn ich den Dienst und Repository aufgeteilt, wie sollte die Kommunikation zwischen den verschiedenen Funktionen passiert:

  • Via Service Aufruf zu bedienen? Wenn Feature 1 eine Funktion von Feature 2 erfordert, ruft der Service von Feature 1 den Service von Feature 2 auf und führt das Ergebnis zusammen, um es an die GUI von Feature 1 zu senden.

  • Feature 1 Repository ruft Feature 2 Repository auf, aber dieser Ansatz wird Abhängigkeit von Feature 1 auf Feature 2 bringen bedeutet, Feature 2 ist zum Zeitpunkt der Bereitstellung, Feature 1 ist auch Erfahrung Fehler.

  • Das Repository auf mehrere Features aufteilen ist eine gute Idee?

Dank

+0

Seien Sie sehr vorsichtig in Bezug auf Terminologie. Die Art und Weise, wie Sie den Begriff "Feature Branch" verwenden, ist in der Branche nicht üblich. Ein Feature-Zweig dient zum Isolieren der Entwicklung eines neuen Features, nicht zum Verwalten der langfristigen Entwicklung verschiedener Anwendungskomponenten. –

+0

@Daniel Mann, einverstanden mit Ihrem Kommentar. Aber die andere bekannte Terminologie, die ich kenne, ist der Submodul-Quellsteuerungsansatz, der vermutlich für die GIT-Quellsteuerung reserviert ist. Können Sie einen solchen Namen vorschlagen, der am besten zu dieser Frage passt? – Riky

Antwort

0

Splitting-Repository mehrere Funktionen ist in Ordnung, weil sie in anderen Anwendungen (zum Beispiel mobile app)

Ich empfehle verwendet werden könnte, dass Sie VSTS Packages feature oder andere Futtermittel 3. Paket betrachten kann. Der Workflow:

  1. Push-Änderungen an dem Server> Trigger CI Build> Packung und veröffentlicht Paket VSTS-Feed von NuGet task
  2. Installieren notwendige Pakete an das Web-Projekt mit und Codierung.
  3. Push-Änderungen von Web-Projekt auf Server> Trigger CI mit aktuellem installierten Paket erstellen (Sie Paket nicht aktualisieren) an das Web-Projekt
  4. -Update notwendig Paket für neue Funktion
  5. Push-Änderungen von Web-Projekt auf Server> Trigger CI Build
+0

Diese Antwort bezieht sich nicht auf die Frage, ich denke, Sie sollten die Frage noch einmal lesen. – Riky

+0

Zu viele Fragen in diesem Thread, aber sie beziehen sich auf separate Repository, mein Punkt verwendet Paketverwaltung und aktualisieren Sie das Paket, wenn das zugehörige Projekt mit neuen Features arbeiten muss. Was bist du verwirrt? Könnten Sie die Probe zur Verfügung stellen, um es zu erklären? –

+0

Wir verwenden bereits die Paketverwaltung mit Nuget-Feeds. Der Punkt hier ist, um Vorschläge zu erhalten, wie Dienste, Repositories und die Art und Weise, wie die Kommunikation zwischen den Diensten aufgeteilt werden soll, aufgeteilt werden sollten, um eine teilweise Bereitstellung unter Verwendung des fortgesetzten Bereitstellungsprozesses zu erreichen. Selbst wenn wir Repository als Pakete verwenden, würde das Ändern eines Pakets eine Ausfallzeit für all jene Dienste erfordern, auf die das Repository verwiesen wird. habe ich recht? – Riky

Verwandte Themen