# OpenShift

OpenShift ist eine von Red Hat entwickelte Produktreihe basierend auf Kubernetes. OpenShift bietet vor allem Features zur Erhöhung der Usability und Sicherheit.

## Architektur

OpenShift baut auf Kubernetes auf und erweitert dieses um einige Funktionen:
* Kubernetes wird mit dem Kommandozeilentool "kubectl" administriert, dieses kann auch OpenShift steuern. OpenShift bietet zusätzlich:
** ein Webinterface zur Administration des Clusters und der Anwendungen.
** das Kommandozeilentool "oc", eine Erweiterung von "kubectl". "oc" bietet vor allem zusätzliche imperative Befehle wie "new-app", "new-build" oder "start-build" an.
* Zur Mandantenfähigkeit sind unterschiedliche IT-Services nicht nur in Kubernetes native Namespaces unterteilt, sondern in die OpenShift spezifische Erweiterung projects. Diese teilen Namespaces durch ein Software-defined Network in unterschiedliche abgeschottete Netzsegmente.
* Containerimages können:
** nativ in OpenShift mit Source-to-Image (S2I) gebaut werden. Dazu bietet OpenShift "buildconfigs" an.
** direkt als ImageStreams verwaltet werden.
* OpenShift bringt standardmäßig folgende Dienste mit:
** eine eigene interne Image Registry, die auch builds aus Source-to-Image verwaltet.
** ein in das Openshift-Webinterface integriertes Prometheus zum Monitoring des Clusters und der Anwendungen.
** ein EFK-Stack (Elasticsearch, FluentD, Kibana) zur Verwaltung von Logdateien.
* Eingehender Datenverkehr wird über Routen in den Cluster verteilt, diese sind Kubernetes-Ingress technisch sehr ähnlich.
* In einem OperatorHub können Kubernetes-Operatoren verwaltet werden. Dort werden von Red Hat erstellte Operatoren, von Red Hat zertifizierte Operatoren und Community-Operatoren angeboten
OpenShift schränkt die verwendeten Betriebssysteme auf den Clusterknoten ein. Auf der Controlplane muss Red Hat Core OS betrieben werden, die Workernodes können auch auf anderen Linux-Distributionen laufen.

## Produkte
### OpenShift Container Platform

Die OpenShift Container Platform (früher als OpenShift Enterprise bekannt) ist die lokale private Plattform von Red Hat, die auf einem Kern von Anwendungscontainern aufgebaut ist. Die OpenShift Container Platform stellt Kubernetes-Umgebungen für Unternehmen zur Verfügung, die zum Erstellen, Bereitstellen und Verwalten von containerbasierten Anwendungen auf jedem öffentlichen oder privaten Rechenzentrum dienen, auf denen Red Hat Enterprise Linux unterstützt wird.

### OpenShift Online

OpenShift Online (RHOO für Red Hat OpenShift Online) ist der Public-Cloud-Anwendungsentwicklungs- und -hostingdienst von Red Hat, der unter Amazon Web Services (AWS) läuft. Version 2 unterstützte eine Vielzahl von Sprachen, Frameworks und Datenbanken über vorgefertigte „Cartridges“, die unter Ressourcenkontingenten ausgeführt wurden. Entwickler konnten andere Sprachen, Datenbanken oder Komponenten über die Anwendungsprogrammierschnittstelle von OpenShift Cartridge hinzufügen. Dies wurde zugunsten der am 30. September 2017 veröffentlichten Version 3 aufgegeben.

### OpenShift Dedicated

OpenShift Dedicated ist das Managed Private Cluster-Angebot von Red Hat, das auf einem Kern von Anwendungscontainern basiert, die von Docker bereitgestellt werden. Die Orchestrierung und das Management werden von Kubernetes auf der Grundlage von Red Hat Enterprise Linux bereitgestellt. Es ist seit Dezember 2016 auf den Amazon Web Services (AWS) und der Google Cloud Platform (GCP) verfügbar.

### OpenShift Origin

OpenShift Origin, seit August 2018 auch als OKD (Origin Community Distribution) bekannt, ist das Upstream-Community-Projekt, das in OpenShift Online, OpenShift Dedicated und OpenShift Container Platform verwendet wird. Origin basiert auf einem Kern der Docker-Container-Packages und des Kubernetes-Container-Cluster-Managements und wird durch die Funktionen des Application-Lifecycle-Managements und der DevOps-Tools erweitert. Origin bietet eine Open-Source-Anwendungscontainerplattform. Der gesamte Quellcode für das Origin-Projekt ist unter der Apache-Lizenz (Version 2.0) auf GitHub verfügbar.

### OpenShift.io

OpenShift.io ist der SaaS von Red Hat, der eine Anwendungsentwicklungsumgebung bereitstellt.