Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise Architecture Management

2,484 views

Published on

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.

Published in: Technology
  • Be the first to comment

CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise Architecture Management

  1. 1. Kopf frei für’s Produkt – Automatisierung mit Ansible und Jenkins CodeTalks Conference, Hamburg Oktober 2014
  2. 2. Über uns 2 André Christ Gründer & CTO Dr. Daniel Pozzi SW Architekt
  3. 3. Agenda 3 Kopf frei für welches Produkt? Weshalb Automatisierung? Was sind die „Lessons Learned“? Wie wurde es mit Jenkins & Ansible umgesetzt?
  4. 4. Typisches Bild für IT Landschaften in Unternehmen: Fehlende Transparenz 4 Redundanz Kopfmonopole Risiken
  5. 5. leanIX eine leicht zu nutzende SaaS-Plattform für das IT Architektur-Management 5 Fact Sheets & Tagging Kontext-basierte Suche API, Import & Export Kommentierung IT Inventory Kollaborationsplattform Interaktives Reporting Activity Stream & Benachrichtigungen Subscription Print & Export (PDF) Best Practice Reports Interaktive Anpassung
  6. 6. Agenda 6 Kopf frei für welches Produkt? Weshalb Automatisierung? Wie wurde es mit Jenkins & Ansible umgesetzt? Was sind die „Lessons Learned“?
  7. 7. Starke Nachfrage namhafter Kunden nach frischem Ansatz 7 2012 2013 2014 2015 > 50 Kunden
  8. 8. Skalierung der Platform 2012 20142013 “MVP” Enterprise Integration / SSO Single Page JS App Professionalisierung Build-Umgebung Qualitäts & Servicemangement
  9. 9. 9 Statische Dokumentation? • Zu wenig Ressourcen • Nicht wiederholbar • Schnell veraltet
  10. 10. Agenda 10 Kopf frei für welches Produkt? Weshalb Automatisierung? Wie wurde es mit Jenkins & Ansible umgesetzt? Was sind die „Lessons Learned“?
  11. 11. Anwendungsfälle 11 DevOps Code, Build & Test Provision & Deploy WebEx & Trial-Phase
  12. 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. 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. 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. 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
  16. 16. Live-Demo 16
  17. 17. Ansible: Ausführung des Playbooks 17 # # Provisions the demo web server # --- - hosts: web sudo: true roles: - {role: 'init'} - {role: 'apache2'} - {role: 'webbox'} /ansible/provision_web.yml $ ansible_playbook provision_web.yml –I hosts/web -v
  18. 18. Ansible: Apache Rolle (Auszug) 18 […] - name: Install Apache sudo: yes apt: pkg=apache2 state=latest - name: Install Apache Modules command: a2enmod {{item}} creates="/etc/apache2/mods-enabled/{{item}}.load" notify: restart apache with_items: apache_modules […] /ansible/roles/apache2/tasks/install.yml
  19. 19. Ansible: Hosts Datei 19 # # Gruppe mit Hosts (DNS-Name & Parameter) # [web] web-box.dev ansible_ssh_user=vagrant […] web.leanix.net ansible_ssh_user=root [db] db-box.dev ansible_ssh_user=vagrant […] db.leanix.net ansible_ssh_user=root Roles/apache2/tasks/install.yml
  20. 20. Agenda 20 Kopf frei für welches Produkt? Weshalb Automatisierung? Wie wurde es mit Jenkins & Ansible umgesetzt? Was sind die „Lessons Learned“?
  21. 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. 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. 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
  24. 24. Backup 24
  25. 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. 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
  27. 27. Nahtlose Einbindung der Geschäftsprozesse sichert Visibilität bei den Fachseiten 27 Sync

×