Presentation bei der CodeTalks Developer Conference in Hamburg zum Thema: "Kopf frei für's Produkt - Automatisierung mit Ansible und Jenkins" von LeanIX CTO André Christ und SW Architekt Dr. Daniel Pozzi.
Vom ersten Einrichten einer Maschine bis zum Ausliefern der Anwendung ist es ein weiter Weg, der in einem Startup viele menschliche und technische Ressourcen abverlangt. Neue Kundenwünsche und Skalierung erfordern immer mehr Server, Dienste („best tool for the job“) oder Anwendungsinstanzen, die verwaltet werden wollen.
Der SaaS-Anbieter LeanIX aus Bonn hat den manuellen Prozess in wenigen Wochen gegen eine vollständig automatisierte Provision-, Build- und Deploy-Kette mit ansible und Jenkins getauscht, um den Rücken für die Produktentwicklung frei zu haben.
12. Warum Jenkins & Ansible?
12
Einfach
Erweiterbar
Skalierbar
Flexibel
Open Source
Community
Gute Weboberfläche Einfache Syntax (YAML)
Continuous Integration (CI) &
Continuous Delivery (CD)
Zahlreiche Plugins Zahlreiche Module
Verteiltes Build System Pull-Mode anstatt SSH-Push
Konfiguration von Jobs Kapselung durch Rollen
MIT License MIT License
Sehr aktiv (seit 2011) Starkes Wachstum (seit 2012)
Orchestrierung von
Admin-Aufgaben
13. Einbindung in den Gesamtprozess
13
Deploy to
Staging
Development
Branch
Build
Automated
Tests
Business
Tests
Merge to
Production
Deploy to
Production
In Production
GitFlow xUnit + Selenium
GitFlow BrowserStack
14. Ansible Architektur
14
Tasks
Install Package
Copy file
Apply template
Rollen
Linux Basis
Apache
MySQL
PHP
Application 1
...
Playbooks
Provision DB Server
Deploy Web App
...
Hosts
SVR-DE-TEST
SVR-DE-DEV
SVR-DE-PROD
SVR-US-PROD
15. Beispiel für Live-Demo
CI Server Webserver
1 Jenkins führt Ansible playbook aus
2 Ansible
… installiert Apache auf Linux System
… erstellt vhost
… deployed HTML-Seite aus template
1
2
20. Agenda
20
Kopf frei für welches Produkt?
Weshalb Automatisierung?
Wie wurde es mit Jenkins & Ansible umgesetzt?
Was sind die „Lessons Learned“?
21. Erste Hürden und Problemlösungen
21
• Ansible v1 nicht unter Windows
• Für bestimmte Tasks müssen
Bilbliotheken auf Ziel-Maschine
vorhanden sein
• Parallele Ausführung führt zu
Locking von Packetmanagern
Nutzung via Vagrant
In Tasks bzw. Rollen check auf
Installierte Pakete
Erst prüfen, ob Paket installiert
werden muss
22. Was haben wir davon?
22
20 Tage
3 Std
30 Min
Aufwand für die Einrichtung, Lernen, Stolperfallen von
Ansible & Jenkins
Ramp-Up eines neuen Mitarbeiters bis zum ersten
Commit
Zeit bis ein neuer leanIX Node „from scratch“
produktiv ist (bei installiertem OS)
23. 23
DANKE!
Follow us @leanix_net
Download Beispiel Code
github.com/leanix/codetalks_2014_demo
Zu kompliziert??? - Bei LeanIX
moderne Anwendungen für
Unternehmen entwickeln!
jobs@leanix.net
25. leanIX integriert sich in ein Ökosystem für
modernes IT Management
25
Collaboration- & Document Mgmt
IT Service Management &
Help Desk
Requirements- &
Business Process Mgmt
Project Portfolio- and
Ressource-Management
Selected products to illustrate
Out-of-the-box
Integrationen
REST API &
SDKs
developer.leanix.net
26. Verständliche Reports und flexible Sichten
ermöglichen eine umfassende IT Transparenz
26
Heatmaps Roadmaps Costs Metrics
Application Landscape
Interface Landscape
Application Sourcing Map
Application Roadmap
Technology Vendor Support
Project Roadmap
Operations Cost by Capability
Operations Cost by Provider
Project Cost & Status
Application Portfolio
Application Lifecycle Development
Application Age Structure