Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CONTAINERIZED DEVELOPMENT INFRASTRUCTURE
Document Type and Number:
WIPO Patent Application WO/2020/249398
Kind Code:
A1
Abstract:
The invention relates to a containerized development infrastructure, having at least one first container which has at least one first software packet for at least one part of the development infrastructure; at least one second container which has at least one second software packet for at least one part of the development infrastructure, and at least one container engine on at least one computing unit, said container engine being designed to generate and run the at least two containers.

Inventors:
BIRK GUNTHER (DE)
GELBKE LARS (DE)
Application Number:
PCT/EP2020/064720
Publication Date:
December 17, 2020
Filing Date:
May 27, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
G06F9/455; G06F8/60; G06F8/20
Other References:
NOAH BURRELL: "What is Microclimate? An Overview of Getting Started on Microclimate", 3 August 2018 (2018-08-03), XP055650907, Retrieved from the Internet [retrieved on 20191209]
ECLIPSE FOUNDATION: "Eclipse Che | Next-Generation Eclipse IDE, Cloud IDE, and Workspace Server", 10 May 2019 (2019-05-10), XP055650912, Retrieved from the Internet [retrieved on 20191209]
Download PDF:
Claims:
Patentansprüche

1. Containerisierte Entwicklungsinfrastruktur (1), aufwei send :

a . Mindestens einen ersten Container ( 12 ) aufweisend mindestens ein erstes Softwarepaket für zumindest einen Teil der Entwicklungsinfrastruktur ; b . Mindestens einen zweiten Container ( 14 ) aufweisend mindestens ein zweites Softwarepaket für zumindest einen Teil der Entwicklungsinfrastruktur ; und c . Mindestens eine Container-Engine (10) auf mindes tens einer Recheneinheit, eingerichtet zum Erstel len und Aus führen der mindestens zwei Container

( 12 , 14 ) ; sowie d . Mindestens eine zentrale Container-Registry zur

Verwaltung, Lagerung und/oder Bereitstellung des mindestens einen ersten Containers ( 12 ) und/oder des mindestens einen zweiten Containers ( 14 ) .

2. Containerisierte Entwicklungsinfrastruktur (1) nach An spruch 1 , wobei die zentrale Container-Registry eine zentrale Lagerung der erzeugten Container ( 12 , 14 ) er möglicht .

3. Containerisierte Entwicklungsinfrastruktur (1) nach An spruch 1 oder 2 , wobei die erzeugten Container ( 12 , 14 ) von der zentralen Container-Registry auf eine oder meh rere Recheneinheiten übertragen und auf diesen ausge führt werden können .

4. Containerisierte Entwicklungsinfrastruktur (1) nach ei nem der vorstehenden Ansprüche, wobei die Container ( 12 , 14 ) zunächst über von der Container-Engine (10) bereit gestellte Transfer-Mechanismen in eine zentral zugängli che Container-Registry geladen werden . 5. Containerisierte Entwicklungsinfrastruktur (1) nach ei nem der vorstehenden Ansprüche, aufweisend :

Container-Netzwerk (1), wobei die Container-Engine eine Container-Engine (10) ist, ausgewählt aus der Gruppe be stehend aus : Docker, Kubernetes , LXD und Rocket .

6. Containerisierte EntwicklungsInfrastruktur (1) nach ei nem der vorstehenden Ansprüche, aufweisend :

Container-Netzwerk (1), wobei die Container-Engine (10) durch eine SoftwarebereitStellungsanwendung eingerichtet wird, ausgewählt aus der Gruppe bestehend aus : Terrform, Ansible und Vagrant .

7. Containerisierte EntwicklungsInfrastruktur (1) nach ei nem der vorstehenden Ansprüche, aufweisend :

Container-Netzwerk (1), wobei die Container-Engine (10), der mindestens eine erste Container ( 12 ) und/oder der mindestens eine zweite Container ( 14 ) von einem Backend- Management Service verwaltet wird, umfassend Management- und/oder

Monitoring-Funktionen, wie das Anmelden der Einheiten des Netzwerks (1) und/oder deren zugehörigen Rechenein heiten .

Description:
Beschreibung

Containerisierte EntwicklungsInfrastruktur

1. Technisches Gebiet

Die Erfindung betrifft eine containerisierte Entwicklungsinf rastruktur. Die Erfindung kann in j eglichen Software-bezo- genen Bereichen genutzt und eingesetzt werden .

2. Stand der Technik

DevOps ist aus dem Stand der Technik bekannt . DevOps be schreibt einen Prozessverbesserungs-Ansatz aus den Bereichen der Softwareentwicklung und Systemadministration . DevOps ist ein Kunstwort aus den Begriffen Development (Entwicklung) und IT Operations (IT-Betrieb) . DevOps soll durch gemeinsame An reize, Prozesse und Software-Werkzeuge ( tools) eine effekti vere und effizientere Zusammenarbeit der Bereiche Dev, Ops und Qualitätssicherung (QS ) ermöglichen . Figur 2 zeigt eine herkömmliche De Ops-EntwicklungsInfrastruktur gemäß dem Stand der Technik, auch Toolchain genannt .

Herkömmlicherweise bauen Configuration Manager, Information Technology und Entwickler für spezifische Bereiche eigene Um gebungen auf und warten diese . Die Configuration Manager sind meist von der eigentlichen Entwicklung getrennt . Die Wartung dieser Umgebungen erfordert jedoch meist mehrere verschiedene Expertisen und neigt dazu unvollständig, aufwendig in der Pflege und fehleranfällig zu sein .

Die vorliegende Erfindung stellt sich daher die ob ektive technische Aufgabe eine containerisierte EntwicklungsInfra struktur bereitzustellen, welche zuverlässiger und effizien ter ist . 3. Zusammenfassung der Erfindung

Die oben genannte Aufgabe wird erfindungsgemäß durch eine containerisierte Entwicklungsinfrastruktur gelöst, aufwei send : a. Mindestens einen ersten Container aufweisend mindestens ein erstes Softwarepaket für zumindest einen Teil der EntwicklungsInfrastruktur; b . Mindestens einen zweiten Container aufweisend mindestens ein zweites Softwarepaket für zumindest einen Teil der EntwicklungsInfrastruktur; und c . Mindestens eine Container-Engine auf mindestens einer Recheneinheit, eingerichtet zum Erstellen und Aus führen der mindestens zwei Container .

Die Erfindung betrifft eine containerisierte oder container basierte Entwicklungsinfrastruktur . Beispielsweise ist die EntwicklungsInfrastruktur eine IT-Infrastruktur, wie DevOps- Infrastruktur oder auch DevOps-Toolchain genannt .

Die erfindungsgemäße containerisierte EntwicklungsInfrastruk tur weist eine Mehrzahl von Containern für die verschiedenen Teile der gesamten EntwicklungsStruktur auf . Die Container weisen jeweils ein Softwarepaket auf . Mit anderen Worten, ist j eweils eine Anwendung bsp . mit Bibliotheken und deren Abhän gigkeiten in einem Container zusammenpackt . Die Container können dementsprechend als abgeschlossene Einheiten betrach tet werden .

Die Container bieten folglich einen logischen Mechanismus der PaketerStellung, der darauf beruht, dass Anwendungen von ih rer Aus führungsumgebung abstrahiert werden . Mit dieser Ent kopplung können containerbasierte Anwendungen einfach und konsistent bereitgestellt werden, unabhängig davon, ob es sich bei der Zielumgebung um ein privates Rechenzentrum, die öffentliche Cloud oder auch um den persönlichen Laptop eines Entwicklers handelt . Die Containerisierung sorgt dafür, dass sich Entwickler auf ihre Anwendungslogik und -abhängigkeiten konzentrieren können, während sich operative IT-Teams auf die Bereitstellung und Verwaltung konzentrieren dürfen, ohne sich Gedanken über Anwendungsdetails wie spezifische Softwarever sionen und Konfigurationen machen zu müssen .

Die Container-Engine kann die Container erstellen sowie diese Container anschließend ausführen . Der Vorteil liegt darin, dass die Erstellung der Container in effizienter Art und Wei se durch ein und dieselbe Container-Engine erfolgt . Dabei können Beschreibungsdateien genutzt werden, welche eine voll ständig automatisiert Container Erzeugung erlauben . Ferner können sie einer VersionsVerwaltung unterliegen .

Die containerisierte EntwicklungsInfrastruktur kann weiterhin mindestens eine zentrale Container-Registry zur Verwaltung, Lagerung und/oder Bereitstellung des mindestens einen ersten Containers und/oder des mindestens einen zweiten Containers aufweisen . Diese zentrale Container-Registry ermöglicht eine zentrale Lagerung der erzeugten Container .

Die erzeugten Container können von der zentralen Container- Registry auf eine oder mehrere Recheneinheiten übertragen und auf diesen ausgeführt werden . Beispielhafte Recheneinheiten sind Edge Computing Device, Source Code Server, Build Server, Entwicklungsrechner . Die Recheneinheit führt anschließend die Container und die darin enthaltene Software aus , um die Auf gabe zu erfüllen . Eine in der Cloud laufende Recheneinheit ist somit in der Lage den Container, welcher die Software zur Übersetzung von Source-Code beinhaltet, aus der zentralen Container-Registry zu laden, anschließend auszuführen und so mit die eigentliche Source-Code Übersetzung durchzuführen .

Hinsichtlich einer beispielhaften DevOps-Toolchain als Ent wicklungsinfrastruktur gemäß Figur 2 , erfüllen die Container j eweils eine bestimmte Funktion oder Aufgabe um zusammenge- nommen das Endprodukt zu bilden . Der Teil der Entwicklungs- infrastruktur kann entsprechend ein Tool oder eine Anwendung aus der DevOps-Toolchain sein, wie Build, Test, Release gemäß Figur 2. Der Teil der EntwicklungsInfrastruktur kann an den entsprechenden Host oder die Host-Instanz , insbesondere jede beliebige Recheneinheit bereitgestellt werden .

Die erfindungsgemäße Containerisierung ermöglicht, dass die Integration von Entwicklung mit Operations durchgängig ange- boten und somit die DevOps Schleife geschlossen werden kann . Dies wiederum ermöglicht maßgeschneiderte und effiziente Lö sungen mit deutlich schnelleren Release-Zyklen, verbesserte Produkt-Qualität und schnellere Reaktionszeiten auf Kundenan forderungen oder andere Bedingungen .

In einer Ausgestaltung ist die Container-Engine eine Contai ner-Engine, ausgewählt aus der Gruppe bestehend aus : Docker, Kubernetes , LXD und Rocket .

In einer weiteren Ausgestaltung wird die Container-Engine durch eine SoftwarebereitStellungsanwendung eingerichtet, ausgewählt aus der Gruppe bestehend aus : Terraform, Ansible und Vagrant .

Dementsprechend können unterschiedliche Container-Engines und deren Software-Anwendungen eingesetzt werden . Dadurch kann vorteilhafterweise abhängig von der konkreten Anwendung der containerisierten EntwicklungsInfrastruktur, dem zugrundelie genden System, Nutzeranforderungen oder anderen Bedingungen flexibel die Container-Engine ausgewählt sowie angepasst wer den .

In einer weiteren Ausgestaltung wird die Container-Engine, der mindestens eine erste Container und/oder der mindestens eine zweite Container von einem Backend-Management Service verwaltet . Der Begriff „Service" steht für Dienst, Dienst leistung, Software-Dienst oder Software-Dienstleistung . Das Verwalten beinhaltet unterschiedliche Management- und/oder Monitoring-Funktionen, wie das Anmelden der Einheiten des Netzwerks und/oder deren zugehörigen Recheneinheiten . Die Verwaltung kann remote erfolgen . Dadurch kann die gesamte containerisierte EntwicklungsInfrastruktur auf effiziente Art und Weise verwaltet und/oder überwacht werden .

Der administrative Aufwand für den Nutzer, wie Instandhalter der EntwicklungsInfrastruktur, wird dadurch vorteilhafter weise auf die Services verlagert und somit entlastet, ohne dabei auf Flexibilität und Vertraulichkeit zu verzichten . Dadurch wird die Qualität, Stabilität und Verfügbarkeit der einzelnen Services erhöht was zu deutlich effizienteren Ent wicklungszyklen und somit Zeit und Kosten Ersparnis führt .

4. Kurze Beschreibung der Zeichnungen

In der folgenden detaillierten Beschreibung werden vorliegend bevorzugte Aus führungs formen der Erfindung weiter beschrieben mit Bezug auf die folgenden Figuren .

FIG 1 zeigt ein erfindungsgemäßes containerisierte Ent wicklungsinfrastruktur .

FIG 2 zeigt eine DevOps-EntwicklungsStruktur gemäß dem

Stand der Technik .

5. Beschreibung der bevorzugten Aus führungs formen

Im Folgenden werden bevorzugte Ausführungs formen der vorlie genden Erfindung in Bezug auf die Figuren beschrieben .

Figur 1 zeigt ein erfindungsgemäßes containerisierte Entwick lungsinfrastruktur 1. Die containerisierte EntwicklungsInfra struktur 1 weist eine Container-Engine 10 auf, welche die Container 12 und 14 erstellt sowie ausgeführt .

In einer bevorzugten Aus führungs form werden die Container 12 , 14 zunächst über von der Container-Engine 10 bereit gestellte Transfer-Mechanismen in eine zentral zugängliche Container- Registry geladen. Die bereitgestellten Container 12 und 14 werden danach von beliebigen Recheneinheit mit der entspre chenden Container-Engine 10 geladen und ausgeführt .

Figur 2 zeigt eine herkömmliche DevOps-

EntwicklungsInfrastruktur gemäß dem Stand der Technik, auch Toolchain genannt, wie weiter oben im einleitenden Teil der Beschreibung im Detail erläutert . Im Hinblick auf Figur 2 kann die containerisierte EntwicklungsInfrastruktur gemäß ei ner Ausführungsform der Erfindung zwei Container 12 und 14 für das Tool Build&Tool oder Release der Toolchain aufweisen . Eine Docker Container-Engine erzeugt zwei entsprechende aus führbare Container für die zwei bereitgestellten Container 12 und 14.