softwarepaketierung und continuous integration bei airbus defence and space
Post on 18-Jul-2015
158 Views
Preview:
TRANSCRIPT
Softwarepaketierung und ContinuousIntegration bei Airbus Defence andSpaceCeBIT 2015 17. März 2015
Christian SchneemannSystem Management & Monitoring Architect
B1 Systems GmbHschneemann@b1-systems.de
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 info@b1-systems.deoder +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
top related