2. Agenda
Why Continuous Integration / Delivery
How to do onVisual Studio Online
How to do onVisual Studio 2015
How to do on Azure
3. Why Continuous Integration / Delivery
Continuous Integration
Continuous Delivery
Was ist der Unterschied zwischen CI und CD
Continuous Deployment
Source: Martin Fowler
Website: http://martinfowler.com/bliki/ContinuousDelivery.html
Um dies zu erreichen, umfasst Continuous Integration folgendes:
Entwickler führen mindestens einmal am Tag einen Check-In ihres Codes durch
Der Code wird bei jedem Check-In gebaut
Code wird bei jedem Check-In automatisch mit Unit Tests getestet
Jeder hat Zugriff auf den Build und die Testreports
Der Build ist schnell, sodass Entwickler schnell Feedback bekommen
Tests werden in einer herunterskalierten Version der Produktionsumgebung ausgeführt
Build-Artefakte werden in einem versionskontrollierten Artefakt-Repository abgelegt
Build-Artefakte werden nach jedem erfolgreichen Build automatisch auf eine Testumgebung deployt
Wenn all dies umgesetzt wurde, ist man auf einem reifen CI-Level und bereit für den nächsten Schritt: Continuous Delivery.
Continuous Delivery (CD) ist der nächste Schritt nach CI. Zur Umsetzung solltest Du folgendes implementiert haben:
Deine Software ist den gesamten Lebenszyklus hindurch deploybar
Dein Team priorisiert das Sicherstellen von auslieferungsfähiger Software über das Umsetzen neuer Features
Jeder erhält schnelles, automatisiertes Feedback über den Auslieferungszustand Deiner Systeme, jedes Mal, wenn jemand eine Änderung daran vornimmt
Sie führen bei Bedarf Deployments jeder beliebigen Version der Software per Knopfdruck durch
Es gibt eine enge, kollaborative Arbeitsbeziehung zwischen allen, die am Auslieferungsprozess beteiligt sind (häufig als DevOps-Kultur bezeichnet)
Umfassende Automatisierung aller möglichen Bereiche des Auslieferungsprozesses sind umgesetzt, üblicherweise mit einer Deployment Pipeline.[1]
Wo liegt nun konkret der Unterschied zwischen Continuous Integration und Continuous Delivery?
Um in der Lage zu sein, mit einem Wimpernschlag nach Produktion zu deployen, ist mehr vonnöten. Automatisierung ist der gemeinsame Teil hierbei. Den nächsten Schritt zu nehmen heißt also, noch mehr zu automatisieren. Automatisiere die Regressionstests, sodass Du in der Lage bist, ohne manuelles Testen prüfen zu können, ob Dein Produkt korrekt funktioniert. Außerdem ist auch das Deployment in Produktion automatisiert.
Der Schritt in die Produktion ist eine Entscheidung der Businessseite. Aber wenn diese Entscheidung getroffen wird, dauert es nicht lange und kostet nicht viel Stress. Es wird ein Knopfdruck sein, der das Produkt-Inkrement in Produktion bringt.
Was sind die Vorteile über Continuous Integration hinausgehend?
Eine Reduzierung des Risikos von Deployments in Produktion. Da (fast) alles automatisiert ist (Test, Deployment, Infrastruktursetup und –deployment), ist das Risiko, dass dabei etwas schiefgeht, gering.
Der Fortschritt des Entwicklungsteams ist transparent. Wenn eine Applikation vollständig getestet und in eine Produktions(-ähnliche)umgebung deployt wird, ist offensichtlich, dass etwas „done“ ist. Somit können Entwickler nicht mehr sagen, dass etwas „done“ ist, wenn danach noch eine Woche vergeht, bis es live gestellt ist.
Schließlich der wichtigste Punkt, man bekommt schnelles Feedback. Das Risiko, dass eine Idee für Deine Kunden nicht funktioniert, ist reduziert, da Du schnell Feedback bekommst, anstatt erst Monate oder Jahre später.
Wenn Du das Continuous Delivery Level erreicht hast, bist Du bereit, noch einen Schritt weiter zu gehen.
Continuous Deployment
Der letzte Schritt ist Continuous Deployment (CD). Die gleiche Abkürzung wie Continuous Delivery und deswegen denken vielleicht auch viele Leute, dass es dasselbe ist. Es gibt jedoch einen kleinen Unterschied zwischen beiden.
Machst Du Continuous Delivery, so legst Du fest, wann Du in Produktion gehst. Bei Continuous Deployment machst Du das nicht.Jeder erfolgreiche Build resultiert in einem automatisierten Deployment in Produktion.
In beiden Fällen kannst Du leicht in Produktion gehen, aber bei Continuous Delivery ist es eine Wahl.
Vorteile von Continuous Deployment
Jede Änderung geht direkt in Produktion. Somit ist das Zeitfenster für eine verlorene Gelegenheit sehr klein.
Feedback erfolgt noch schneller.
Durch den Einsatz von Feature Toggles ist es möglich, nach Produktion zu deployen, ohne die neuen Funktionalitäten zu nutzen. Es sind also Teile, die noch unfertig sind, bereits in Produktion deployt. So kann bereits Feedback über das Deployment der neuen Teile gesammelt werden.
Daneben ist es auch möglich, eine kleine Nutzergruppe eine neue Funktionalität bereits testen zu lassen, um auch so frühes Feedback zu bekommen.
Visual Studio Online Konto erstellen:https://app.vssps.visualstudio.com/profile/account?account=true&mkt=de-DE&context=eyJwZSI6MSwicGMiOjEsImljIjoxLCJhbyI6MiwiYW0iOjEsIm9wIjpudWxsLCJhZCI6bnVsbCwiZmEiOjIsImF1IjpudWxsLCJjdiI6Mzc5MzcxMTM4LCJmcyI6MCwic3UiOjAsImVyIjoxfQ2
Beim 2. Punkt Git benutzen brauchen wir später für IOS Builds und Android Builds
Show how it looks on the Edge