softwarepaketierung und continuous integration bei airbus defence and space

47
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space DB Open Source Workshop, Frankfurt 26. November 2015 Karsten Keil Kernel Entwickler & Consultant B1 Systems GmbH [email protected] B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Upload: b1-systems-gmbh

Post on 20-Jan-2017

18 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Softwarepaketierung und ContinuousIntegration bei Airbus Defence andSpaceDB Open Source Workshop, Frankfurt 26. November 2015

Karsten KeilKernel Entwickler & Consultant

B1 Systems [email protected]

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Page 2: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Vorstellung B1 Systems

gegründet 2004primär Linux/Open Source-Themennational & international tätigüber 70 Mitarbeiterunabhängig von Soft- und Hardware-HerstellernLeistungsangebot:

Beratung & ConsultingSupportEntwicklungTrainingBetriebLösungen

dezentrale Strukturen

B1 Systems GmbH CI bei Airbus Defence and Space 2 / 47

Page 3: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

SchwerpunkteVirtualisierung (XEN, KVM & RHEV)Systemmanagement (Spacewalk, Red Hat Satellite, SUSEManager)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 Teamsvor Ort

B1 Systems GmbH CI bei Airbus Defence and Space 3 / 47

Page 4: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Ausgangssituation Airbus Defence and SpaceFlight Test Ground Station (FTGS)

B1 Systems GmbH CI bei Airbus Defence and Space 4 / 47

Page 5: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

AusgangssituationSoftware für Flight Test Ground StationSoftware und Hardware Support für Telemetrie, MissionMonitoring, Data Processing, Analyse und Visualisierunggeschrieben in C, C++ und FORTRANca. 100 einzelne Software-Komponenten1993 Projektstart mit Unix (SGI IRIX und HPUX); um 2002Migration auf Linux (SuSE 7.x)diverse Migrationen auf verschiedene Linux Distributionen (SuSE7.x → SLES 9.x → SLES 11.x)Bei Projektstart noch auf i586; Umstieg auf x86_64 ist inVorbereitungZielplattform bei Projektstart SLE 11 SP1diverse Third Party Libraries in Gebrauch

B1 Systems GmbH CI bei Airbus Defence and Space 5 / 47

Page 6: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Alte FTGS Entwicklungsumgebung

B1 Systems GmbH CI bei Airbus Defence and Space 6 / 47

Page 7: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Alte FTGS Entwicklungsumgebung

ca. 100 Software-ProjekteIDE: proprietär (EOL und nicht mehr unterstützt)VCS: CVSBuild-Umgebung: Kontrolle über IDE und andere Projekte mitMakefiles, imake, qmake, ...Betriebssystem: SLE 11 SP1 i586Entwickler-Workstations: Fat Clients (Diskless, Distro Imageread-only, Homes auf NFS)Continuous Integration: KeineDeployment: von Hand direkt in einen zentral genutztenNFS-Ordner

B1 Systems GmbH CI bei Airbus Defence and Space 7 / 47

Page 8: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Motivation

B1 Systems GmbH CI bei Airbus Defence and Space 8 / 47

Page 9: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Motivation

neue Entwicklungsumgebung für die EntwicklerCross-Platform Development (Linux x86, Linux x86_64,Windows, ...)Software Maintenance über gesamte Projektlaufzeit(Datenvorhalt für mindestens 10 Jahre)konsistente Builds des kompletten Software StacksBauen und Bereitstellen des SW-Stacks in verschiedenenVariationen (Kundenanpassungen)

B1 Systems GmbH CI bei Airbus Defence and Space 9 / 47

Page 10: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Anforderungen

B1 Systems GmbH CI bei Airbus Defence and Space 10 / 47

Page 11: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Neue Entwicklungsumgebung

Entkopplung von IDE und Build-Umgebunglangfristige Lösung für Build-UmgebungHerstellerunabhängigkeit (Produkteinstellung)Build-Umgebung muss IDE-Nutzung und Build Automationerlaubendezentrale Versionsverwaltung (VCS) für Entwicklung außerhalbdes Firmennetzwerks (z. B. bei Testeinsätzen)

fortlaufende und konsistente Versionierung

Verfolgbarkeit

B1 Systems GmbH CI bei Airbus Defence and Space 11 / 47

Page 12: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Cross-Platform Development

Zielplattform: Linux und WindowsSoftware Releases unterstützen verschiedene:

Linux DistributionenArchitekturenFlavors/Subsets (für unterschiedliche Abteilungen/Kunden)

B1 Systems GmbH CI bei Airbus Defence and Space 12 / 47

Page 13: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Software-Maintenance (10 Jahre)

Archivierung von Quellen und Buildsvon jedem Release

In 10 Jahren muss es möglich sein,exakt den selben Code zu bauenauf die selbe Art zu bauenBuilds auszuführen und zu testenan Ort und Stelle Fehler zu suchen und zu beheben

trotzdem einfache Bedienung, falls sehr selten genutzt

B1 Systems GmbH CI bei Airbus Defence and Space 13 / 47

Page 14: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Konzept

B1 Systems GmbH CI bei Airbus Defence and Space 14 / 47

Page 15: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Software-Maintenance (10 Jahre)

statt Entwicklung einzelner Programme: Entwicklung eineskonsistenten ProduktsEinführung eines Maintenance WorkflowUm Softwarefehler während des Release Life Cycles zu beheben,

alles automatisierenanstatt alles zu dokumentieren.

Beibehalten der Automatisierung, damit bei Änderungen sofortauffällt, wenn Fehler auftreten

B1 Systems GmbH CI bei Airbus Defence and Space 15 / 47

Page 16: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Ziele

B1 Systems GmbH CI bei Airbus Defence and Space 16 / 47

Page 17: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Build Engineering

konsistente Buildsreproduzierbare Buildsdebugbare BuildsAuditing Acceptability/Revision ControlTraceabilityUnterstützung für Cross-Platform Developmenteinfache Migration auf neue:

ZielplattformenThird Party APIs

B1 Systems GmbH CI bei Airbus Defence and Space 17 / 47

Page 18: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Build Engineering

vom Code Push zum neuen Software Release in Minuten!

B1 Systems GmbH CI bei Airbus Defence and Space 18 / 47

Page 19: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Build Engineering

vom Code Push zum neuen Produkt-Release innerhalb einerStunde!

B1 Systems GmbH CI bei Airbus Defence and Space 19 / 47

Page 20: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Build Engineering

vom Code Push zum neuen Produkt für verschiedenePlattformen innerhalb einer Stunde!

B1 Systems GmbH CI bei Airbus Defence and Space 20 / 47

Page 21: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Neue FTGS Entwicklungsumgebung

B1 Systems GmbH CI bei Airbus Defence and Space 21 / 47

Page 22: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Neue FTGS Entwicklungsumgebung

ca. 140 Software-Projekte (+40)IDE: QtCreatorVCS: GitBuild-Umgebung: CMake (exklusiv)Betriebssystem: SLE 11 SP1, SLE 11 SP2 - i586/x86_64, SLE11 SP3 - i568/x86_64Entwickler-Workstations: Fat Clients (Diskless, Distro Imageread-only, Homes auf NFS)Continuous Integration: Git → OBS →(Jenkins/CDash/OBS-Erweiterung) → maßgefertigtesDeployment/AusrollenDeployment: via CI und manuell triggerbar

B1 Systems GmbH CI bei Airbus Defence and Space 22 / 47

Page 23: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Neue FTGS Entwicklungsumgebung

B1 Systems GmbH CI bei Airbus Defence and Space 23 / 47

Page 24: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Entwicklungsworkflow

B1 Systems GmbH CI bei Airbus Defence and Space 24 / 47

Page 25: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

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 CI bei Airbus Defence and Space 25 / 47

Page 26: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

CI-Workflow

B1 Systems GmbH CI bei Airbus Defence and Space 26 / 47

Page 27: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

CI-Workflow

B1 Systems GmbH CI bei Airbus Defence and Space 27 / 47

Page 28: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

CI-Workflow

1 Git Hook löst bei einem Push einen Event im OBS aus.2 OBS baut den aktuellen Source-Stand neu und erstellt ein

Repository.3 sofortiges automatisches Deployment bei Release Maintenance4 nächtliches Deployment der Entwicklungs und Test Stages5 Deployment erfolgt direkt auf NFS Share inklusive Snapshot.

B1 Systems GmbH CI bei Airbus Defence and Space 28 / 47

Page 29: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Software Staging

B1 Systems GmbH CI bei Airbus Defence and Space 29 / 47

Page 30: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Software Staging

1 Entwicklung: Git Master Branch, Feature Branch möglich2 Test: durch eine spezielle Git Tag Notation FTGS_v1.0.03 Release: Release Manager staged Projekt nach Bedarf aus der

Test-Stufe

B1 Systems GmbH CI bei Airbus Defence and Space 30 / 47

Page 31: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Maintenance von Releases

Jede Staging-Stufe und jedes Release ist ein OBS-Projekt.Releases sind „abgehängte“ und konsistente Produkt-Snapshots.Maintenance eines Release Pakets erfolgt mittels „Wizard“

führt durch alle SchritteAbfrage aller notwendigen Informationenautomatisiertes Commit, Build und DeploymentDokumentation

B1 Systems GmbH CI bei Airbus Defence and Space 31 / 47

Page 32: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

FTGS Software Staging mit OBS

B1 Systems GmbH CI bei Airbus Defence and Space 32 / 47

Page 33: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Open Build Service

B1 Systems GmbH CI bei Airbus Defence and Space 33 / 47

Page 34: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Open Build Service: Intro

„Distribution Development Platform“https://www.openbuildservice.org

seit Januar 2006 unter der GPL verfügbarseit Mai 2011 als Open Build Service bekannt (vorher openSUSEBuild Service)Nachfolger des SUSE internen Build-SystemsReferenzinstallation: https://build.opensuse.org

B1 Systems GmbH CI bei Airbus Defence and Space 34 / 47

Page 35: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Open Build Service: Features 1/2

kollaborative Funktionalität: User Management, Merge undReview Funktionalität von SWunterstützte Zielplattformen:

RPM basierte Distributionen: openSUSE, SLES, RHEL, Fedora,CentOS, Scientific LinuxDEB basierte Distributionen: Debian, UbuntuARCH LinuxWindows

unterstützt verschiedene Architekturen: x86, x86_64, PPC,S390x, ARM, ...Erstellung von Medien (DVD-ISO, Xen/KVM Image,Appliances, ...)Maintenanceprozesse (Patchrelease)

B1 Systems GmbH CI bei Airbus Defence and Space 35 / 47

Page 36: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Open Build Service: Features 2/2

erlaubt konsistente und reproduzierbare Software Buildsintegriert VersionskontrollsystemeSkalierbar durch Einsatz mehrerer Workerlöst Abhängigkeiten selbstständig aufeingebaute Revisionsverwaltung mit „Deduplizierung“vollautomatisierte Abläufe vom Paketbau bisRepositoryerstellung und Signierung

B1 Systems GmbH CI bei Airbus Defence and Space 36 / 47

Page 37: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Open Build Service: Architektur

B1 Systems GmbH CI bei Airbus Defence and Space 37 / 47

Page 38: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

OBS: Build Dependency Handling

B1 Systems GmbH CI bei Airbus Defence and Space 38 / 47

Page 39: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

OBS: Build Dependency Handling

B1 Systems GmbH CI bei Airbus Defence and Space 39 / 47

Page 40: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Integration des Open Build Service

B1 Systems GmbH CI bei Airbus Defence and Space 40 / 47

Page 41: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Integration des Open Build Service

B1 Systems GmbH CI bei Airbus Defence and Space 41 / 47

Page 42: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

OBS in FTGS Entwicklungsumgebung

Open Build Service Einbindung transparent für KundenEntwicklungsabläufe automatisiertInteraktion nur im Fehlerfall (Software baut nicht mehr)

Benachrichtigung des Hauptentwicklers der KomponenteBenachrichtigung des letzten GIT Committers der KomponenteBereitstellung der Logdatei

B1 Systems GmbH CI bei Airbus Defence and Space 42 / 47

Page 43: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

FTGS Entwicklungsumgebung ausEntwicklersicht

B1 Systems GmbH CI bei Airbus Defence and Space 43 / 47

Page 44: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Fazit

B1 Systems GmbH CI bei Airbus Defence and Space 44 / 47

Page 45: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Fazit

DON’Ts:Deployment von Tarball/Binary-Blobs via rsync unter der Hand,ohne Kenntnisse des Package Management SystemDeployment durch automatisierte Fetch-Skriptedas Rad neu erfinden . . .Bauen von Softwarepaketen (RPM, DEB, . . . ) aufEntwickler-Workstation von Hand

B1 Systems GmbH CI bei Airbus Defence and Space 45 / 47

Page 46: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

FazitDOs:

Nutze den Open Build ServiceDie „Power“ von Continuous Integration und der ExtremeProgramming Ära nutzen!Nur einen Software-Stand pflegen:

für verschiedene Linux Distributionen, Releases oder ServicePacksfür verschiedene Architekturen (x86_64, i586, s390x, ia64,ppc64, pcc, ARM, . . . ). . . in einem Aufwasch: Cross-Distribution-ArchitecturePackaging

erhöhte Sicherheits-/Integritätsanforderungen? Eigene Paketemit eigenem Schlüssel signieren!

B1 Systems GmbH CI bei Airbus Defence and Space 46 / 47

Page 47: Softwarepaketierung und Continuous Integration bei Airbus Defence and Space

Vielen Dank für Ihre Aufmerksamkeit!Bei weiteren Fragen wenden Sie sich bitte an [email protected]

oder +49 (0)8457 - 931096

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development