ALM mit Visual Studio Online

Werbung
ALM mit Visual Studio Online
Philip Gossweiler
Noser Engineering AG
Was ist Visual Studio Online?
 Visual Studio Online hiess bis November 2013 “Team Foundation Service”
 Kernstück von Visual Studio Online ist ein Cloud-basierter Team Foundation Server
 Hinzu kommen Services welche nur in der Cloud verfügbar sind
 Cloud-based Load Testing
 Web based code editor (“Monaco“)
 Deployment auf Windows Azure
 …
 http://www.visualstudio.com/
Commit-Build-Deploy-Test Cycle
Commit
Build
Deploy
Test
Team Foundation Server Architektur
Lab Management
Clients
Test Agent
Test Agent
Test Controller
Build Agent
Build Controller
Team Explorer
Team Explorer Everywhere
Test Manager
Client Object Model
Client Object Model
Client Object Model
Web Services
SQL Server Database Engine
Server Object Model
SQL Server Analysis Services
SQL Server Reporting Services
Server Application
SQL Server
Build Agent
Data Tier
Application Tier
Team Fountation Server
Team Fountation Build
SharePoint
Web Browser
Team Foundation Server Architektur
Windows Azure
Build Agent
Build Controller
Team Explorer
Team Explorer Everywhere
Test Manager
Client Object Model
Client Object Model
Client Object Model
Web Browser
Web Services
SQL Server Database Engine
Server Object Model
Server Application
SQL Server
Build Agent
Application Tier
Data Tier
Stand April 2014:
• 21 Application Tiers
• 16 Job Agents
• 175 Build/Load Test VMs
Visual Studio Online Account anlegen
Erfordert einen Microsoft
Account (ehemals “Windows
Live ID”)
Visual Studio Online Account anlegen
“Account URL“ dient als
Connection String zu
Visual Studio Online
(Kann später geändert
werden)
Team Project anlegen
Strukturierung von Team Projects
Alle Projekte die voneinander abhängen, sollten im selben Team Project untergebracht
werden…
 Applikationen und die Frameworks auf denen sie basieren
 Client / Server Applikationen
 …
 Team Project ≠ Project
… sofern die Projekt-Teams nach den gleichen / ähnlichen Prozessen arbeiten
 Team Project ≠ Team
Verbindung aufbauen
Verbindung aufbauen
Commit-Build-Deploy-Test Cycle
Commit
Build
Deploy
Test
Work Items
Work Items sind generische, von TFS zur Verfügung gestellte Objekte um Arbeitsabläufe
zu organisieren, nachverfolgbar zu machen und Fortschritt sichtbar zu machen
Microsoft definiert Work Items folgendermassen: ˮA work item is a database record
that Team Foundation uses to track the assignment and progress of workˮ
Welche Work Item Types zur Verfügung stehen, wird durch das bei der Erzeugung des
Team Projects verwendete Process Template bestimmt
Work Item Types
Alle Process Templates stellen spezifische Work Items zur Verfügung:
Test Case
Scrum
 Feature
 Product Backlog Item
 Task
 Impediment
 Test Case
 Bug
 ...
Bug
Feature
Product Backlog Item
Product Backlog Item
Task
Task
Product Backlog Item
Bug
Work Items

Jedes Work Item verhält sich gemäss einem
Vordefinierten Zustandsdiagramm

Je nach Zustand müssen andere Felder
zwingend ausgefüllt werden

Momentan können Work Item Types auf
Visual Studio Online nicht modifiziert
werden
Scrum 2.2 Task
Version Control
Was soll ich verwenden?
Team Foundation Version Control (TFVC) oder Git?
Team Foundation Version Control (TFVC)
Source Control Explorer
Team Explorer
Pending Changes
TFVC – Workspaces
Workspaces speichern die Zuordnung von Version Control Repository Folder und lokaler
Kopien dieser Folder
Es gibt zwei Typen von Workspaces:
Server Workspaces
 Die Information welche Versionen und Änderungen lokal vorhanden sind, ist auf dem
Server gespeichert  Offline arbeiten ist sehr umständlich
 Eignet sich wenn lokal mit grosser Anzahl Dateien gearbeitet wird
Local Workspaces
 Ein lokaler “$tf” Folder speichert die Information welche Versionen und Änderungen
lokal vorhanden sind
 Eignet sich wenn lokal weniger als 100’000 Dateien vorhanden sind
Version Control – Git
Git Integration
Änderungen im
Working Directory
Änderungen im lokalen Git
Repository welche noch nicht
in das Master Repository
übertragen wurden
Unterstützung für
Git Branches
Git Integration
Git
TFVC
TFVC oder Git?
•
•
Git
+
+
+
-
Beide sind in Team Foundation Server / Visual Studio integriert
Beide unterstützen Team Foundation Build und Verknüpfungen mit Work Items
Offline-Zugriff auf das ganze Repository
Unabhängig von Visual Studio
Verschiedenste Tools können via Git an Team Foundation Server angebunden werden
Aufwändig zu erlernen
TFVC
+ Durch das zentrale Repository können Dateien global gelockt werden
+ Gute Branch-Visualisierung
+ Einfacher zu erlernen als Git
- Repository eines Projekts kann nicht exportiert werden
http://msdn.microsoft.com/en-us/library/ms181368.aspx#tfvc_or_git_summary
Commit-Build-Deploy-Test Cycle
Commit
Build
Deploy
Test
Team Foundation Build
Team Foundation Server verfügt über ein integriertes Build System bekannt als “Team
Foundation Build”
•
Build Controller delegieren Builds an zur
Verfügung stehende Build Agents und
ermöglichen so automatische Lastverteilung.
•
Build Agents arbeiten Builds ab, d.h. laden den
Quellcode herunter, kompilieren ihn, führen
Tests aus.
Build Definition
Name der Build Definition
(sichtbar im Team Explorer)
Beschreibung der Build Definition
Build Definition
Build wird manuell angefordert
Für jeden getätigten Check-in wird ein Build erstellt
Falls Checkins getätigt werden wird in regelmässigen,
zeitlichen Intervallen ein Build erstellt
Der Code wird erst eingecheckt
wenn der Build erfolgreich war.
Builds werden zu definierten
Zeitpunkten durchgeführt
Build Definition
Mappings welche verwendet werden um den
Quellcode auf dem Build Agent herunter zu laden
Build Definition
Build Controller über welchen Builds
abgearbeitet werden
Build-Output bleibt auf dem Build Agent liegen
Build-Output wird auf einen Share kopiert
Build-Output wird in die Versionsverwaltung eingecheckt
Build-Output wird auf Visual Studio Online abgelegt
Build Definition
Auswahl eines vordefinierten Build Process
und dessen Parametrierung
Build Definition
Bestimmt wieviele Builds aufbewahrt werden
Custom Build Process
•
Der Ablauf eines Builds ist
vorgegeben durch einen Build
Process
•
Build Processes sind
zusammengesetzt aus Windows
Workflow Activities
•
Beliebige eigene Workflow
Activities können implementiert
und im Build Process verwendet
werden
Cloud Build Controller / Build Agent
Visual Studio Online stellt standardmässig einen Build Controller und Build Agent zur
Verfügung
•
Verschiedene Software ist auf
dem Controller / Agent
vorinstalliert
•
Es kann keine weitere Software
installiert werden
•
Was wenn ich Tools in meinem
Build Process brauche, welche
nicht vorinstalliert sind?
On-Premises Build Controller / Agent
Es können Build Controller und Build Agent, welche im eigenen Netzwerk gehostet
werden, mit Visual Studio Online verbunden werden.
Commit-Build-Deploy-Test Cycle
Commit
Build
Deploy
Test
Continuous Delivery (CD)
•
Mit verschiedenen Techniken und Methodiken, zusammengefasst als Continuous
Delivery, wird überprüft ob eine Software während der Entwicklung durchgehend
automatisch in die productive Umgebung überführt werden kann.
•
Ein On-Premises Team Foundation Server kann dafür mit Lab Management erweitert
werden. Lab Management basiert auf Hyper-V und System Center Virtual Machine
Manager (SCVMM)
•
Visual Studio Online die Anbindung eigener Hyper-V und SCVMM Server nicht.
Stattdessen kann auf Windows Azure ausgewichen werden
Visual Studio Online – “Monaco“
•
Visual Studio Online “Monaco” ist eine Web-basierte Entwicklungsumgebung für
Windows Azure basierte Web Sites
•
”In the Cloud, for the Coud”
•
Integrierbar mit Git
Commit-Build-Deploy-Test Cycle
Commit
Build
Deploy
Test
Cloud-basiertes Load Testing
•
Load Testing ist ein Feature von Visual Studio Ultimate und dient
dazu, dass Verhalten einer Web Applikation zu beurteilen, wenn
viele Benutzer darauf zugreifen.
•
Viele Benutzer zu simulieren erfordert entsprechend viele Ressourcen
•
Visual Studio Online bietet Cloud-basiertes Load Testing und eliminiert dadurch den
Aufbau von dedizierter Hardware und Test Controller / Test Agents
Besten Dank für Ihre Aufmerksamkeit
Philip Gossweiler
[email protected]
Herunterladen