Startseite Themen containers Was sind Container?
Red Hat OpenShift on IBM Cloud kennenlernen Melden Sie sich für Cloud-Updates an
Illustration mit Collage aus Piktogrammen von Computerbildschirm, Server, Wolken, verbundenen Punkten

Veröffentlicht: 9. Mai 2024
Mitwirkende: Stephanie Susnjara, Ian Smalley

Was sind Container?

Container sind ausführbare Softwareeinheiten, die den Anwendungscode zusammen mit seinen Bibliotheken und Abhängigkeiten verpacken. Sie ermöglichen die Ausführung von Code in jeder Computerumgebung, sei es eine Desktop-, eine traditionelle IT- oder eine Cloud-Infrastruktur.

Container machen sich eine Form der Betriebssystemvirtualisierung zunutze, bei der Funktionen des Betriebssystemkernels (z. B. Linux-Namespaces und Cgroups, Windows-Silos und Jobobjekte) verwendet werden können, um Prozesse zu isolieren und die Menge an CPU, Speicher und Festplatte zu steuern, auf die diese Prozesse zugreifen können.

Container sind mobiler und ressourceneffizienter als Virtual Machines (VMs) und wurden zu den de facto Computing-Einheiten moderner cloudnativer Anwendungen. Darüber hinaus sind Container für die zugrunde liegende IT-Infrastruktur, die hybride Multicloud-Umgebungs-Einstellungen ermöglicht, von entscheidender Bedeutung – die Kombination von On-Premises, Private CloudPublic Cloud und mehr als einem Cloud-Service von mehr als einem Cloud-Anbieter.

Laut einem Bericht von Business Research Insights1 wurde der weltweite Markt für Containertechnologie im Jahr 2021 auf 496,4 Millionen US-Dollar beziffert und wird bis 2031 voraussichtlich 3123,42 Millionen US-Dollar erreichen, mit einer durchschnittlichen jährlichen Wachstumsrate (CAGR) von 19,8 %.

Strategische App-Modernisierung bringt digitale Transformation voran

Die strategische Anwendungsmodernisierung ist ein Schlüssel zum Transformationserfolg, der den Jahresumsatz steigern und die Wartungs- und Betriebskosten senken kann.

Ähnliche Inhalte

IBM Newsletter abonnieren

Container versus virtuelle Maschinen

Eine Möglichkeit, einen Container besser zu verstehen, besteht darin, zu verstehen, wie er sich von einer herkömmlichen Virtual Machine (VM) unterscheidet, die eine virtuelle Darstellung oder Emulation eines physischen Computers ist. Ein virtueller Computer wird oft als Gast bezeichnet, während der physische Computer, auf dem er ausgeführt wird, als Host bezeichnet wird.

Virtualisierungstechnologie macht VMs möglich. Ein Hypervisor – eine kleine Softwarebene – weist jeder VM physische Rechenressourcen (z. B. Prozessoren, Arbeitsspeicher, Speicher) zu. Es hält jede VM von den anderen getrennt, sodass sie sich nicht gegenseitig stören. Jede VM enthält dann ein Gastbetriebssystem und eine virtuelle Kopie der Hardware, die für die Ausführung des Betriebssystems erforderlich ist, sowie eine Anwendung und die zugehörigen Bibliotheken und Abhängigkeiten. VMware war eines der ersten Unternehmen, das Virtualisierungstechnologie auf Hypervisor-Basis entwickelte und vermarktete.

Anstatt die zugrunde liegende Hardware zu virtualisieren, virtualisieren Container das Betriebssystem (in der Regel Linux), so dass jeder einzelne Container nur die Anwendung und ihre Bibliotheken und Abhängigkeiten enthält. Das Fehlen des Gastbetriebssystems ist der Grund, warum Container so leichtgewichtig und damit schneller und portabler als VMs sind.

Container und Virtual Machines schließen sich nicht gegenseitig aus. Ein Unternehmen könnte beispielsweise beide Technologien nutzen, indem es Container in VMs ausführt, um die Isolierung und Sicherheit zu erhöhen, und bereits installierte Tools für Automatisierung, Backups und Überwachung nutzt. 

Einen genaueren Einblick in diesen Vergleich erhalten Sie unter „Container vs. VMs: Was ist der Unterschied?“ und schauen Sie sich dieses Video an:

Die wichtigsten Vorteile von Containern

Der Hauptvorteil von Containern, insbesondere im Vergleich zu einer VM, besteht darin, dass sie ein Abstraktionsniveau bieten, das sie leichtgewichtig und portabel macht. Zu ihren Hauptvorteilen gehören:

Leichtgewichtig

Container geben den Computer-Betriebssystemkernel frei, sodass keine vollständige Betriebssysteminstanz pro Anwendung erforderlich ist und Containerdateien klein und einfach auf Ressourcen gespeichert werden können. Die geringere Größe eines Containers, insbesondere im Vergleich zu einer VM, ermöglicht eine schnellere Ausführung und eine bessere Unterstützung von cloudnativen Anwendungen, die horizontal skalierbar sind.

Übertragbar und plattformunabhängig

Container tragen alle ihre Abhängigkeiten mit sich. Das bedeutet, dass Software einmal geschrieben und dann ausgeführt werden kann, ohne dass sie in verschiedenen Computing-Umgebungen (z. B. Laptops, Cloud und lokal) neu konfiguriert werden muss.

Unterstützt moderne Entwicklung und Architektur

Aufgrund ihrer Portabilität und Konsistenz über verschiedene Plattformen hinweg sowie ihrer geringen Größe eignen sich Container ideal für moderne Entwicklungs- und Anwendungsmuster – wie DevOpsServerlose und Microservices –, die durch regelmäßige Code-Bereitstellungen in kleinen Schritten erstellt werden.

Verbesserte Auslastung

Wie VMs ermöglichen Container Entwicklern und Betreibern, die CPU- und Speicherauslastung physischer Maschinen zu verbessern. Container gehen noch weiter, indem sie eine Microservices-Architektur ermöglichen, sodass Anwendungskomponenten granularer bereitgestellt und skaliert werden können. Dies ist eine attraktive Alternative zum Hochskalieren einer gesamten monolithischen Anwendung, wenn nur eine einzelne Komponente mit ihrer Last zu kämpfen hat.

Kürzere Entwicklungszeit

Container sind weniger auf Systemressourcen angewiesen, wodurch sie schneller verwaltet und bereitgestellt werden können als VMs. Diese Funktion hilft, Geld und Zeit bei der Anwendungsbereitstellung zu sparen und die Markteinführungszeit zu optimieren. 

In einer IBM-Umfrage berichteten Entwickler und IT-Führungskräfte von vielen weiteren Vorteilen von Containern. Lesen Sie den vollständigen Bericht: Container im Unternehmen.

Was ist Containerisierung?

Container sind auf die Containerisierung angewiesen, die Verpackung von Softwarecode mit nur dem Betriebssystem (OS) und seinen relevanten Umgebungsvariablen, Konfigurationsdateien, Bibliotheken und Software-Abhängigkeiten.

Das Ergebnis ist ein Container-Image, das auf einer Container-Plattform ausgeführt wird. Ein Container-Image stellt Binärdaten dar, die eine Anwendung und alle ihre Softwareabhängigkeiten enthalten. 

Die Containerisierung ermöglicht es, Anwendungen „einmal zu schreiben und überall auszuführen”, was die Portabilität erhöht, den Entwicklungsprozess beschleunigt, die Bindung an Cloud-Anbieterbindung verhindert und vieles mehr. 

Die Entwicklung der Containerisierung

Containerisierung und Prozessisolation gibt es schon seit Jahrzehnten2. Ein historischer Moment in der Entwicklung von Containern war 1979 die Entwicklung von Chroot, das Teil des Betriebssystems Unix Version 7 ist. Mit Chroot wurde das Konzept der Prozessisolation eingeführt, indem es den Dateizugriff einer Anwendung auf ein bestimmtes Verzeichnis (das Stammverzeichnis) und dessen Unterverzeichnisse (oder Unterprozesse) beschränkte.

Ein weiterer bedeutender Meilenstein wurde 2008 erreicht, als Linux-Container (LXCs) in den Linux-Kernel implementiert wurden, wodurch die Virtualisierung für eine einzelne Instanz von Linux vollständig ermöglicht wurde. Im Laufe der Jahre haben Technologien wie FreeBSD-Jails und AIX-Workload-Partitionen eine ähnliche Virtualisierung auf Betriebssystemebene ermöglicht.

Während LXC eine bekannte Laufzeitumgebung bleibt und Teil des Linux-Distributions- und herstellerneutralen Projekts3 ist, sind neuere Linux-Kernel-Technologien verfügbar. Ubuntu, ein modernes Open-Source-Linux-Betriebssystem, bietet diese Funktion ebenfalls. 

Sehen Sie sich das Video an, um mehr über die Containerisierung zu erfahren:

Docker und das moderne Container-Zeitalter

Die meisten Entwickler betrachten das Jahr 2013 mit der Einführung von Docker als Beginn des modernen Container-Zeitalters. Docker ist eine Open-Source-Containerisierungs-Softwareplattform, die als  Platform as a Service (PaaS) fungiert und Entwicklern die Erstellung, Bereitstellung, Ausführung, Aktualisierung und Verwaltung von Containern ermöglicht.

Docker verwendet den Linux-Kernel (die Basiskomponente des Betriebssystems) und Kernel-Funktionen (wie Cgroups und Namespaces), um Prozesse zu trennen, damit sie unabhängig voneinander ausgeführt werden können. Docker konvertiert eine Anwendung und ihre Abhängigkeiten im Wesentlichen in einen virtuellen Container, der auf jedem Windows-, macOS- oder Linux-basierten Computersystem ausgeführt werden kann.

Docker basiert auf einer Client-Server-Architektur, wobei Docker Engine als zugrunde liegende Technologie dient. Docker bietet ein Image-basiertes Bereitstellungsmodell, das die gemeinsame Nutzung von Apps in verschiedenen Computerumgebungen vereinfacht. 

Um etwaige Missverständnisse auszuräumen: Der Namensgeber der Docker-Containerplattform bezieht sich auch auf Docker, Inc.4, das Produktivitätswerkzeuge auf der Grundlage seiner Open-Source-Containerisierungsplattform und des Docker-Open-Source-Ökosystems und der Docker-Community5 entwickelt.

Im Jahr 2015 gründeten Docker und andere führende Unternehmen der Container-Industrie die Open Container Initiative6 , die Teil der Linux Foundation ist. Dabei handelt es sich um eine offene Verwaltungsstruktur, die speziell zu dem Zweck gegründet wurde, offene Branchenstandards für Containerformate und Laufzeitumgebungen zu schaffen.

Docker ist mit einem Marktanteil von 82,84 % das meistgenutzte Tool zur Containerisierung.7

Containerorchestrierung mit Kubernetes

Der Betrieb von Hunderttausenden von Containern in einem System kann unüberschaubar werden und erfordert eine Managementlösung zur Orchestrierung. 

An dieser Stelle kommt die Container-Orchestrierung zum Einsatz, die es Unternehmen ermöglicht, große Mengen in ihrem gesamten Geschäftsablauf zu verwalten, und Folgendes bietet: 

  • Bereitstellung
  • Redundanz
  • Zustandsüberwachung
  • Ressourcenzuweisung
  • Skalierung und Lastenausgleich
  • Wechsel zwischen physischen Hosts

Neben anderen Container-Orchestrierungsplattformen (z. B. Apache Mesos, Nomad, Docker Swarm) hat sich Kubernetes zum Branchenstandard entwickelt.

Die Kubernetes-Architektur besteht aus aktiven Clustern, die es Containern ermöglichen, auf mehreren Maschinen und in verschiedenen Umgebungen ausgeführt zu werden. Jeder Cluster besteht in der Regel aus Worker-Knoten, auf denen die containerisierten Anwendungen ausgeführt werden, und Steuerungsplan-Knoten, die den Cluster steuern. Die Steuerungsebene fungiert als Orchestrator des Kubernetes-Clusters. Sie umfasst mehrere Komponenten: den API-Server (verwaltet alle Interaktionen mit Kubernetes), den Steuerungsmanager (verwaltet alle Steuerungsprozesse), den Cloud-Controller-Manager (die Schnittstelle zur API des Cloud-Providers) usw. Worker-Knoten führen Container mithilfe von Container-Laufzeiten wie Docker aus. Pods, die kleinsten bereitstellbaren Einheiten in einem Cluster, enthalten einen oder mehrere App-Container und teilen Ressourcen wie Speicher- und Netzwerkinformationen.

Kubernetes ermöglicht es Entwicklern und Betreibern, den gewünschten Zustand ihrer gesamten Containerumgebung über YAML-Dateien zu deklarieren. Anschließend übernimmt Kubernetes die gesamte Verarbeitung, um diesen Zustand einzurichten und aufrechtzuerhalten. Zu den Aktivitäten gehören das Bereitstellen einer bestimmten Anzahl von Instanzen einer bestimmten Anwendung oder Workloads, das Neustarten dieser Anwendung bei einem Ausfall, der Lastausgleich, die automatische Skalierung, Bereitstellungen ohne Ausfallzeiten und vieles mehr. Die Container-Orchestrierung mit Kubernetes ist auch für die kontinuierliche Integration und Bereitstellung (CI/CD) oder die DevOps-Pipeline von entscheidender Bedeutung – was ohne  Automatisierung nicht möglich wäre.

Im Jahr 2015 spendete Google Kubernetes an die Cloud Native Computing Foundation (CNCF)8, die unter der Schirmherrschaft der Linux Foundation stehende und herstellerunabhängige Open-Source-Plattform für Cloud-Computing. Seitdem hat sich Kubernetes zum weltweit am weitesten verbreiteten Container-Orchestrierungstool für die Ausführung von containerbasierten Workloads entwickelt. Einem CNCF-Bericht9 zufolge ist Kubernetes das zweitgrößte Open-Source-Projekt der Welt (nach Linux) und das primäre Container-Orchestrierungstool für 71 % der Fortune-100-Unternehmen. 

Was ist Container as a Service (CaaS)?

Container as a Service (CaaS) ist ein  Cloud-Computing-Service, der es Entwicklern ermöglicht, containerisierte Anwendungen zu verwalten und bereitzustellen, sodass Unternehmen jeder Größe Zugang zu portablen, leicht skalierbaren Cloud-Lösungen erhalten.

CaaS bietet eine cloudbasierte Plattform, mit der Benutzer containerbasierte Virtualisierungs- und Containerverwaltungsprozesse optimieren können. CaaS-Anbieter bieten unzählige Funktionen, darunter (aber nicht ausschließlich) Container-Laufzeiten, Orchestrierungsebenen und persistente Speicherverwaltung.

Ähnlich wie Infrastructure as a Service (IaaS), Platform as a Service (PaaS) und Software as a Service (SaaS) ist CaaS von Cloud-Service-Anbietern (z. B. AWS, Google Cloud Services, IBM Cloud, Microsoft Azure) über ein nutzungsbasiertes Preismodell verfügbar, bei dem die Benutzer nur für die von ihnen genutzten Dienste bezahlen. 

Anwendungsfälle für Container

Unternehmen nutzen Container für folgende Zwecke:

Microservices

Container sind klein und leicht, weshalb sie sich gut für Microservice-Architekturen eignen, bei denen Anwendungen aus vielen, lose gekoppelten und unabhängig voneinander einsetzbaren kleineren Diensten aufgebaut sind.

DevOps

Die Kombination von Microservices als Architektur und Containern als Plattform ist eine gemeinsame Grundlage für viele Entwicklungs- und Betriebsteams, die DevOps-Methoden anwenden. So unterstützen Container beispielsweise DevOps-Pipelines, einschließlich der Implementierung von kontinuierlicher Integration und kontinuierlicher Bereitstellung (CI/CD).

Hybrid und Multicloud

Da Container überall konsistent ausgeführt werden können – auf Laptops, On-Premises- und Cloud-Umgebungen – sind sie eine ideale zugrunde liegende Architektur für Hybrid Cloud- und Multicloud-Szenarien, in denen Unternehmen in einer Mischung aus mehreren Public Clouds in Kombination mit ihrem eigenen Rechenzentrum arbeiten.

Modernisierung und Migration von Anwendungen

Einer der gängigsten Ansätze zur Anwendungsmodernisierung ist die Containerisierung von Anwendungen zur Vorbereitung der Cloud-Migration.

KI- und ML-Workloads

Durch Containerisierung (d. h. Docker-Images, die mit Kubernetes orchestriert werden) können DevOps- Pipelines schnell Anwendungen für künstliche Intelligenz (KI) und maschinelles Lernen (ML) in Cloud-Computing-Umgebungen bereitstellen.

Generative KI

Container bieten auch eine effiziente Möglichkeit, die großen Sprachmodelle (LLMs) im Zusammenhang mit generativer KI bereitzustellen und zu verwalten, und sorgen in Verbindung mit Orchestrierungstools für Portabilität und Skalierbarkeit. Darüber hinaus können Änderungen am LLM schnell in ein neues Container-Image gepackt werden, was die Entwicklung und das Testen beschleunigt.

Das erweiterte Container-Ökosystem: Istio und Knative

Neben Kubernetes sind zwei der beliebtesten Projekte im Containerökosystem Istio und Knative.

Istio Service Mesh

Da Entwickler Container verwenden, um Microservice zu erstellen und auszuführen, gehen die Belange des Managements über die Lebenszyklusbetrachtungen einzelner Container hinaus und betreffen die Art und Weise, wie eine große Anzahl kleiner Dienste – oft als „Service Mesh” bezeichnet – miteinander verbunden sind und zueinander in Beziehung stehen. Istio erleichtert Entwicklern die Bewältigung der damit verbundenen Herausforderungen in Bezug auf Erkennung, Datenverkehr, Überwachung, Sicherheit und mehr. 

Knativ und Serverless

Knative (ausgesprochen 'key-neytive') ist eine Open-Source-Plattform, die einen einfachen Einstieg in das serverlose Computing ermöglicht. Dabei handelt es sich um ein Modell für die Entwicklung und Ausführung von Cloud-Computing-Anwendungen, mit dem Entwickler Anwendungscode erstellen und ausführen können, ohne Server oder Backend-Infrastruktur bereitstellen oder verwalten zu müssen.

 Anstatt eine laufende Code-Instanz bereitzustellen, die im Leerlauf auf Anfragen wartet, wird der Code bei Bedarf hoch- oder herunterskaliert, wenn die Nachfrage schwankt. Wenn der Code schließlich nicht mehr gebraucht wird, wird er wieder entfernt. Serverless verhindert die Verschwendung von Rechenkapazität und Energie und senkt Kosten, da Sie nur dann für die Ausführung des Codes zahlen, wenn er ausgeführt wird.

Container-Sicherheit und -Governance

Da Container bei der Softwareentwicklung und -bereitstellung in der Hybrid Cloud-Geschäftswelt eine wichtige Rolle spielen, müssen Unternehmen sicherstellen, dass ihre containerisierten Workloads vor externen und internen Sicherheitsbedrohungen geschützt sind.

Container können überall eingesetzt werden, wodurch neue Angriffsflächen in der Umgebung der containerbasierten Umgebung entstehen. Zu den anfälligen Sicherheitsbereichen gehören Container-Images, Image-Register, Container-Laufzeiten, Container-Orchestrierungsplattformen und Host-Betriebssysteme.

Zunächst müssen Unternehmen die Containersicherheit in ihre Sicherheitsrichtlinien und Gesamtstrategie integrieren. Solche Strategien müssen bewährte Sicherheitspraktiken sowie cloudbasierte Sicherheitssoftwaretools umfassen. Dieser ganzheitliche Ansatz sollte so konzipiert sein, dass er containerisierte Anwendungen und die ihnen zugrunde liegende Infrastruktur während des gesamten Container-Lebenszyklus schützt.

Zu den besten Sicherheitspraktiken gehört eine Zero-Trust-Strategie, die davon ausgeht, dass die Sicherheit eines komplexen Netzwerks immer durch externe und interne Bedrohungen gefährdet ist. Darüber hinaus verlangen Container einen DevSecOps -Ansatz. DevSecOps ist ein Sicherheitsansatz, der die Integration von Sicherheitspraktiken in jeder Phase des Softwareentwicklungszyklus automatisiert – vom ersten Entwurf über die Integration, das Testen und die Bereitstellung bis hin zum Deployment.

Unternehmen müssen auch die richtigen Container-Sicherheitstools nutzen, um Risiken zu minimieren. Zu den automatisierten Sicherheitslösungen gehören Konfigurationsmanagement, Zugriffskontrolle, Scannen auf Malware oder Cyberangriffe, Netzwerksegmentierung, Überwachung und vieles mehr. 

Zusätzlich stehen Software-Tools zur Verfügung, die sicherstellen, dass containerisierte Workloads Compliance- und Regulierungsstandards wie der DSGVO, HIPAA usw. entsprechen.

Weiterführende Lösungen
Red Hat OpenShift on IBM Cloud

Red Hat OpenShift on IBM Cloud nutzt OpenShift in öffentlichen und hybriden Umgebungen für Geschwindigkeit, Marktreaktivität, Skalierbarkeit und Zuverlässigkeit.

Red Hat OpenShift on IBM Cloud kennenlernen
IBM Cloud Pak for Applications

Ganz gleich, ob es um die Bereitstellung, die Entwicklung neuer cloudnativer Anwendungen, das Refactoring oder die Umstellung bestehender Anwendungen geht – Cloud Pak for Applications (CP4Apps) deckt alles ab.

Erkunden Sie IBM Cloud Pak for Applications
IBM Cloud Satellite

Mit IBM Cloud Satellite können Sie überall konsistente Cloud-Services starten – lokal, am Edge und in Public-Cloud-Umgebungen.

IBM Cloud Satellite kennenlernen
IBM Cloud Code Engine

Führen Sie Container-Images, Stapeljobs oder Quellcode als serverlose Workloads aus – ohne Größenanpassung, Bereitstellung, Vernetzung oder Skalierung.

IBM Cloud Code Engine kennenlernen
IBM Cloud Container Registry

IBM Cloud Container Registry stellt Ihnen eine private Registry zur Verfügung, mit der Sie Ihre Images verwalten und auf Sicherheitsprobleme überwachen können.

IBM Cloud Container Registry erkunden
IBM Turbonomic

Bestimmen Sie automatisch die richtigen Maßnahmen für die Ressourcenzuordnung – und den richtigen Zeitpunkt, um sicherzustellen, dass Ihre Kubernetes-Umgebungen und geschäftskritischen Anwendungen genau das bekommen, was sie zur Erfüllung Ihrer SLOs benötigen.

IBM Turbonomic kennenlernen
IBM Fusion

Die Fusion Software läuft überall dort, wo Red Hat OpenShift läuft – in der öffentlichen Cloud, vor Ort, auf Bare Metal Servern und auf Virtual Machines. Fusion bietet eine einfache Möglichkeit, Red Hat OpenShift-Anwendungen und IBM Watsonx bereitzustellen.

Entdecken Sie IBM Fusion
Ressourcen Nutzung von Containern im Unternehmen

Eine neue Studie von IBM dokumentiert die rasante Verbreitung von Containern und Kubernetes.

Kombinieren Sie die besten Funktionen der Cloud und der traditionellen IT

Containerorchestrierung ist eine Schlüsselkomponente einer offenen Hybrid-Cloud-Strategie, mit der Sie Workloads von überall aus erstellen und verwalten können.

Was ist Docker?

Docker ist eine Open-Source-Plattform zum Erstellen, Bereitstellen und Verwalten von containerisierten Anwendungen.

Haben Sie eine Container-Strategie?

Die Containerisierung spielt in der modernen Anwendungsentwicklung eine entscheidende Rolle. In diesem Video stellt Chris Rosen vier Anwendungsfälle für Softwareentwicklung und IT-Betrieb vor, die Ihnen dabei helfen, die Leistung und Betriebszeit zu maximieren, die Kosten zu minimieren, agil zu bleiben und die Vorschriften einzuhalten.

Was ist Kubernetes?

Kubernetes, auch bekannt als k8s oder kube, ist eine Open-Source-Container-Orchestrierungsplattform für die Planung und Automatisierung der Bereitstellung, Verwaltung und Skalierung von containerisierten Anwendungen.

Was ist ein Load Balancing?

Beim Lastausgleich wird der Netzwerkverkehr effizient auf mehrere Server verteilt, um die Anwendungsverfügbarkeit zu optimieren und für ein positives Endbenutzererlebnis zu sorgen.

Machen Sie den nächsten Schritt

Red Hat OpenShift on IBM Cloud bietet Entwicklern eine schnelle und sichere Möglichkeit zur Containerisierung und Bereitstellung von Unternehmensworkloads in Kubernetes-Clustern. Entlasten Sie Ihre Teams von mühsamen Routineaufgaben wie Sicherheitsmanagement, Konformitätsmanagement, Implementierungsmanagement und laufendes Lebenszyklusmanagement.

Red Hat OpenShift on IBM Cloud kennenlernen Kostenfrei starten