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]