Moderne Plattform für Softwareentwicklung und -bereitstellung

Dies ist der erste einer Reihe von Beiträgen über die Änderungen, Verbesserungen und Ergänzungen im kommenden Update der Red Hat OpenShift-Plattform 4.0, die Ihnen bei der Vorbereitung auf den Übergang zur neuen Version helfen werden.

Moderne Plattform für Softwareentwicklung und -bereitstellung

Von dem Moment an, als sich die junge Kubernetes-Community im Herbst 2014 zum ersten Mal im Google-Büro in Seattle versammelte, war das Kubernetes-Projekt dazu bestimmt, die Art und Weise, wie Software heute entwickelt und bereitgestellt wird, zu revolutionieren. Gleichzeitig investierten öffentliche Cloud-Dienstanbieter weiterhin aktiv in die Entwicklung von Infrastruktur und Diensten, was die Arbeit mit der IT und die Erstellung von Software viel einfacher und zugänglicher machte und sie unglaublich erschwinglich machte, was sich anfangs nur wenige hätten vorstellen können das Jahrzehnt.

Natürlich wurde die Ankündigung jedes neuen Cloud-Dienstes von zahlreichen Diskussionen unter Experten auf Twitter begleitet und es wurden Debatten zu den unterschiedlichsten Themen geführt – darunter das Ende der Open-Source-Ära, der Niedergang der On-Premise-IT und die Unvermeidlichkeit eines neuen Software-Monopols. in der Cloud und wie das neue Paradigma X alle anderen Paradigmen ersetzen wird.

Unnötig zu erwähnen, dass all diese Streitigkeiten sehr dumm waren

Die Realität ist, dass nichts verschwinden wird, und heute können wir aufgrund des ständigen Auftauchens neuer Software in unserem Leben ein exponentielles Wachstum der Endprodukte und der Art und Weise ihrer Entwicklung beobachten. Und trotz der Tatsache, dass sich alles um uns herum ändern wird, wird im Wesentlichen alles unverändert bleiben. Softwareentwickler werden immer noch Code mit Fehlern schreiben, Betriebsingenieure und Zuverlässigkeitsspezialisten werden immer noch mit Pagern herumlaufen und automatische Benachrichtigungen in Slack erhalten, Manager werden immer noch im Sinne von OpEx und CapEx agieren, und jedes Mal, wenn ein Fehler auftritt, wird der leitende Entwickler dies tun seufze traurig mit den Worten: „Ich habe es dir gesagt“...

Ach wirklich sollte besprochen werdengeht es darum, welche Tools uns zur Entwicklung besserer Softwareprodukte zur Verfügung stehen und wie sie die Sicherheit verbessern und die Entwicklung einfacher und zuverlässiger machen können. Je komplexer Projekte werden, desto mehr Risiken entstehen und das Leben der Menschen ist heute so sehr von Software abhängig, dass Entwickler einfach versuchen müssen, ihre Arbeit besser zu machen.

Kubernetes ist ein solches Tool. Derzeit wird daran gearbeitet, Red Hat OpenShift mit anderen Tools und Diensten auf einer einzigen Plattform zu kombinieren, um die Software zuverlässiger, einfacher zu verwalten und sicherer für Benutzer zu machen.

Vor diesem Hintergrund stellt das OpenShift-Team eine einfache Frage:

Wie können Sie die Arbeit mit Kubernetes einfacher und komfortabler gestalten?

Die Antwort ist überraschend offensichtlich:

  • Automatisieren Sie komplexe Aspekte der Bereitstellung in der Cloud oder außerhalb der Cloud.
  • Konzentrieren Sie sich auf Zuverlässigkeit und verbergen Sie gleichzeitig die Komplexität.
  • weiterhin daran arbeiten, einfache und sichere Updates zu veröffentlichen;
  • Kontrollierbarkeit und Überprüfbarkeit erreichen;
  • streben zunächst eine hohe Sicherheit an, jedoch nicht auf Kosten der Benutzerfreundlichkeit.

Die nächste Version von OpenShift sollte sowohl die Erfahrung der Entwickler als auch die Erfahrung anderer Entwickler berücksichtigen, die Software in großem Umfang in den größten Unternehmen der Welt implementieren. Darüber hinaus müssen alle gesammelten Erfahrungen mit offenen Ökosystemen berücksichtigt werden, die der modernen Welt heute zugrunde liegen. Gleichzeitig ist es notwendig, die alte Mentalität des Amateurentwicklers aufzugeben und zu einer neuen Philosophie einer automatisierten Zukunft überzugehen. Es muss die Lücke zwischen alten und neuen Methoden der Softwarebereitstellung schließen und die gesamte verfügbare Infrastruktur voll ausnutzen – unabhängig davon, ob sie beim größten Cloud-Anbieter gehostet wird oder auf winzigen Systemen am Edge läuft.

Wie erreicht man dieses Ergebnis?

Bei Red Hat ist es üblich, lange Zeit langweilige und undankbare Arbeit zu leisten, um die etablierte Community zu erhalten und den Abschluss von Projekten, an denen das Unternehmen beteiligt ist, zu verhindern. In der Open-Source-Community gibt es eine Vielzahl talentierter Entwickler, die die außergewöhnlichsten Dinge erschaffen – unterhaltsam, lehrreich, neue Möglichkeiten eröffnend und einfach schön, aber natürlich erwartet niemand, dass alle in die gleiche Richtung gehen oder gemeinsame Ziele verfolgen . Manchmal ist es notwendig, diese Energie zu nutzen und in die richtige Richtung zu lenken, um Bereiche zu entwickeln, die unseren Nutzern zugute kommen. Gleichzeitig müssen wir jedoch die Entwicklung unserer Gemeinschaften überwachen und von ihnen lernen.

Anfang 2018 erwarb Red Hat das CoreOS-Projekt, das ähnliche Ansichten über die Zukunft hatte – sicherer und zuverlässiger, erstellt auf Open-Source-Prinzipien. Das Unternehmen hat daran gearbeitet, diese Ideen weiterzuentwickeln und umzusetzen und dabei unsere Philosophie in die Praxis umzusetzen – zu gewährleisten, dass die gesamte Software sicher läuft. All diese Arbeiten basieren auf Kubernetes, Linux, öffentlichen Clouds, privaten Clouds und Tausenden anderen Projekten, die die Grundlage unseres modernen digitalen Ökosystems bilden.

Die neue Version von OpenShift 4 wird klarer, automatisierter und natürlicher sein

Die OpenShift-Plattform funktioniert mit den besten und zuverlässigsten Linux-Betriebssystemen, mit Bare-Metal-Hardware-Unterstützung, praktischer Virtualisierung, automatischer Infrastrukturprogrammierung und natürlich Containern (bei denen es sich im Wesentlichen nur um Linux-Images handelt).

Die Plattform muss von Anfang an sicher sein, Entwicklern aber dennoch eine einfache Iteration ermöglichen – das heißt, sie muss flexibel und sicher genug sein und gleichzeitig Administratoren eine einfache Prüfung und Verwaltung ermöglichen.

Es sollte die Ausführung von Software „as a Service“ ermöglichen und nicht zu einem unüberschaubaren Wachstum der Infrastruktur für Betreiber führen.

Dadurch können sich Entwickler auf die Entwicklung echter Produkte für Benutzer und Kunden konzentrieren. Sie müssen sich nicht mehr durch den Dschungel der Hardware- und Softwareeinstellungen kämpfen und alle versehentlichen Komplikationen gehören der Vergangenheit an.

OpenShift 4: NoOps-Plattform, die keine Wartung erfordert

В dieser Veröffentlichung beschrieb diejenigen Aufgaben, die die Vision des Unternehmens für OpenShift 4 mitgestalteten. Ziel des Teams ist es, die täglichen Aufgaben des Betriebs und der Wartung von Software so weit wie möglich zu vereinfachen, um diese Prozesse einfach und entspannt zu gestalten – sowohl für die an der Implementierung beteiligten Spezialisten als auch für die Entwickler. Doch wie kommt man diesem Ziel näher? Wie erstellt man eine Plattform zum Ausführen von Software, die nur minimale Eingriffe erfordert? Was bedeutet NoOps in diesem Zusammenhang überhaupt?

Wenn Sie versuchen zu abstrahieren, dann bedeuten die Konzepte „serverlos“ oder „NoOps“ für Entwickler Tools und Dienste, die es Ihnen ermöglichen, die „operative“ Komponente auszublenden oder diese Belastung für den Entwickler zu minimieren.

  • Arbeiten Sie nicht mit Systemen, sondern mit Anwendungsschnittstellen (APIs).
  • Machen Sie sich nicht die Mühe, Software zu implementieren – überlassen Sie dies dem Anbieter.
  • Beginnen Sie nicht gleich damit, ein großes Framework zu erstellen – schreiben Sie zunächst kleine Teile, die als „Bausteine“ dienen, und versuchen Sie, diesen Code mit Daten und Ereignissen arbeiten zu lassen und nicht mit Festplatten und Datenbanken.

Das Ziel besteht nach wie vor darin, Iterationen in der Softwareentwicklung zu beschleunigen, die Möglichkeit zu bieten, bessere Produkte zu erstellen, und sicherzustellen, dass sich der Entwickler keine Sorgen um die Systeme machen muss, auf denen seine Software läuft. Ein erfahrener Entwickler ist sich darüber im Klaren, dass sich das Bild schnell ändern kann, wenn man sich auf die Benutzer konzentriert. Deshalb sollten Sie nicht zu viel Aufwand in das Schreiben von Software stecken, es sei denn, Sie sind absolut sicher, dass sie benötigt wird.

Für Wartungs- und Betriebsexperten mag das Wort „NoOps“ etwas beängstigend klingen. Bei der Kommunikation mit Außendiensttechnikern wird jedoch deutlich, dass die von ihnen verwendeten Muster und Techniken zur Gewährleistung der Zuverlässigkeit und Zuverlässigkeit (Site Reliability Engineering, SRE) viele Ähnlichkeiten mit den oben beschriebenen Mustern aufweisen:

  • Verwalten Sie keine Systeme – automatisieren Sie deren Verwaltungsprozesse.
  • Implementieren Sie keine Software – erstellen Sie eine Pipeline, um sie bereitzustellen.
  • Vermeiden Sie es, alle Ihre Dienste zu bündeln und zuzulassen, dass der Ausfall eines einzelnen Dienstes zum Ausfall des gesamten Systems führt – verteilen Sie sie mithilfe von Automatisierungstools über Ihre gesamte Infrastruktur und verbinden Sie sie auf kontrollierbare Weise.

SREs wissen, dass etwas schief gehen könnte und sie das Problem aufspüren und beheben müssen. Deshalb automatisieren sie Routinearbeiten und legen im Voraus Fehlerbudgets fest, damit sie bei Auftreten eines Problems Prioritäten setzen und Entscheidungen treffen können.

Kubernetes in OpenShift ist eine Plattform, die darauf ausgelegt ist, zwei Hauptprobleme zu lösen: Anstatt Sie zu zwingen, virtuelle Maschinen oder Load-Balancer-APIs zu verstehen, arbeitet sie mit Abstraktionen höherer Ordnung – Bereitstellungsprozessen und Diensten. Anstatt Software-Agenten zu installieren, können Sie Container ausführen und statt einen eigenen Überwachungsstack zu schreiben, die bereits auf der Plattform verfügbaren Tools verwenden. Das Geheimnis von OpenShift 4 ist also wirklich kein Geheimnis – es geht lediglich darum, SRE-Prinzipien und serverlose Konzepte zu ihrer logischen Schlussfolgerung zu bringen, um Entwicklern und Betriebsingenieuren zu helfen:

  • Automatisieren und standardisieren Sie die Infrastruktur, die Anwendungen nutzen
  • Verknüpfen Sie Bereitstellungs- und Entwicklungsprozesse miteinander, ohne die Entwickler selbst einzuschränken
  • Sicherzustellen, dass das Starten, Prüfen und Sichern des XNUMX. Dienstes, der XNUMX. Funktion, der XNUMX. Anwendung oder des gesamten Stacks nicht schwieriger ist als der erste.

Aber was ist der Unterschied zwischen der OpenShift 4-Plattform und ihren Vorgängern und vom „Standard“-Ansatz zur Lösung solcher Probleme? Was fördert die Skalierung von Implementierungs- und Betriebsteams? Aufgrund der Tatsache, dass der König in dieser Situation der Cluster ist. Also,

  • Wir stellen sicher, dass der Zweck der Cluster klar ist (Liebe Cloud, ich habe diesen Cluster ausgewählt, weil ich konnte)
  • Es gibt Maschinen und Betriebssysteme, die den Cluster bedienen (Eure Majestät)
  • Verwalten Sie den Status der Hosts im Cluster und minimieren Sie deren Neuerstellung (Drift).
  • Für jedes wichtige Element des Systems ist ein Nanny (Mechanismus) erforderlich, der Probleme überwacht und beseitigt
  • Der Ausfall *jedes* Aspekts oder Elements eines Systems und die damit verbundenen Wiederherstellungsmechanismen sind ein normaler Teil des Lebens
  • Die gesamte Infrastruktur muss per API konfiguriert werden.
  • Verwenden Sie Kubernetes, um Kubernetes auszuführen. (Ja, ja, das ist kein Tippfehler)
  • Updates sollten einfach und problemlos zu installieren sein. Wenn die Installation eines Updates mehr als einen Klick erfordert, dann machen wir offensichtlich etwas falsch.
  • Das Überwachen und Debuggen jeder Komponente sollte kein Problem darstellen, und daher sollten auch die Verfolgung und Berichterstellung in der gesamten Infrastruktur einfach und bequem sein.

Möchten Sie die Möglichkeiten der Plattform in Aktion sehen?

Für Entwickler ist eine Vorschauversion von OpenShift 4 verfügbar. Mit einem benutzerfreundlichen Installationsprogramm können Sie einen Cluster auf AWS auf Red Had CoreOS ausführen. Um die Vorschau 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 Vorschaubilder.

  1. Um zu beginnen, gehen Sie zu try.openshift.com und klicken Sie auf „Erste Schritte“.
  2. Melden Sie sich bei Ihrem Red Hat-Konto an (oder erstellen Sie ein neues) und befolgen Sie die Anweisungen zum Einrichten Ihres ersten Clusters.

Schauen Sie sich nach erfolgreicher Installation unsere Tutorials an OpenShift-Schulungum ein tieferes Verständnis der Systeme und Konzepte zu erlangen, die die OpenShift 4-Plattform zu einer so einfachen und bequemen Möglichkeit machen, Kubernetes auszuführen.

Probieren Sie die neue OpenShift-Version aus und teilen Sie Ihre Meinung. Wir sind bestrebt, die Arbeit mit Kumbernetes so zugänglich und mühelos wie möglich zu gestalten – die Zukunft von NoOps beginnt heute.

Und jetzt aufgepasst!
Auf der Konferenz DevOpsForum 2019 Am 20. April wird einer der OpenShift-Entwickler, Vadim Rutkovsky, eine Meisterklasse abhalten – er wird zehn Cluster zerstören und sie zwingen, sie zu reparieren. Die Konferenz ist kostenpflichtig, aber mit dem Aktionscode #RedHat erhalten Sie 37 % Rabatt

Meisterkurs von 17:15 bis 18:15 Uhr, der Stand ist den ganzen Tag geöffnet. T-Shirts, Mützen, Aufkleber – das Übliche!

Halle Nr. 2
„Hier muss das gesamte System geändert werden: Wir reparieren kaputte K8S-Cluster gemeinsam mit zertifizierten Mechanikern.“


Source: habr.com

Kommentar hinzufügen