Allgemein Für Administratoren Für Architekten Für Entwickler Für Projektleiter Für Tester News Produkte Publikationen
X
Boris Wehrle
Boris Wehrle ist Senior Software Consultant und zertifizierter Projektleiter bei der AIT.

Boris Wehrle

Ideen für die Verwendung des MSDN Azure Freikontingents: Bereitstellung eines Visual Studio Online Build-Servers

Mittwoch, 09. Juli 2014

Visual Studio Online (VSO) stellt bis auf wenige Ausnahmen (SharePoint Integration, Reporting, Template Anpassung, etc.) die gleichen Funktionen wie ein im lokalen Intranet installierter TFS zur Verfügung. Für MSDN Abonnenten ist dieser Dienst sogar im vollem Funktionsumfang kostenlos. Das Paket enthält neben der Quellcode- und Aufgabenverwaltung dabei unter anderem auch monatlich 60 Server-Minuten, die für Build-Prozesse genutzt werden können.

Die Freiminuten sind schnell verbraucht. Jede weiter Build-Minute wird mit 0,05 $ veranschlagt. Dies summiert sich sehr schnell. In einem kleinen Projekt mit 10 Builds pro Arbeitstagtag a 10 Minuten auf monatlich immerhin rund 60 €. Aus Continuous Integration, was quasi zu einem fortlaufenden Erstellen des Projekts auf dem Server führt, wird dann schnell ein Kostenfaktor. Visual Studio Online sieht die Erweiterbarkeit durch eigene Build -Server vor. Diese können lokal im Unternehmen oder auch unter Windows Azure gehostet werden.

Build Freiminuten

Für die meisten Build-Prozesse ist eine kleine virtuelle Maschine mit 1,7 GB RAM und einem Kern unter Windows Azure völlig ausreichend. Diese Konfiguration schlägt mit rund 50 € pro Monat im 24h-Betrieb zu buche. Theoretisch lassen sich über das Freikontingent damit pro Entwickler bis zu zwei Build-Server hosten. Endlose Build-Queues gehören damit endgültig der Vergangenheit an.

Die Einrichtung gestaltet sich dabei sehr einfach. Für die vollständige Einrichtung benötigt man in etwa eine Stunde.

Im ersten Schritt ist es sinnvoll eine Affinitätsgruppe im Windows Azure Management Portal anzulegen. Dies ermöglicht es, alle Build-Server sowie deren zugeordneten Blob-Speicher, in einem Rechenzentrum zu gruppieren. Ein Datenaustausch untereinander (z. B. beim Einsatz eines TFS-Proxies) sowie die Publizierung eines Cloud Dienstes geht durch die kurzen Wege dann schneller vonstatten.

Erstellung einer Affinitätsgruppe

Die Affinitätsgruppe wird einer Region zugeordnet. Visual Studio Online wird aktuell in Chicago (USA Mitte/Norden) gehostet. Eine Auswahl dieser Region ist in MSDN Accounts leider nicht möglich. Aus diesem Grund empfiehlt es sich die Region zu wählen in der später Cloud Dienste gehostet oder Daten abgelegt werden.

Erstellung einer Affinitätsgruppe

Im nächsten Schritt legt man ein Speicherkonto, an in dem das Image der virtuellen Maschine gespeichert wird.

Erstellung eines Speicherkontos

Dieses kann ebenfalls automatisch beim Erstellen der virtuellen Maschine erzeugt werden. Der manuelle Zwischenschritt ermöglicht die Vergabe eines sprechenden Namens. Dieser muss global eindeutig sein. Die Verwendung des Namens des Unternehmens als Präfix hat sich bewährt. Die zuvor erstellte Affinitätsgruppe wird zugewiesen. Eine lokal redundante Replikation der Daten ist für einen Build-Server völlig ausreichend und damit kostengünstig.

Erstellung eines Speicherkontos

Nun kann die eigentliche Build-Server Instanz erstellt werden.

Erstellung eines virtuellen Computers

Ein vorgefertigtes Template wird dabei aus aus einem Katalog ausgewählt.

Erstellung eines virtuellen Computers

Als Basis für einen Build-Server empfiehlt sich das Template Visual Studio Ultimate 2013 Update 2. In Abhängigkeit der zur Verfügung stehenden MSDN Lizenz entweder in der Ausprägung Professional, Premium oder Ultimate. Die entsprechende Visual Studio Version ist hier bereits vorinstalliert.

Werden für die Build-Prozesse noch ältere Visual Studio Versionen benötigt muss mit einem frischem Windows 7 oder Windows Server 2012 Template gestartet werden.

Erstellung eines virtuellen Computers

Der Name des Build-Servers muss wiederum global eindeutig sein. Der zu vergebende Nutzername und dessen Passwort werden für den späteren Aufbau einer Remote Desktop Verbindung benötigt. Da der Rechner aus dem gesamten Internet erreichbar ist, sollten hier sowohl für den Nutzernamen auch als das Passwort keine trivialen Begriffe verwendet werden.

Erstellung eines virtuellen Computers

Die erstellte Affinitätsgruppe und das Speicherkonto werden entsprechend zugewiesen.

Erstellung eines virtuellen Computers

Die Bereitstellung der virtuellen Maschine dauert in etwa 5 Minuten.

Erstellung eines virtuellen Computers

Danach kann durch einen Klick auf Verbinden eine Remote Desktop Verbindung aufgebaut werden.

Erstellung eines virtuellen Computers

Eine entsprechende RDP-Datei, die die Verbindungsinformation enthält, wird hierzu heruntergeladen und geöffnet.

Verbindung mit dem virtuellen Computer

Auf dem System ist ein Visual Studio 2013 bereits installiert. Ein Build-Server muss nun noch ergänzt werden. Hierzu ruft man auf dem Server die MSDN Subscription Seite auf und wählt am einfachsten den Visual Studio Team Foundation Server 2013 with Update 2 Web Installer aus.

Installation des Build Servers

Nach der Installation, welche in etwa 20 Minuten beansprucht, kann der Build-Server konfiguriert werden.

Installation des Build Servers

Hierzu wird im ersten Schritt die Verbindung zum Visual Studio Online Account hergestellt.

Installation des Build Servers

Ein Login mit einem dem VSO-Account zugeordneten administrativen Account ist hierfür erforderlich.

Installation des Build Servers

Entsprechend der vorhandenen Kerne im System wird eine Anzahl zu konfigurierender Build-Agents vorgeschlagen. Bei einer kleinen Windows Azure Instanz ist dies dementsprechend nur einer.

Installation des Build Servers

Das Konto mit dem der Build-Service auf das Visual Studio Online Konto später im Betrieb zugreifen wird (Account Service), wird automatisch abgerufen. Der Dienst selbst kann unter dem Lokalen System  Konto laufen.

Installation des Build Servers

Nach wenigen Sekunden ist der Build-Service eingerichtet.

Installation des Build Servers

Er steht direkt im Anschluss im Visual Studio in der Build -Definition zur Auswahl zur Verfügung.

Zuordnung des Build-Controllers

Bei Bedarf können nun auf dem Build-Server weitere benötigte Komponenten wie z.B. Style Cop oder Sandcastle installiert werden.

Weitere Build-Server lassen sich nach dem gleichen Schema ergänzen. Eine kleine Visual Studio Online Build-Farm kann damit quasi zum Nulltarif aufgebaut werden. Eine lohnenswerte Verwendung des MSDN Azure Freikontingents.

Verwandte Artikel:

Benötigen Sie Unterstützung bei der Software-Entwicklung und Architektur von .NET basierten Lösungen oder bei Einführung und Anpassung von Visual Studio / Microsoft Test Manager / Team Foundation Server?

Wir stehen Ihnen unter info(at)aitgmbh.de gerne zur Verfügung.

Tags: , , , ,

Hinterlasse eine Antwort