Successfully reported this slideshow.

Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

762 views

Published on

Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

  • Be the first to comment

  • Be the first to like this

Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

  1. 1. Softwarepaketierung und Continuous Integration bei Airbus Defence and Space CeBIT 2015 17. März 2015 Christian Schneemann System Management & Monitoring Architect B1 Systems GmbH schneemann@b1-systems.de B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development
  2. 2. Vorstellung B1 Systems gegründet 2004 primär Linux/Open Source-Themen national & international tätig über 60 Mitarbeiter unabhängig von Soft- und Hardware-Herstellern Leistungsangebot: Beratung & Consulting Support Entwicklung Training Betrieb Lösungen dezentrale Strukturen B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 2 / 47
  3. 3. Schwerpunkte Virtualisierung (XEN, KVM & RHEV) Systemmanagement (Spacewalk, Red Hat Satellite, SUSE Manager) Konfigurationsmanagement (Puppet & Chef) Monitoring (Nagios & Icinga) IaaS Cloud (OpenStack & SUSE Cloud & RDO) Hochverfügbarkeit (Pacemaker) Shared Storage (GPFS, OCFS2, DRBD & CEPH) Dateiaustausch (ownCloud) Paketierung (Open Build Service) Administratoren oder Entwickler zur Unterstützung des Teams vor Ort B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 3 / 47
  4. 4. Ausgangssituation Airbus Defence and Space Flight Test Ground Station (FTGS) B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 4 / 47
  5. 5. Ausgangssituation Software für Flight Test Ground Station Software und Hardware Support für Telemetrie, Mission Monitoring, Data Processing, Analyse und Visualisierung geschrieben in C, C++ und FORTRAN ca. 100 einzelne Software-Komponenten 1993 Projektstart mit Unix (SGI IRIX und HPUX); um 2002 Migration auf Linux (SuSE 7.x) diverse Migrationen auf verschiedene Linux Distributionen (SuSE 7.x → SLES 9.x → SLES 11.x) Bei Projektstart noch auf i586; Umstieg auf x86_64 ist in Vorbereitung Zielplattform bei Projektstart SLE 11 SP1 diverse Third Party Libraries in Gebrauch B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 5 / 47
  6. 6. Alte FTGS Entwicklungsumgebung B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 6 / 47
  7. 7. Alte FTGS Entwicklungsumgebung ca. 100 Software-Projekte IDE: proprietär (EOL und nicht mehr unterstützt) VCS: CVS Build-Umgebung: Kontrolle über IDE und andere Projekte mit Makefiles, imake, qmake, ... Betriebssystem: SLE 11 SP1 i586 Entwickler-Workstations: Fat Clients (Diskless, Distro Image read-only, Homes auf NFS) Continuous Integration: Keine Deployment: von Hand direkt in einen zentral genutzten NFS-Ordner B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 7 / 47
  8. 8. Motivation B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 8 / 47
  9. 9. Motivation neue Entwicklungsumgebung für die Entwickler Cross-Platform Development (Linux x86, Linux x86_64, Windows, ...) Software Maintenance über gesamte Projektlaufzeit (Datenvorhalt für mindestens 10 Jahre) konsistente Builds des kompletten Software Stacks Bauen und Bereitstellen des SW-Stacks in verschiedenen Variationen (Kundenanpassungen) B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 9 / 47
  10. 10. Anforderungen B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 10 / 47
  11. 11. Neue Entwicklungsumgebung Entkopplung von IDE und Build-Umgebung langfristige Lösung für Build-Umgebung Herstellerunabhängigkeit (Produkteinstellung) Build-Umgebung muss IDE-Nutzung und Build Automation erlauben dezentrale Versionsverwaltung (VCS) für Entwicklung außerhalb des Firmennetzwerks (z. B. bei Testeinsätzen) fortlaufende und konsistente Versionierung Verfolgbarkeit B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 11 / 47
  12. 12. Cross-Platform Development Zielplattform: Linux und Windows Software Releases unterstützen verschiedene: Linux Distributionen Architekturen Flavors/Subsets (für unterschiedliche Abteilungen/Kunden) B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 12 / 47
  13. 13. Software-Maintenance (10 Jahre) Archivierung von Quellen und Builds von jedem Release In 10 Jahren muss es möglich sein, exakt den selben Code zu bauen auf die selbe Art zu bauen Builds auszuführen und zu testen an Ort und Stelle Fehler zu suchen und zu beheben trotzdem einfache Bedienung, falls sehr selten genutzt B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 13 / 47
  14. 14. Konzept B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 14 / 47
  15. 15. Software-Maintenance (10 Jahre) statt Entwicklung einzelner Programme: Entwicklung eines konsistenten Produkts Einführung eines Maintenance Workflow Um Softwarefehler während des Release Life Cycles zu beheben, alles automatisieren anstatt alles zu dokumentieren. Beibehalten der Automatisierung, damit bei Änderungen sofort auffällt, wenn Fehler auftreten B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 15 / 47
  16. 16. Ziele B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 16 / 47
  17. 17. Build Engineering konsistente Builds reproduzierbare Builds debugbare Builds Auditing Acceptability/Revision Control Traceability Unterstützung für Cross-Platform Development einfache Migration auf neue: Zielplattformen Third Party APIs B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 17 / 47
  18. 18. Build Engineering vom Code Push zum neuen Software Release in Minuten! B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 18 / 47
  19. 19. Build Engineering vom Code Push zum neuen Produkt-Release innerhalb einer Stunde! B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 19 / 47
  20. 20. Build Engineering vom Code Push zum neuen Produkt für verschiedene Plattformen innerhalb einer Stunde! B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 20 / 47
  21. 21. Neue FTGS Entwicklungsumgebung B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 21 / 47
  22. 22. Neue FTGS Entwicklungsumgebung ca. 140 Software-Projekte (+40) IDE: QtCreator VCS: Git Build-Umgebung: CMake (exklusiv) Betriebssystem: SLE 11 SP1, SLE 11 SP2 - i586/x86_64, SLE 11 SP3 - i568/x86_64 Entwickler-Workstations: Fat Clients (Diskless, Distro Image read-only, Homes auf NFS) Continuous Integration: Git → OBS → (Jenkins/CDash/OBS-Erweiterung) → maßgefertigtes Deployment/Ausrollen Deployment: via CI B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 22 / 47
  23. 23. Neue FTGS Entwicklungsumgebung B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 23 / 47
  24. 24. Entwicklungsworkflow B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 24 / 47
  25. 25. Entwicklungsworkflow 1 Initial Git Repository vom SW Projekt klonen. 2 Code mit IDE nach Wahl bearbeiten. 3 (Kleine) zusammenhängende Änderungen gemeinsam via Git committen. 4 Wenn ein Feature vollständig ist oder ein Fehler behoben wurde: Git push. 5 . . . ab hier übernimmt das CI-System. B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 25 / 47
  26. 26. CI-Workflow B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 26 / 47
  27. 27. CI-Workflow B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 27 / 47
  28. 28. CI-Workflow 1 Git Hook löst bei einem Push einen Event im OBS aus. 2 OBS baut den aktuellen Source-Stand neu und löst ein Deployment aus. 3 Deployment direkt auf NFS Share inklusive Snapshot. B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 28 / 47
  29. 29. Software Staging B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 29 / 47
  30. 30. Software Staging 1 Entwicklung: Git Master Branch, Feature Branch möglich 2 Test: durch eine spezielle Git Tag Notation FTGS_v1.0.0 3 Release: Release Manager staged Projekt nach Bedarf aus der Test-Stufe B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 30 / 47
  31. 31. Maintenance von Releases Jede Staging-Stufe und jedes Release ist ein OBS-Projekt. Maintenance eines Pakets erfolgt unter Verwendung von Git Branches durch Entwickler. Releases sind „abgehängte“ und konsistente Produkt-Snapshots. B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 31 / 47
  32. 32. FTGS Software Staging mit OBS B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 32 / 47
  33. 33. Open Build Service B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 33 / 47
  34. 34. Open Build Service: Intro „Distribution Development Platform“ https://www.openbuildservice.org seit Januar 2006 unter der GPL verfügbar seit Mai 2011 als Open Build Service bekannt (vorher openSUSE Build Service) Nachfolger des SUSE internen Build-Systems Referenzinstallation: https://build.opensuse.org B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 34 / 47
  35. 35. Open Build Service: Features 1/2 kollaborative Funktionalität: User Management, Merge und Review Funktionalität von SW unterstützte Zielplattformen: RPM basierte Distributionen: openSUSE, SLES, RHEL, Fedora, CentOS, Scientific Linux DEB basierte Distributionen: Debian, Ubuntu ARCH Linux Windows unterstützt verschiedene Architekturen: x86, x86_64, PPC, S390x, ARM, ... Erstellung von Medien (DVD-ISO, Xen/KVM Image, Appliances, ...) Maintenanceprozesse (Patchrelease) B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 35 / 47
  36. 36. Open Build Service: Features 2/2 erlaubt konsistente und reproduzierbare Software Builds integriert Versionskontrollsysteme Skalierbar durch Einsatz mehrerer Worker löst Abhängigkeiten selbstständig auf eingebaute Revisionsverwaltung mit „Deduplizierung“ vollautomatisierte Abläufe vom Paketbau bis Repositoryerstellung und Signierung B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 36 / 47
  37. 37. Open Build Service: Architektur B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 37 / 47
  38. 38. OBS: Build Dependency Handling B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 38 / 47
  39. 39. OBS: Build Dependency Handling B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 39 / 47
  40. 40. Integration des Open Build Service B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 40 / 47
  41. 41. Integration des Open Build Service B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 41 / 47
  42. 42. OBS in FTGS Entwicklungsumgebung Open Build Service Einbindung transparent für Kunden Entwicklungsabläufe automatisiert Interaktion nur im Fehlerfall (Software baut nicht mehr) Benachrichtigung des Entwicklers Bereitstellung der Logdatei B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 42 / 47
  43. 43. FTGS Entwicklungsumgebung aus Entwicklersicht B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 43 / 47
  44. 44. Fazit B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 44 / 47
  45. 45. Fazit DON’Ts: Deployment von Tarball/Binary-Blobs via rsync unter der Hand, ohne Kenntnisse des Package Management System Deployment durch automatisierte Fetch-Skripte das Rad neu erfinden . . . Bauen von Softwarepaketen (RPM, DEB, . . . ) auf Entwickler-Workstation von Hand B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 45 / 47
  46. 46. Fazit DOs: Nutze den Open Build Service Die „Power“ von Continuous Integration und der Extreme Programming Ära nutzen! Nur einen Software-Stand pflegen: für verschiedene Linux Distributionen, Releases oder Service Packs für verschiedene Architekturen (x86_64, i586, s390x, ia64, ppc64, pcc, ARM, . . . ) . . . in einem Aufwasch: Cross-Distribution-Architecture Packaging erhöhte Sicherheits-/Integritätsanforderungen? Eigene Pakete mit eigenem Schlüssel signieren! B1 Systems GmbH Softwarepaketierung und Continuous Integration bei Airbus Defence and Space 46 / 47
  47. 47. Vielen Dank für Ihre Aufmerksamkeit! Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de oder +49 (0)8457 - 931096. Besuchen Sie uns auch hier auf der CeBIT, Halle 6, H16/312. B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development

×