Dies ist die erste Veröffentlichung in einer Reihe von Materialien, die sich mit den Ănderungen, Verbesserungen und ErgĂ€nzungen im bevorstehenden Update der Red Hat OpenShift-Plattform auf 4.0 befassen, die helfen werden, sich auf den Ăbergang zur neuen Version vorzubereiten.

Von dem Moment an, als die Vertreter der gerade erst entstehenden Kubernetes-Community im Herbst 2014 zum ersten Mal im Google-BĂŒro in Seattle zusammentrafen, war schon abzusehen, dass das Kubernetes-Projekt die modernen AnsĂ€tze zur Softwareentwicklung und -bereitstellung grundlegend verĂ€ndern wĂŒrde. Gleichzeitig setzten öffentliche Cloud-Anbieter weiterhin krĂ€ftig auf den Ausbau der Infrastruktur und die Entwicklung von Dienstleistungen, was die Arbeit mit IT und die Softwareerstellung erheblich erleichterte und zugĂ€nglicher machte, was sich zu Beginn des Jahrzehnts kaum jemand hĂ€tte vorstellen können.
Es versteht sich von selbst, dass die AnkĂŒndigung jedes neuen Cloud-Dienstes von zahlreichen Experten-Diskussionen auf Twitter begleitet wurde, wobei die Debatten ĂŒber die unterschiedlichsten Themen gefĂŒhrt wurden â unter anderem ĂŒber das Ende des Zeitalters des Open Source, den Niedergang der On-Premises-IT, die Unvermeidlichkeit einer neuen Softwaremonopolstellung in der Cloud und darĂŒber, wie das neue Paradigma X alle anderen Paradigmen ablösen wird.
Es ist ĂŒberflĂŒssig zu sagen, dass all diese Diskussionen ziemlich töricht waren.
Die RealitĂ€t ist, dass nichts einfach verschwinden wird, und heute kann man ein exponentielles Wachstum von Endprodukten und deren Entwicklungsmethoden beobachten, was mit dem stĂ€ndigen Erscheinen neuer Software in unserem Leben zusammenhĂ€ngt. Und trotz aller VerĂ€nderungen wird im Wesentlichen alles gleich bleiben. Softwareentwickler werden weiterhin fehlerhaften Code schreiben, Operations- und Reliability-Ingenieure werden weiterhin mit Paging-Systemen arbeiten und automatische Benachrichtigungen in Slack erhalten, Manager werden nach wie vor mit den Begriffen OpEx und CapEx hantieren, und jedes Mal, wenn ein Fehler auftritt, wird der leitende Entwickler traurig seufzen und sagen: âIch habe es doch gesagtâŠâ
Was wirklich diskutiert werden sollte, so ist das, welche Werkzeuge wir erhalten können, um qualitativ hochwertigere Softwareprodukte zu erstellen, und wie sie die Sicherheit erhöhen und die Entwicklung einfacher und zuverlÀssiger gestalten. Mit zunehmender KomplexitÀt der Projekte entstehen auch neue Risiken, und heute hÀngen die Lebensweisen der Menschen so stark von der Software ab, dass Entwickler einfach verpflichtet sind, ihre Arbeiten zu verbessern.
Kubernetes ist eines dieser Werkzeuge. Es wird daran gearbeitet, es im Rahmen von Red Hat OpenShift mit anderen Tools und Dienstleistungen in einer einzigen Plattform zu vereinen, die es ermöglichen wĂŒrde, Software zuverlĂ€ssiger, benutzerfreundlicher und sicherer fĂŒr die Anwender zu machen.
Vor diesem Hintergrund stellt sich das OpenShift-Team eine einfache Frage:
Wie kann die Arbeit mit Kubernetes einfacher und benutzerfreundlicher gestaltet werden?
Die Antwort ist ĂŒberraschend offensichtlich:
- komplizierte Punkte im Cloud- oder On-Premise-Deployment zu automatisieren;
- den Fokus auf ZuverlÀssigkeit zu legen und dabei die KomplexitÀt zu verbergen;
- konstante Anstrengungen zu unternehmen, um einfache und sichere Updates zu veröffentlichen;
- Kontrollierbarkeit und Auditierbarkeit zu gewÀhrleisten;
- von Anfang an hohe Sicherheit zu bieten, jedoch nicht auf Kosten der Benutzerfreundlichkeit.
Die nĂ€chste Version von OpenShift sollte sowohl die Erfahrungen von Entwicklern als auch die der anderen Entwickler berĂŒcksichtigen, die in groĂem MaĂstab Software in den gröĂten Unternehmen der Welt implementieren. AuĂerdem muss sie alle gesammelten Erfahrungen von offenen Ăkosystemen berĂŒcksichtigen, die heute die Grundlage der modernen Welt bilden. Dabei ist es notwendig, sich von der alten MentalitĂ€t des Amateurentwicklers zu lösen und zu einer neuen Philosophie der automatisierten Zukunft ĂŒberzugehen. Es muss eine âBrĂŒckeâ zwischen den alten und neuen Methoden der Softwarebereitstellung geschlagen werden und die gesamte verfĂŒgbare Infrastruktur vollstĂ€ndig genutzt werden â unabhĂ€ngig davon, ob sie von einem groĂen Cloud-Anbieter verwaltet wird oder auf winzigen Systemen am Rande lĂ€uft.
Wie erreicht man ein solches Ergebnis?
Bei Red Hat ist es ĂŒblich, lange geduldige und undankbare Arbeit zu leisten, um die gewachsene Gemeinschaft zu erhalten und die SchlieĂung von Projekten, an denen das Unternehmen beteiligt ist, zu verhindern. In der Open-Source-Community gibt es eine riesige Menge talentierter Entwickler, die die auĂergewöhnlichsten Dinge schaffen â unterhaltsame, lehrreiche, neue Möglichkeiten eröffnende und einfach schöne Sachen. Niemand erwartet jedoch, dass alle Beteiligten in die gleiche Richtung gehen oder gemeinsame Ziele verfolgen. Es ist manchmal notwendig, diese Energie zu nutzen und sie in die richtigen Bahnen zu lenken, um Entwicklungen voranzutreiben, die unseren Nutzern nĂŒtzlich wĂ€ren, wĂ€hrend wir gleichzeitig die Entwicklung unserer Gemeinschaften im Auge behalten und von ihnen lernen sollten.
Anfang 2018 erwarb Red Hat das Projekt CoreOS, das Ă€hnliche Ansichten ĂŒber die Zukunft hatte â sicherer und zuverlĂ€ssiger, basierend auf Open-Source-Prinzipien. Das Unternehmen arbeitete an der Weiterentwicklung dieser Ideen und deren Umsetzung, um unsere Philosophie in die Tat umzusetzen â den sicheren Betrieb aller Software zu erreichen. Diese ganze Arbeit basiert auf Kubernetes, Linux, öffentlichen Clouds, privaten Clouds und Tausenden anderen Projekten, die das Fundament unseres modernen digitalen Ăkosystems bilden.
Die neue Version von OpenShift 4 wird verstĂ€ndlich, automatisiert und natĂŒrlicher sein.
Die OpenShift-Plattform wird mit den besten und zuverlĂ€ssigsten Linux-Betriebssystemen, mit Bare-Metal-HardwareunterstĂŒtzung, benutzerfreundlicher Virtualisierung, automatisierter Infrastrukturprogrammierung und selbstverstĂ€ndlich mit Containern (die im Grunde genommen nur Linux-Images sind) arbeiten.
Die Plattform muss von Anfang an sicher sein, dabei jedoch Entwicklern bequeme Iterationen ermöglichen â das heiĂt, sie muss ausreichend FlexibilitĂ€t und ZuverlĂ€ssigkeit bieten und gleichzeitig Administratoren erlauben, Audits durchzufĂŒhren und die Verwaltung zu erleichtern.
Sie muss es ermöglichen, Software als Dienst auszufĂŒhren, ohne dass die Infrastruktur fĂŒr Betreiber unkontrollierbar wĂ€chst.
Es ermöglicht Entwicklern, sich auf die Erstellung echter Produkte fĂŒr Benutzer und Kunden zu konzentrieren. Sie mĂŒssen sich nicht durch das Dickicht der Hardware- und Softwareeinstellungen kĂ€mpfen, und alle zufĂ€lligen Komplikationen gehören der Vergangenheit an.
OpenShift 4: NoOps-Plattform, die keine UnterstĂŒtzung benötigt
Im wurden die Aufgaben beschrieben, die dazu beigetragen haben, die Vision des Unternehmens in Bezug auf OpenShift 4 zu formen. Das Team hat die Aufgabe, tĂ€gliche Betriebs- und Wartungsaufgaben so weit wie möglich zu vereinfachen und diese Prozesse sowohl fĂŒr Implementierungsspezialisten als auch fĂŒr Entwickler leicht und mĂŒhelos zu gestalten. Aber wie kann man diesem Ziel nĂ€her kommen? Wie schafft man eine Software-Plattform, die minimalen Eingriff erfordert? Was bedeutet NoOps in diesem Kontext ĂŒberhaupt?
Wenn man versucht, abstrahiert zu denken, bedeuten die Begriffe âserverlessâ oder âNoOpsâ fĂŒr Entwickler Werkzeuge und Dienste, die es ermöglichen, die âBetriebsâ-Komponente zu verbergen oder diese Last fĂŒr den Entwickler zu minimieren.
- Arbeiten Sie nicht mit Systemen, sondern mit Anwendungsschnittstellen (API).
- KĂŒmmern Sie sich nicht um die Implementierung von Software â lassen Sie stattdessen den Anbieter dies ĂŒbernehmen.
- Es sollte nicht sofort ein groĂes Framework entwickelt werden â beginnen Sie mit dem Schreiben kleiner Fragmente, die als âBausteineâ fungieren, und achten Sie darauf, dass dieser Code mit Daten und Ereignissen und nicht mit Festplatten und Datenbanken arbeitet.
Die Aufgabe besteht nach wie vor darin, die Iterationen bei der Entwicklung von Software zu beschleunigen, die Möglichkeit zur Erstellung qualitativ besserer Produkte zu gewĂ€hrleisten und dabei sicherzustellen, dass der Entwickler sich keine Sorgen ĂŒber die Systeme machen muss, auf denen seine Software lĂ€uft. Ein erfahrener Entwickler weiĂ genau, dass sich die Situation schnell Ă€ndern kann, wenn man sich auf die Benutzer konzentriert. Daher sollte nicht zu viel MĂŒhe in die Softwareentwicklung investiert werden, wenn man sich nicht absolut sicher ist, dass sie notwendig ist.
FĂŒr Fachleute, die mit der Wartung und dem Betrieb beschĂ€ftigt sind, kann das Wort âNoOpsâ etwas beĂ€ngstigend klingen. Doch beim Austausch mit Betriebstechnikern wird offensichtlich, dass die von ihnen verwendeten Muster und Methoden zur GewĂ€hrleistung der ZuverlĂ€ssigkeit (Site Reliability Engineering, SRE) in vielerlei Hinsicht mit den oben beschriebenen Mustern ĂŒbereinstimmen:
- Verwalten Sie keine Systeme â automatisieren Sie die Verwaltung ihrer Prozesse.
- KĂŒmmern Sie sich nicht um die Implementierung von Software â erstellen Sie eine Pipeline fĂŒr deren Bereitstellung.
- Versuchen Sie, Ihre Dienste nicht zu bĂŒndeln und zu vermeiden, dass der Ausfall eines von ihnen den Ausfall des gesamten Systems verursacht â verteilen Sie sie ĂŒber die gesamte Infrastruktur hinweg mithilfe von Automatisierungstools und verbinden Sie sie unter BerĂŒcksichtigung von Kontroll- und Ăberwachungsmöglichkeiten.
SRE-Experten wissen, dass etwas schiefgehen kann, und sie mĂŒssen das Problem ĂŒberwachen und beheben â deshalb automatisieren sie Routinearbeiten und legen im Voraus fest, welche Abweichungen akzeptabel sind (Error Budgets), um auf Priorisierungen und Entscheidungen bei Problemen vorbereitet zu sein.
Kubernetes in OpenShift ist eine Plattform, die zwei Hauptziele verfolgt: Anstatt Sie zu zwingen, sich mit virtuellen Maschinen oder APIs von Lastenausgleichssystemen auseinanderzusetzen, arbeitet sie mit Abstraktionen höherer Ordnung â mit Bereitstellungsprozessen und Diensten. Statt Software-Agenten zu installieren, können Container gestartet werden, und anstelle eines eigenen Ăberwachungsstapels können vorhandene Werkzeuge der Plattform verwendet werden. So ist die geheime Zutat von OpenShift 4 eigentlich kein Geheimnis â es gilt lediglich, die Prinzipien von SRE und serverlose Konzepte zu ĂŒbernehmen und sie bis zum Ende zu bringen, um Entwicklern und Betriebstechnikern zu helfen:
- Automatisieren und Standardisieren der Infrastruktur, die von Anwendungen verwendet wird.
- Die Prozesse der Bereitstellung und Entwicklung miteinander verbinden, ohne die Entwickler einzuschrÀnken.
- DafĂŒr sorgen, dass der Start, die ĂberprĂŒfung und die Sicherheit des hundertsten Dienstes, der Funktion, der Anwendung oder des gesamten Stacks nicht schwieriger sind als die des ersten.
Aber was unterscheidet die Plattform OpenShift 4 von ihren VorgĂ€ngern und dem "Standard"-Ansatz zur Lösung solcher Probleme? Wie wird die Skalierung fĂŒr Teams, die implementieren und betreiben, erreicht? Wichtig in dieser Situation ist der Cluster. Also,
- Lassen Sie uns dafĂŒr sorgen, dass der Zweck der Cluster klar ist (Teures Cloud, ich habe diesen Cluster erstellt, weil ich es konnte)
- Maschinen und Betriebssysteme existieren, um den Cluster zu bedienen (Eure MajestÀt)
- Verwalten Sie den Zustand der Hosts vom Cluster aus und minimieren Sie deren Drift.
- FĂŒr jedes wichtige Element des Systems ist eine Aufsicht nötig (mechanismus), der Probleme ĂŒberwacht und behebt
- Ein Ausfall *jedes* Aspekts oder Elements des Systems erfordert entsprechende Wiederherstellungsmechanismen â das ist ein ganz normaler Teil des Lebens
- Die gesamte Infrastruktur sollte ĂŒber APIs konfiguriert werden.
- Verwenden Sie Kubernetes, um Kubernetes zu betreiben. (Ja, das ist kein Tippfehler)
- Updates sollten einfach und unkompliziert installiert werden. Wenn die Installation eines Updates mehr als einen Mausklick erfordert, machen wir offensichtlich etwas falsch.
- Das Ăberwachen und Debuggen jeder Komponente sollte keine Probleme bereiten, und damit sollte auch das Nachverfolgen und Berichten ĂŒber die gesamte Infrastruktur einfach und benutzerfreundlich sein.
Möchten Sie die Möglichkeiten der Plattform in der Praxis sehen?
Die Vorabversion von OpenShift 4 ist fĂŒr Entwickler verfĂŒgbar. Mit einem einfach zu bedienenden Installer kann ein Cluster auf AWS ĂŒber Red Hat CoreOS gestartet werden. Um die Vorabversion nutzen zu können, benötigen Sie lediglich ein AWS-Konto zur Bereitstellung der Infrastruktur und eine Reihe von Konten fĂŒr den Zugriff auf die Vorabversion-Images.
- Um zu beginnen, gehen Sie zu und klicken Sie auf âLoslegenâ.
- Melden Sie sich bei Ihrem Red Hat-Konto an (oder erstellen Sie ein neues) und folgen Sie den Anweisungen, um Ihren ersten Cluster einzurichten.
Nach einer erfolgreichen Installation werfen Sie einen Blick auf unsere Schulungsmaterialien , um einen detaillierteren Einblick in die Systeme und Konzepte zu erhalten, die die Plattform OpenShift 4 zu einem so einfachen und benutzerfreundlichen Werkzeug zur AusfĂŒhrung von Kubernetes machen.
Probieren Sie die neue Version von OpenShift aus und teilen Sie uns Ihre Meinung mit. Wir streben an, die Arbeit mit Kubernetes so zugĂ€nglich und mĂŒhelos wie möglich zu gestalten â die Zukunft von NoOps beginnt schon heute.
Jetzt aufgepasst!
Auf der Konferenz Am 20. April wird einer der Entwickler von OpenShift, Vadim Rutkovski, einen Workshop leiten â dabei werden zehn Cluster durch die Decke gehen und wieder repariert werden. Die Konferenz ist kostenpflichtig, aber mit dem Promo-Code #RedHat erhalten Sie 37 % Rabatt.
Der Workshop findet von 17:15 bis 18:15 Uhr statt, und der Stand ist den ganzen Tag geöffnet. T-Shirts, HĂŒte, Aufkleber â wie gewohnt!
Saale #2
âHier muss das gesamte System geĂ€ndert werden: Wir reparieren defekte k8s-Cluster zusammen mit zertifizierten Fachleuten.â
Quelle: habr.com
