4. Was ist DevOps? (1/2)
• Prozessverbesserungs-Ansatz
• DevOps = Development + Operations
• Anreize, Prozesse undTools für eine effektivere und
effizientere Zusammenarbeit
• Ziel istVerbesserung von
• Qualität der Software
• Geschwindigkeit der Entwicklung
• Geschwindigkeit der Auslieferung
• Miteinander der beteiligtenTeams
Quelle: https://de.wikipedia.org/wiki/DevOps
https://commons.wikimedia.org/wiki/File:Devops.svg
5. Was ist DevOps? (2/2)
Quelle: https://en.wikipedia.org/wiki/File:Devops-toolchain.svg
Heute: Fokus auf denTools!
7. Team Foundation Server
• Von Microsoft
• Versionskontrolle:TFVC, git
• Projektplanung (Kanban, Scrum, Dashboards)
• Erweiterbares Build-System
• Cloud oder On-Premises
• VM zumAusprobieren: https://almvm.azurewebsites.net/
8. Tentacle
(DeployTarget)
Octopus Deploy
Tentacle
(DeployTarget)
• Gegründet 2011 in Brisbane, Australien
• Wird von 9000 Organisationen verwendet
• Fokus auf .NET Entwicklung
• Kostenlos für kleine Installationen
• Alternativen: Chef, Puppet, Ansible, GoCD
Octopus Server
Tentacle
(DeployTarget)
???
10. Szenario
• Entwicklung einer API (z.B. für eine App)
• Hosting des Servers im Rechenzentrum der Firma
• Server mit ASP.NET Core, gehostet auf IIS
11. Was haben wir vor?
Development
Staging
Production
Server
Dev
Main
TFS Octopus
CI CI
R R
BuildRepos
12. Environment Staging
• Abnahme auf Staging
• Sollte identisch zu Production aufgebaut sein
Development
Staging
Production
Environment Production
• Identisches Deployment wie bei Staging
• Paket / Binary
• Deployment-Prozedur
13. Terminologie von Octopus Deploy
Development
Staging
Production
CI CI
R R
Schritte:
• Create Package
• Push Package
• Create Release
1. Package Repository
2. Environment
3. Role
4. Project
5. Channel
6. Lifecycle / Promote
1
2
4
6
5
3
16. Und wenn… (1/2)
• … ich aufAzure deployen will? -> out of the box
• … ich auf Linux deployen will? -> nur per SSH
• … der Server keinTentacle sein darf? -> Offline Package Drop
• … ich komplexere Deployment-Strategien brauche?
• Rolling Deployments
• Canary Deployments
• Blue-Green Deployments
17. Und wenn… (2/2)
• … ich mein Datenbank-Schema mit deployen möchte?
• Keine direkte Schema-Migration durch Octopus Deploy
• Z.B. Nutzung von DbUp: https://dbup.github.io/
• Zweites Package mit SQL-Files + DbUp
• SQL-Files durchnummeriert
• EigeneTabelle für dieVersion
• Ausführung auf Server mit Rolle „DB“