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
47
Embed
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Softwarepaketierung und ContinuousIntegration bei Airbus Defence andSpaceDB Open Source Workshop, Frankfurt 26. November 2015
gegründet 2004primär Linux/Open Source-Themennational & international tätigüber 70 Mitarbeiterunabhängig von Soft- und Hardware-HerstellernLeistungsangebot:
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
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
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
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
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
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
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
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
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
„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
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
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
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