Kapitel 4. Eine Anwendung auf OpenShift bereitstellen
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Du kennst die OpenShift-Konzepte und hast Zugang zu einem OpenShift-Cluster. Jetzt wirst du OpenShift nutzen, um ein Projekt zu erstellen, die Projektanwendung aus dem Quellcode zu bauen und sie auszuführen.
Ein einfaches Anwendungsbeispiel
Wir werden die technische Tradition ehren, indem wir mit einem "Hello World"-Programm beginnen. Das einfache Programm in diesem Kapitel lässt einen HTTP-Dienst laufen, der auf jede Anfrage eine Antwort ausgibt. Wir haben die Programmiersprache Go gewählt, weil sie sich schnell kompilieren lässt und um mehr als eine Sprachumgebung zu demonstrieren. In späteren Kapiteln wirst du das Java Quarkus Framework verwenden, um eine komplexere Anwendung zu erstellen. Die OpenShift-Techniken, die du im Laufe des Buches verwenden wirst, wie z. B. On-Cluster-Builds und automatisches Deployment, sind weitgehend unabhängig von der Sprache und den Frameworks, die du für ein Projekt wählst.
Besorge dir zunächst eine Kopie des Quellcodes für die Hello World-Anwendung. Du verwendest Git, um den Quellcode zu verwalten, und GitHub, um deine Kopie für deinen Cluster zum Bauen bereitzustellen. Richte deinen Browser auf das GitHub-Repository dieses Kapitels. Forke eine Kopie in dein eigenes GitHub-Konto mit der Schaltfläche Fork oben rechts. In der Git-Sprache ist ein "Fork" eine exakte Kopie eines Repositorys zu einem bestimmten Zeitpunkt. Du kannst deinen Fork modifizieren, um deine eigene Version zu erstellen oder um Änderungen vorzunehmen, zu testen und an das ursprüngliche Repository zurückzusenden. In diesem Kapitel wirst du Git verwenden, aber du brauchst keine tiefgreifenden Git-Kenntnisse; der folgende extrem kurze Überblick über die Begriffe und Methoden von Git sollte dir den Einstieg erleichtern.
Git und GitHub
Git ist ein System zur verteilten Versionskontrolle. Normalerweise werden die Arbeitskopien deines Quellcodes in einem Git-Repository auf deinem Computer gespeichert. commit
Du verwendest das Tool git
, um dort Änderungen vorzunehmen, dann push
das Repository irgendwo zu veröffentlichen oder mit einem vorgelagerten Repository mit Änderungsvorschlägen zusammenzuarbeiten, die als Pull Requests bezeichnet werden. Dieser dezentralisierte Vorgang ist der "verteilte" Teil.
In diesem Buch wirst du deinen Quellcode auf GitHub veröffentlichen, einem sozialen Netzwerk für Quellcode. Der "soziale" Teil bedeutet, dass andere Personen und - was für dein Projekt noch wichtiger ist - andere Systeme sich mit deinem auf GitHub gespeicherten Quellcode verbinden, ihn kopieren, bearbeiten und Änderungen vorschlagen können. GitHub bietet auch browserbasierte Tools zum Bearbeiten des Quellcodes und zum Übertragen von Änderungen. In diesem Kapitel wirst du diese Tools nutzen, damit du die ersten Level von OpenShift ohne einen Abstecher in die Kommandozeile spielen kannst.
Erstellen und Bereitstellen der Anwendung auf OpenShift
Als erstes brauchst du ein OpenShift-Projekt, das die Anwendungsressourcen enthält. Melde dich in der Webkonsole deines CRC-Clusters an. Dort ist das Standardkonto "Entwickler" und das Passwort ist ebenfalls "Entwickler".
Vergewissere dich, dass du die Entwickler-Perspektive verwendest, indem du im Dropdown-Menü des OpenShift-Perspektivenwechslers in der oberen linken Ecke die Auswahl auf Entwickler änderst. Klicke auf Topologie. Erstelle ein neues Projekt, indem du auf das Dropdown-Menü Projekt: Alle Projekte und dann auf Projekt erstellen klickst(Abbildung 4-1).
Im Dialogfeld Projekt erstellen konfigurierst du das neue Projekt, wie in Abbildung 4-2 dargestellt.
CLI How-To: Ein neues Projekt erstellen
Erstelle ein neues Projekt in der OpenShift CLI, indem du den folgenden Code ausführst:
oc new-project \ --display-name='Hello OpenShift for Developers' \ --description='hello world' \ o4d-hello
Da du noch nichts eingesetzt hast, hilft dir die Topologieansicht mit einem Raster von Dingen, die du vielleicht einsetzen willst. Wähle aus Git.
In der Konsole wird ein Git-Konfigurationsdialog angezeigt, ähnlich wie in Abbildung 4-3 zu sehen. Gib die URL deines geforkten Hello World-Quelltextes in deinem GitHub-Konto ein: zum Beispiel https://github.com/<Dein-Name>/hello.git. Wenn du das tust, überprüft OpenShift den Inhalt des Repositorys und wählt für bekannte Sprachen automatisch das passende Builder-Image aus, das den Compiler und andere Werkzeuge zum Bauen enthält.
Vergewissere dich, dass Go in der Tabelle mit den Builder-Bildern im Dialogfeld ausgewählt ist. Andernfalls akzeptierst du die Standardeinstellungen und klickst auf Erstellen.
CLI How-To: Eine neue Go-Anwendung erstellen
Es ist möglich, die Hallo-Bereitstellung über die Kommandozeile zu erstellen, indem du Folgendes ausführst:
oc new-app golang~https://github.com/<your-name>/hello.git
Wenn du auf Erstellen klickst, beginnt OpenShift mit der Erstellung deines Quellcodes mit den Go-Compiler-Tools des ausgewählten Builder Image. Du kehrst zur Topologie-Ansicht der Konsole zurück, die die Anwendung anzeigt und ihre Anzeige während des Builds und Deployments aktualisiert(Abbildung 4-4).
Das Topologie-Symbol der Anwendung vermittelt dir wichtige Informationen. Wenn du mit der Maus über die Abzeichen am Rand des Symbols fährst, siehst du, dass du dich zum Build-Status durchklicken kannst, direkt zur URL des Git-Repository mit dem Quellcode der Anwendung oder zur externen URL einer Route zur Anwendung(Abbildung 4-5).
Der Status der Bereitstellung wird durch verschiedene Farben und Tooltipps angezeigt. Dunkelblau zeigt eine laufende Anwendung an, hellblau eine, die noch nicht bereit ist, und rot eine Anwendung, die Aufmerksamkeit benötigt, weil Fehler aufgetreten sind.
Klicke auf das Route-Badge, um die externe URL der Anwendung in deinem Webbrowser zu öffnen(Abbildung 4-6).
Hinzufügen und Einsetzen eines neuen Features
Angefangen mit ein paar Zeilen Quellcode hast du mit OpenShift eine zustandslose Webanwendung von künstlicher Einfachheit geholt, gebaut und bereitgestellt. Jetzt stell dir vor, du bekommst ein Ticket für einen Feature Request: Ändere den angezeigten Text in "Hello World!". Wenn du diese Änderung vornimmst, kann OpenShift die Anwendung neu erstellen und das Ergebnis bereitstellen, um die vorherige Version zu ersetzen.
Diese grundlegende Schleife bereitet dich auf zwei wichtige Ideen für die komplexere Anwendung vor, die du im weiteren Verlauf des Buches erstellen wirst. Das Source-to-Image-Build-System auf OpenShift bildet den Kern der umfassenderen Deployment-Pipeline, die du in Kapitel 6 erstellen wirst. In späteren Kapiteln erfährst du, wie du Deployment-Strategien festlegst und änderst, um Dienste während eines Redeployments verfügbar zu halten oder um eine neue Anwendungsversion nur auf einer Teilmenge von Replikaten für Single-Cluster-A/B-Tests einzusetzen.
Ändern der Hallo-Quelle
Um das Text-Änderungs-Ticket zu lösen, musst du einen String im Quelltext der Anwendung ändern. Wenn du ein Git-Veteran bist, hast du das Projektarchiv vielleicht schon auf deinen lokalen Rechner geklont und weißt, wie du es mit deinem bevorzugten Tool bearbeitest, festlegst und in dein GitHub-Projektarchiv zurückschiebst. Wenn du mit diesem Prozess nicht vertraut bist, mach dir keine Sorgen. Die erforderliche Änderung ist einfach genug, um sie schnell im GitHub Webeditor durchzuführen, und wir zeigen dir, wie du klonst, änderst, festlegst und deine Änderungen an dein öffentlich sichtbares GitHub-Repository zurückschickst, bevor du dich mit der Programmierung beschäftigen musst.
Öffne die Go-Quelldatei für deine Hello World-Anwendung, hello-openshift-for-developers.go, in deinem Browser. Deine Kopie findest du unter https://github.com/<Dein-Name>/hello/blob/master/hello-openshift-for-developers.go. Du siehst dann den in Abbildung 4-7 gezeigten Code.
Klicke auf das Bleistiftsymbol oben rechts in der Quellenansicht(Abbildung 4-8), um in den Editormodus zu gelangen.
Suche dann die Zeichenfolge Hello OpenShift for Developers!
und ändere sie in Hello World!
, wie in Abbildung 4-9 gezeigt.
Zum Schluss speicherst du die Änderungen im Hauptzweig deines Anwendungs-Repos. Es empfiehlt sich, eine prägnante Commit-Nachricht zu verfassen, in der die Änderung erklärt wird, mit einem Betreff und einem Text, der einer E-Mail ähnelt, wie in Abbildung 4-10 gezeigt. Klicke auf "Änderungen festschreiben", um deine Änderungen festzuschreiben.
Ein neues OpenShift Deployment
Eine OpenShift BuildConfig repräsentiert einen Quellcode-Speicherort und einen Prozess, um ihn in einen deploybaren Container zu bauen. Du hast bereits eine BuildConfig, die für die Erstellung der Hello World-App erstellt wurde und jedes Mal wiederverwendet wird, wenn eine neue Version bereitgestellt wird. Öffne die Builds-Ansicht im linken Menü der Entwicklerperspektive der Web-Konsole. Klicke dann auf die hello-git
BuildConfig, um sie zu öffnen(Abbildung 4-11).
Starte einen Build mit dem Punkt "Build starten" aus dem Menü "Aktionen" oben rechts(Abbildung 4-12).
CLI How-To: Starten eines Builds aus einer bestehenden BuildConfig
Es ist möglich, den hello-git
Build über die Kommandozeile zu starten, indem du oc start-build hello-git
ausführst.
Wie in Abbildung 4-13 zu sehen ist, kannst du nach Abschluss des Builds auf das URL-Symbol in der Topologieansicht klicken, um die neueste Version deiner Anwendung in einem Browser-Tab zu öffnen. Hallo Welt!
Zusammenfassung
Ob du es glaubst oder nicht, du hast gerade die wichtigsten Schritte für die Bereitstellung deines Codes auf OpenShift gemeistert. Vom Quellcode über den Build bis hin zum Rollout und einem Changeset dazwischen - einmal konfiguriert, hat OpenShift die "Ops"-Aufgaben übernommen und du kannst dich auf den "Dev"-Teil konzentrieren. In Kapitel 5 wirst du das Build-Konzept mit den leistungsfähigeren und modularen OpenShift Pipelines erweitern und einen CD-Prozess für eine vollständigere und realistischere Anwendung mit mehreren Komponenten und persistentem Zustand erstellen.
Get OpenShift für Entwickler, 2. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.