Softwarepaketierung und Continuous
Integration bei Airbus Defence and
Space
CeBIT 2015 17. März 2015
Christian Schneemann
...
Vorstellung B1 Systems
gegründet 2004
primär Linux/Open Source-Themen
national & international tätig
über 60 Mitarbeiter
u...
Schwerpunkte
Virtualisierung (XEN, KVM & RHEV)
Systemmanagement (Spacewalk, Red Hat Satellite, SUSE
Manager)
Konfigurations...
Ausgangssituation Airbus Defence and Space
Flight Test Ground Station (FTGS)
B1 Systems GmbH
Softwarepaketierung und Conti...
Ausgangssituation
Software für Flight Test Ground Station
Software und Hardware Support für Telemetrie, Mission
Monitoring...
Alte FTGS Entwicklungsumgebung
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space...
Alte FTGS Entwicklungsumgebung
ca. 100 Software-Projekte
IDE: proprietär (EOL und nicht mehr unterstützt)
VCS: CVS
Build-U...
Motivation
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space 8 / 47
Motivation
neue Entwicklungsumgebung für die Entwickler
Cross-Platform Development (Linux x86, Linux x86_64,
Windows, ...)...
Anforderungen
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space 10 / 47
Neue Entwicklungsumgebung
Entkopplung von IDE und Build-Umgebung
langfristige Lösung für Build-Umgebung
Herstellerunabhäng...
Cross-Platform Development
Zielplattform: Linux und Windows
Software Releases unterstützen verschiedene:
Linux Distributio...
Software-Maintenance (10 Jahre)
Archivierung von Quellen und Builds
von jedem Release
In 10 Jahren muss es möglich sein,
e...
Konzept
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space 14 / 47
Software-Maintenance (10 Jahre)
statt Entwicklung einzelner Programme: Entwicklung eines
konsistenten Produkts
Einführung ...
Ziele
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space 16 / 47
Build Engineering
konsistente Builds
reproduzierbare Builds
debugbare Builds
Auditing Acceptability/Revision Control
Trace...
Build Engineering
vom Code Push zum neuen Software Release in Minuten!
B1 Systems GmbH
Softwarepaketierung und Continuous
...
Build Engineering
vom Code Push zum neuen Produkt-Release innerhalb einer
Stunde!
B1 Systems GmbH
Softwarepaketierung und ...
Build Engineering
vom Code Push zum neuen Produkt für verschiedene
Plattformen innerhalb einer Stunde!
B1 Systems GmbH
Sof...
Neue FTGS Entwicklungsumgebung
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space...
Neue FTGS Entwicklungsumgebung
ca. 140 Software-Projekte (+40)
IDE: QtCreator
VCS: Git
Build-Umgebung: CMake (exklusiv)
Be...
Neue FTGS Entwicklungsumgebung
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space...
Entwicklungsworkflow
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space 24 / 47
Entwicklungsworkflow
1 Initial Git Repository vom SW Projekt klonen.
2 Code mit IDE nach Wahl bearbeiten.
3 (Kleine) zusamm...
CI-Workflow
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space 26 / 47
CI-Workflow
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space 27 / 47
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
D...
Software Staging
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space 29 / 47
Software Staging
1 Entwicklung: Git Master Branch, Feature Branch möglich
2 Test: durch eine spezielle Git Tag Notation FT...
Maintenance von Releases
Jede Staging-Stufe und jedes Release ist ein OBS-Projekt.
Maintenance eines Pakets erfolgt unter ...
FTGS Software Staging mit OBS
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space ...
Open Build Service
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space 33 / 47
Open Build Service: Intro
„Distribution Development Platform“
https://www.openbuildservice.org
seit Januar 2006 unter der ...
Open Build Service: Features 1/2
kollaborative Funktionalität: User Management, Merge und
Review Funktionalität von SW
unt...
Open Build Service: Features 2/2
erlaubt konsistente und reproduzierbare Software Builds
integriert Versionskontrollsystem...
Open Build Service: Architektur
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Spac...
OBS: Build Dependency Handling
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space...
OBS: Build Dependency Handling
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space...
Integration des Open Build Service
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and S...
Integration des Open Build Service
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and S...
OBS in FTGS Entwicklungsumgebung
Open Build Service Einbindung transparent für Kunden
Entwicklungsabläufe automatisiert
In...
FTGS Entwicklungsumgebung aus
Entwicklersicht
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus De...
Fazit
B1 Systems GmbH
Softwarepaketierung und Continuous
Integration bei Airbus Defence and Space 44 / 47
Fazit
DON’Ts:
Deployment von Tarball/Binary-Blobs via rsync unter der Hand,
ohne Kenntnisse des Package Management System
...
Fazit
DOs:
Nutze den Open Build Service
Die „Power“ von Continuous Integration und der Extreme
Programming Ära nutzen!
Nur...
Vielen Dank für Ihre Aufmerksamkeit!
Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de
oder +49 (0)8457 - 93...
Nächste SlideShare
Wird geladen in …5
×

Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

759 Aufrufe

Veröffentlicht am

Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

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

×