TFS 2012 TFS 2012 Team Build - Architektur und Installation: Architektur und Installation
By Tobias Richling and Michael Klei
()
About this ebook
Lösungen mit ein und erzeugt Kompilate verschiedenen Typs, zum Beispiel Clientapplikationen, Dienste und ein Setup. Im Zuge der Erstellung müssen
automatisierte Tests ausgeführt werden, die Änderungen seit dem letzten Build ermittelt und bei erfolgreicher Ausführung die fertigen Dateien für den Tester oder die Auslieferung bereitgelegt werden. Für verschiedene Codelinien wie Entwicklung, Main oder die Releases müssen verschiedentlich getaktete Builds definiert werden. In diesem shortcut werden ausgehend von einem Branch-Modell Build-Definitionen erzeugt. Zudem gibt es Erläuterungen zu privaten Builds, dem
Workflow, den Reaktionsmöglichkeiten auf Build-Ereignisse.
Read more from Tobias Richling
Bing Maps für Webentwickler Rating: 0 out of 5 stars0 ratingsTFS 2012 Jumpstart: Per Express zum Application Lifecycle Management Rating: 0 out of 5 stars0 ratings
Related to TFS 2012 TFS 2012 Team Build - Architektur und Installation
Titles in the series (100)
Einstieg in Google Go Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Strategie und Planung Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsSpring: Vier Perspektiven auf Framework und Ökosystem Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5JavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsBPM: Strategien und Anwendungsfälle Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsTitanium Mobile: Multi Platform Apps mit JavaScript Rating: 0 out of 5 stars0 ratingsTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsjQuery Mobile - Basics: Basics Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsBig Data: Executive Briefing Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsJava EE 7: Ein Ausblick Rating: 0 out of 5 stars0 ratings
Related ebooks
Visual Studio Release Management Rating: 0 out of 5 stars0 ratingsTFS 2012 Überblick und Installation: Der Weg zum TFS Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 13 Rating: 0 out of 5 stars0 ratingsBlackBerry-10-Entwicklung mit der Momentics IDE Rating: 0 out of 5 stars0 ratingsCloud Computing Grundlagen: Technisch / rechtlich / wirtschaftlich und architekturell Rating: 0 out of 5 stars0 ratingsASP.NET Core: Eine Einführung Rating: 0 out of 5 stars0 ratingsPowerShell: Grundlagen für .NET-Entwickler Rating: 0 out of 5 stars0 ratingsXamarin für Android: Einführung in Android GUI und Hardware Rating: 0 out of 5 stars0 ratingsExtensions für TYPO3: So entwickeln Sie maßgeschneiderte TYPO3-Erweiterungen Rating: 0 out of 5 stars0 ratingsDocker: Webseiten mittels Containerarchitektur erstellen Rating: 3 out of 5 stars3/5Kompakteinstieg: Continuous Integration mit Jenkins Rating: 0 out of 5 stars0 ratingsAgiliät und Continuous Delivery Rating: 0 out of 5 stars0 ratingsLogging: Schnelleinstieg Rating: 0 out of 5 stars0 ratingsSoftwarequalität in PHP-Prozessen: Installation und Betrieb eines Jenkins-Servers Rating: 0 out of 5 stars0 ratingsJavaFX Rendering & 3D Rating: 0 out of 5 stars0 ratingsDer Microsoft 365 Trainer Microsoft 365 Certified- Enterprise Administrator Expert: Vorbereitung zur Prüfung MS-101 Rating: 0 out of 5 stars0 ratingsSoftware Development Trends: Wegweisende Beiträge für eine neue IT: Wegweisende Beiträge für eine neue IT Rating: 0 out of 5 stars0 ratingsDocker und die Containerwelt: Einstieg und Expertentipps rund um Docker-Container Rating: 1 out of 5 stars1/5Administrator Praxis - Kleine Windows Netzwerke Rating: 0 out of 5 stars0 ratingsTroubleshooting und Monitoring von Exchange und Office 365 Rating: 0 out of 5 stars0 ratingsAufsetzen, Testen und Betrieb einer Android-App Rating: 0 out of 5 stars0 ratingsExpertentipps zu Angular: Neuerungen in Angular 6, Umgang mit Microservices, Performanz und UX-Design Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 16 Rating: 0 out of 5 stars0 ratingsDas Contao-Praxisbuch: Alle Schritte für die eigene Website: Installation, Konfiguration, Erweiterungen, Templates und Rechtesystem Rating: 0 out of 5 stars0 ratingsWebentwicklung mit dem Play Framework Rating: 0 out of 5 stars0 ratingsAutomatisiertes Testen: Testautomatisierung mit Geb und ScalaTest Rating: 0 out of 5 stars0 ratingsNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Rating: 0 out of 5 stars0 ratings
Information Technology For You
Kompaktes Managementwissen: Die Grunstruktur agiler Prozesse Rating: 0 out of 5 stars0 ratingsAgiles Requirements Engineering und Testen Rating: 0 out of 5 stars0 ratingsBusiness-Intelligence-Lösungen für Unternehmen Rating: 0 out of 5 stars0 ratingsKnigge für Softwarearchitekten. Reloaded Rating: 0 out of 5 stars0 ratingsAndroid-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Rating: 0 out of 5 stars0 ratingsBlockchain: Praktische Anwendungen, Praktisches Verständnis Rating: 0 out of 5 stars0 ratingsEinplatinencomputer - ein Überblick Rating: 0 out of 5 stars0 ratingsErfolgreich bewerben in der IT - die besten Praxistipps von A wie (Anschreiben) bis Z (wie Zeugnis) Rating: 0 out of 5 stars0 ratingsZertifizierung für Softwarearchitekten: Ihr Weg zur iSAQB-CPSA-F-Prüfung Rating: 0 out of 5 stars0 ratings
Reviews for TFS 2012 TFS 2012 Team Build - Architektur und Installation
0 ratings0 reviews
Book preview
TFS 2012 TFS 2012 Team Build - Architektur und Installation - Tobias Richling
Tobias Richling, Michael Klei
TFS 2012 Team Build
Architektur und Installation
ISBN: 978-3-86802-474-6
© 2013 entwickler.press
Ein Imprint der Software & Support Media GmbH
1 Einleitung
Eine Software zu erstellen, geht weit über das Kompilieren im Visual Studio hinaus. Der Erstellungsprozess bezieht mehrere Lösungen mit ein und erzeugt Kompilate verschiedenen Typs, zum Beispiel Clientapplikationen, Dienste und ein Setup. Im Zuge der Erstellung müssen automatisierte Tests ausgeführt werden, die Änderungen seit dem letzten Build ermittelt und bei erfolgreicher Ausführung die fertigen Dateien für den Tester oder die Auslieferung bereitgelegt werden. Für verschiedene Codelinien wie Entwicklung, Main oder die Releases müssen verschiedentlich getaktete Builds definiert werden.
In diesem Kapitel
werden ausgehend von einem Branch-Modell Build-Definitionen erzeugt
werden private Builds erläutert
wird der dem Team Build zugrunde liegende Workflow erläutert
wird vorgestellt, wie man diesen Workflow mit eigenen Aktivitäten anpassen kann
wird demonstriert, wie man auf Build-Ereignisse reagieren kann
Voraussetzungen für dieses Kapitel:
eine vorhandene TFS-Installation
ein einfaches Branch-Modell
2 Grundlagen
2.1 Architektur
Der Team Build ist als Bestandteil des TFS natürlich in die Gesamtarchitektur eingebunden. Dementsprechend benötigt er einen TFS und dessen Datenbanken, um grundsätzlich zu funktionieren. Darüber hinaus gibt es zwei wesentliche logische Komponenten, die den Team Build ausmachen: der Build-Controller und der oder die Build-Agenten. Beide sind Bestandteile des Build Service.
Logische Architektur
Der Build Service ist die logische Einheit, die die Grundlage für Controller und Agenten darstellt. Der Build-Dienst muss auf jedem Rechner installiert sein, auf dem ein Controller und/oder ein Agent ausgeführt werden soll.
Der Build Controller nimmt alle Build-Anforderungen entgegen, legt die Ausführungsreihenfolge fest und startet die Ausführung der Builds. Auf einem physikalischen Rechner kann nur jeweils ein Build Controller installiert werden, der immer einer Teamprojektsammlung zugeordnet ist. Die Abarbeitung eines Build-Laufs beginnt auf dem Controller, auf dem Initialisierungsarbeiten erledigt werden. Die Hauptarbeit für die Durchführung der Builds delegiert der Controller an einen Build Agent. Die Arbeit des Build Controllers erfordert nicht viel CPU-Leistung, kann aber speicherintensiv sein – also lieber mehr Speicher als leistungsstarker Prozessor (Abbildung 2.1).
Abbildung 2.1: Logische Team-Build-Architektur
Der Build Agent führt die Hauptarbeit bei der Ausführung von Builds aus. Jeder Build Agent ist einem Build Controller zugeordnet, der für ihn verantwortlich ist um ihm die Ausführung eines konkreten Builds zuweist. Während es pro Teamprojektsammlung genau einen Build Controller geben kann, können mehrere Build Agents existieren. Jeder Build Agent kann zur gleichen Zeit nur einen Build ausführen. Wenn mehr Builds angefordert werden als Build Agents verfügbar sind, werden diese vom Controller in einer Warteschlange gesammelt. Sie können auf dem gleichen Rechner wie der Build Controller laufen, oder auf separaten Maschinen. Auf einem physikalischen Computer können auch mehrere Build Agents ausgeführt werden. Da der Build Agent die rechenzeitintensiven und datenlastigen Tätigkeiten im Team Build übernimmt, sollten nicht zu viele Agents auf einem Rechner laufen. Wenn man mit der Einrichtung einer Build-Umgebung beginnt, kann man mit einer kleinen Anzahl an Agents beginnen – für den Anfang tut es für gewöhnlich ein einziger. Später wird die Anzahl der durchzuführenden Builds eventuell steigen, dann kann man weitere Agents ins System bringen. Es ist auch möglich, Agents für spezielle Aufgaben einzurichten, zum Beispiel einen Agents, der nur nächtliche Builds durchführt, oder eine Gruppe von Agents, die nur Continuous Integration Builds durchführen. Zu diesem Zweck kann man Agents Tags zuweisen. Bei der Definition eines Builds können ebenfalls Tags angegeben werden. Der Build Controller versucht dann, einen freien Agent zu finden, der mit den angegebenen Tags übereinstimmt.
Physikalische Architektur
Es gibt verschiedene Möglichkeiten, die logischen Komponenten auf physikalische Computer zu verteilen. Alle gezeigten Ansätze gehen von einer Teamprojektsammlung aus, für jede weitere Sammlung wird jeweils ein weiterer Build Controller fällig, der auf einem eigenen Rechner laufen muss und somit wiederum mit jedem Architekturansatz kombiniert werden kann. Drei mögliche Architekturansätze sind in Abbildung 2.2 zusammengefasst.
Abbildung 2.2: Drei mögliche physikalische Team-Build-Architekturen
Die einfachste Topologie ist die, alle Komponenten auf einer Maschine zu installieren (in der Abbildung ganz links). Die Vorteile dieser Variante liegen auf der Hand: Sie ist einfach zu installieren und zu warten, und es fallen relativ geringe Hardwarekosten an. Für Einzelentwickler lässt sich dieses Setup auf dem Notebook einrichten und betreiben. Für kleine Teams reicht ein PC mit normaler Desktop-Hardware. Abhängig von der Anzahl der Builds, Teamprojekte und Entwickler kann man die Rechnerleistung langsam steigern. Wenn man leistungsfähige Server-Hardware einsetzt, kann man bis zu 15 Entwickler mit dieser Installation bedienen. Dieses Deployment läuft auch auf virtuellen Maschinen sehr gut.
Die erforderliche Rechenleistung hängt wesentlich von der Anzahl und dem Umfang der durchzuführenden Builds ab. Die Versionskontrolle hat relativ moderate Anforderungen, mit durchschnittlicher Hardware kann man auch größere Teams bedienen. Solange nur ein Build parallel ausgeführt werden muss, reicht auch ein einzelner Rechner aus. Es kann aber leicht zu einer Situation kommen, wo mehrere Builds parallel laufen sollen. Dies ist nur möglich, wenn auch mehrere Build Agents vorhanden sind. Und dann wird es auf einer Maschine schnell eng. In diesem Fall kann man das erste Szenario erweitern, indem man einen weiteren Rechner aufsetzt und dort weitere Build Agents installiert (in der Abbildung mittig). Es ist für durchschnittliche Deployments problemlos möglich, den Build Controller auf einem Rechner mit den übrigen TFS-Diensten laufen zu lassen und nur die Agents auf weitere Knoten zu verteilen. Natürlich kann der Build Controller auch auf einem separaten Rechner installiert werden.
Sollte auch dieser Umfang nicht mehr ausreichen, kann man auf die große Variante zurückgreifen