+ All Categories
Home > Documents > Softwarepaketierung und Continuous Integration bei · PDF fileSoftwarepaketierung und...

Softwarepaketierung und Continuous Integration bei · PDF fileSoftwarepaketierung und...

Date post: 30-Mar-2018
Category:
Upload: dothu
View: 218 times
Download: 3 times
Share this document with a friend
47
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space CeBIT 2015 17. März 2015 Christian Schneemann System Management & Monitoring Architect B1 Systems GmbH [email protected] B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development
Transcript

Softwarepaketierung und ContinuousIntegration bei Airbus Defence andSpaceCeBIT 2015 17. März 2015

Christian SchneemannSystem Management & Monitoring Architect

B1 Systems [email protected]

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

Vorstellung B1 Systems

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

Beratung & ConsultingSupportEntwicklungTrainingBetriebLösungen

dezentrale Strukturen

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 2 / 47

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 GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 3 / 47

Ausgangssituation Airbus Defence and SpaceFlight Test Ground Station (FTGS)

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 4 / 47

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 GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 5 / 47

Alte FTGS Entwicklungsumgebung

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 6 / 47

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 GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 7 / 47

Motivation

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 8 / 47

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 GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 9 / 47

Anforderungen

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 10 / 47

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 GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 11 / 47

Cross-Platform Development

Zielplattform: Linux und WindowsSoftware Releases unterstützen verschiedene:

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

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 12 / 47

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 GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 13 / 47

Konzept

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 14 / 47

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 GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 15 / 47

Ziele

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 16 / 47

Build Engineering

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

ZielplattformenThird Party APIs

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 17 / 47

Build Engineering

vom Code Push zum neuen Software Release in Minuten!

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 18 / 47

Build Engineering

vom Code Push zum neuen Produkt-Release innerhalb einerStunde!

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 19 / 47

Build Engineering

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

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 20 / 47

Neue FTGS Entwicklungsumgebung

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 21 / 47

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

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 22 / 47

Neue FTGS Entwicklungsumgebung

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 23 / 47

Entwicklungsworkflow

B1 Systems GmbHSoftwarepaketierung 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) 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 GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 25 / 47

CI-Workflow

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 26 / 47

CI-Workflow

B1 Systems GmbHSoftwarepaketierung 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

Deployment aus.3 Deployment direkt auf NFS Share inklusive Snapshot.

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 28 / 47

Software Staging

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 29 / 47

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 GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 30 / 47

Maintenance von Releases

Jede Staging-Stufe und jedes Release ist ein OBS-Projekt.Maintenance eines Pakets erfolgt unter Verwendung von GitBranches durch Entwickler.Releases sind „abgehängte“ und konsistente Produkt-Snapshots.

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 31 / 47

FTGS Software Staging mit OBS

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 32 / 47

Open Build Service

B1 Systems GmbHSoftwarepaketierung 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 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 GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 34 / 47

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 GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 35 / 47

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 GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 36 / 47

Open Build Service: Architektur

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 37 / 47

OBS: Build Dependency Handling

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 38 / 47

OBS: Build Dependency Handling

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 39 / 47

Integration des Open Build Service

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 40 / 47

Integration des Open Build Service

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 41 / 47

OBS in FTGS Entwicklungsumgebung

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

Benachrichtigung des EntwicklersBereitstellung der Logdatei

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 42 / 47

FTGS Entwicklungsumgebung ausEntwicklersicht

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 43 / 47

Fazit

B1 Systems GmbHSoftwarepaketierung 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 SystemDeployment durch automatisierte Fetch-Skriptedas Rad neu erfinden . . .Bauen von Softwarepaketen (RPM, DEB, . . . ) aufEntwickler-Workstation von Hand

B1 Systems GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 45 / 47

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 GmbHSoftwarepaketierung und Continuous

Integration bei Airbus Defence and Space 46 / 47

Vielen Dank für Ihre Aufmerksamkeit!

Bei weiteren Fragen wenden Sie sich bitte an [email protected] +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


Recommended