Frage

Scheint, wie es so viele verschiedene Möglichkeiten gibt, von einem Build / Bereitstellung zu automatisieren, dass es schwierig wird, durch all die verschiedenen Szenarien zu analysieren, die Menschen in Tutorials im Internet unterstützen. Also wollte ich die Frage an das Stackoverflow Publikum präsentieren ... was der beste Weg wäre, ein automatisiertes Build und Deployment-System unter Verwendung der folgende Konfiguration einzurichten:

  • Visual Studio 2008
  • Web Application Project
  • CruiseControl.NET

Eines der ersten Dinge, habe ich versucht, war automatisch zu haben CCNET die Ausgabe zip und kopieren Sie sie auf dem Server, aber dann setzt voraus, dass manuelle Arbeit am Ziel entpacken. Allerdings, wenn wir versuchen, einzeln alle Dateien zu kopieren, dann könnte es möglicherweise eine lange Zeit in Anspruch nehmen, wenn es eine große Anwendung (Build-Server Leben außerhalb des Rechenzentrums in unserem Büro ... ich weiß).

Auch von besonderem Interesse ist, wie wir mehrere Umgebungen unterstützen würden, wie wir Entwickler haben, qa, uat, und dann natürlich prod.

MSDeploy scheint wirklich interessant, aber wenn ich die Literatur falsch bin Interpretation hilft nicht in dem Szenario von dem Ausgang eines Build-Server der Bereitstellung. Wenn überhaupt, scheint es, wie es bei der Bereitstellung eine Build in einer Build Farm nützlich sein wird ... aber auch für von einer Umgebung in einer anderen bereitstellen, müßte man manuell Konfigurationseinstellungen und Web-Service-URLs ändern, etc.

War es hilfreich?

Lösung

Ich war vor kurzem ein paar Tage arbeiten an Einsätzen in meinem Unternehmen zu automatisieren.

Wir verwenden eine Kombination aus CruiseControl-, NAnt, MSBuild Release-Version der App zu erzeugen. Dann wird ein separates Skript verwendet MSDeploy und XCopy zur Sicherung der Live-Website und übertragen Sie die neuen Dateien über.

Unsere Lösung wird in einer Antwort auf diese Frage Automate Deployment für Web-Anwendungen kurz beschrieben?

Andere Tipps

Sie interessieren könnten: MSDeploy . Hier ein Scott Hanselman Beitrag zu diesem Thema. Es ist nur als technische Vorschau zur Zeit (September 2008) zur Verfügung, aber lohnt sich gegen Ihre Anforderungen zu bewerten.

Es ist ein weiteres neues Build-Tool (eine sehr intelligente Wrapper) genannt NUBuild . Sein geringeres Gewicht, Open Source und extrem einfach zu installieren und bietet so gut wie keine Berührung Wartung. Ich mag dieses neue Instrument wirklich und wir haben es Standard-Tool für unseren kontinuierlichen Aufbau und Integrationsprozess unserer Projekte (wir über 75 Entwickler haben über 400 Projekte) gemacht. Probieren Sie es aus.

http://nubuild.codeplex.com/

  • Einfache Kommandozeilen-Schnittstelle
  • verwenden
  • Möglichkeit alle NET Framework zum Ziel Version d 1.1, 2.0, 3.0 und 3.5
  • Unterstützt XML-basierte Konfiguration
  • Unterstützt sowohl Projekt- und Datei Referenzen
  • Automatisch generiert das „complete bestellt Build-Liste“für einen bestimmten Projekt -. Keine Berührung Wartung
  • Möglichkeit zur Erkennung und Anzeige zirkuläre Abhängigkeiten
  • Führen Sie parallel Build - automatisch entscheidet, die die von Projekte in der generierten Build-Liste können unabhängig voneinander gebaut werden.
  • Möglichkeit Proxy-Baugruppen zu behandeln
  • Bietet visuellen Hinweis auf die Build Prozess z.B. zeigt „% abgeschlossen“, „Aktuelle Status“ etc.
  • Erzeugt detailliertes Ausführungsprotokoll sowohl in XML und Text-Format
  • Einfache Integration mit Cruise-Control.Net Dauer Integrationssystem
  • Kann benutzerdefinierte Logger wie XMLLogger verwenden wenn Targeting 2.0 + Version
  • Möglichkeit Fehlerprotokolle zu analysieren
  • Die Fähigkeit gebaut Baugruppen bereitstellen zu Benutzer angegebenen Speicherort
  • Die Fähigkeit, Quellcode zu synchronisieren mit Source-Control-System
  • Versionsmanagementfähigkeit

Haben Sie die Möglichkeit haben, Befehle remote ausführen? Die PsExec Dienstprogramm von Systinternals lassen würde eine Befehlszeile unzip Programm auf dem entfernten Rechner laufen. Wenn Sie ein Skript, das kopiert der Build als ZIP-Datei auf die Remote-Site, würden Sie nur eine weitere Zeile für den PsExec Anruf müssen die Dateien entpacken.

Ich hatte eine Zusammenhang Frage über einen ausfahrbaren Satz von Dateien aus einem automatisierten Build bekommen. Ich fand Web Deployment Projects (Links und für alle in der alten Frage) tat, was ich brauchte - sie sind ein VS und MSBuild Add-on

.

Dies ist ein weit verbreitetes Problem (und ich wünschte, ich es früher gelesen hatte) für alle Entwicklung, nicht nur ASP.NET. Als einer der Entwickler nutzt mein Team natürlich buildmaster intern für den gesamten Freigabeprozess und für die meisten Szenarien kostenlos es ist. Im Werkzeug sind wir bauen all Standard-CI ausführen können Artefakte erstellen und dann einen Automatisierungsprozess eingerichtet, um diese Artefakte zu einem der mehr als 40 Servern bereitstellen haben wir intern oder extern gehostet wird, abhängig von der spezifischen Anwendung oder Umgebung .

Da Sie speziell Einsatz auf verschiedene Testumgebungen erwähnt, ist dies ein wesentlicher Aspekt des Werkzeugs. Die Idee ist es, den Umwelt-Workflow (z Integration -> QA -> Produktion) zu modellieren, haben Sie bereits an Ort und Stelle und im Wesentlichen ein Build der ganzen Weg von der Quellcodeverwaltung zu Produktion fördern. Die meiste Zeit, es ist so einfach wie eine Bereitstellungsaktion hinzufügen, die ein Artefakt in die Umgebung, ein anderes Mal setzt kann es viel komplexer sein.

Sie auch beiläufig erwähnt Konfigurationsdatei Änderungen sind Teil des Einsatzes, die eine weitere integrierte Komponente zu buildmaster ist. Die Idee, die wir hatten, war das Werkzeug selbst als zentrale Drehscheibe für alle Konfigurationsdateien und Installationen zu verwenden, so dass die neuesten Änderungen sichergestellt werden automatisch mit einer einfachen „bereitstellen Konfigurationsdateien“ Aktion in Ihrem Bereitstellungsplan angewandt.

Eine Sache, die Sie nicht in Bezug auf diesen Prozess erwähnt haben die Datenbankbereitstellung Aspekt. Die meisten ASP.NET-Anwendungen erfordern eine zugehörige Datenbank, sonst könnten sie nur statische HTML-Dateien sein. Es ist entscheidend, dass das Datenbankschema an die entsprechenden Datenbankversion mit jedem Einsatz aktualisiert wird. Es ist nicht überraschend, ein Modul innerhalb buildmaster, dass dies auch für Sie übernimmt. Die Idee ist, DDL-DML-Skripte innerhalb des Werkzeugs selbst zu speichern, und durch Scripts Ausführen nur einmal pro-Umgebung gewährleistet, dass alle Ihrer Datenbanken in jeder Umgebung sind up-to-date als Builds sind durch sie im Einsatz. Andere Skripte (z Stored Procedures, Views, Trigger, etc.) sind im Wesentlichen Codedateien und daher gehören in der Quellcodeverwaltung. Dieser DROP-CREATE-KONFIG Typ Skripte jedes Mal läuft in den meisten Fällen mit einer einfachen Bereitstellungsaktion werden kann.

Ein weiteres Stück des Einsatz Puzzle, das die meisten Entwickler nicht darüber nachdenken, ist die Prozessautomatisierung. Viele Entwickler müssen Sign-offs führen oder zu ändern Antragsformulare, um füllen Sie manuell diese Prozesse auszuführen. Auch hier ist das alles als Teil des automatisierten Workflow-Setup innerhalb buildmaster verfügbar. Sie können Setup-Blocker, dass die Förderung nicht erlauben, die QA-Umgebung zu sagen, es sei denn, alle Unit-Tests bestanden haben, oder Block Aufstieg in der Staging-Umgebung, es sei denn jemand aus dem QA-Team den Build und alle Probleme in Ihrer Ausgabe genehmigt tracking tool aufgelöst werden / geschlossen für dass bestimmte Version.

Während ich weiß, ich weggelassen CC.NET aus der Antwort sind unsere Anwendungen alle erstellt und bereitgestellt durch so nicht wir buildmaster mehr benötigen, wenn wir die Artefakte von einem Ablageort genauso einfach Pickup jedoch könnten und implementieren sie in später Umgebungen.

Ich sehe, dass viele Menschen CC für ihre .NET-Projekte verwenden, aber warum nicht verwenden Jenkins, Sonarqube? Sie haben alles, was Sie brauchen. Ich Setup das alles in 3 Tagen. Ich habe einen Win 2008 Server R2, MSSQL, Jenkins, VIsual SVN und Sonarqube.

Es funktioniert alles super und u erhalten alle Metriken in Ihrem Projekt. Sonarqube verwendet Gallio, Gendarme, FXCop, StyleCop, NDepths und Partcover Ihre Messdaten zu erhalten und all dies ist ziemlich geradlinig, da Sonarqube dies ohne viel Konfiguration automatisch.

i posten som Bilder für u auch ein Gefühl dafür zu bekommen. Hier ist Jenkins Hexe Builds und Sonar-Metriken erhalten und ein anderer Auftrag für automatisch auf IIS bereitstellen

Und Sonarqube alle Metriken für mein Projekt. Dies ist ein einfacher MVC4 app, aber es funktioniert super!

Wenn Sie weitere Informationen möchten, kann ich genauer gesagt, aber ich glaube, Sie zumindest jenkins in Betracht ziehen sollten. Wenn CC-Suiten Sie besser, zumindest sah man sich gute Alternative, bevor Sie gewählt haben.

Das gesamte Setup verwendet MSBuild, zu bauen und die Anwendungen bereitstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top