OCI-Leitfaden für DevOps-Entwickler

Oracle Cloud Infrastructure (OCI) bietet Entwicklertools zum Erstellen, Verwalten und Automatisieren cloudnativer Anwendungen. Dieser Leitfaden enthält einen Überblick über diese Tools und ihre Anwendung im DevOps-Lebenszyklus.

Der DevOps-Lebenszyklus

DevOps ist eine Arbeitsweise, die mehrere Teams, vor allem Entwicklung und Operations, zur Zusammenarbeit ermutigt und kontinuierliche Bereitstellung im Softwareentwicklungs-Lebenszyklus erreicht. Verschiedene Tools tragen zu verschiedenen Schritten im Lebenszyklus bei.

Abbildung des DevOps-Lebenszyklus.

Auf Entwicklungsseite benötigen Sie Tools, die Sie bei folgenden Schritten unterstützen:

  • Planen: Infrastruktur für Geschwindigkeit, Flexibilität und Konsistenz verwalten
  • Codieren: Software entwickeln, die sich für konstante Änderungen eignet
  • Erstellen: Einen Workflow erstellen, der wöchentliche Releasezyklen erreichen kann
  • Testen: Vorgänge so weit wie möglich automatisieren

Auf Operations-Seite benötigen Sie Tools, die Sie bei folgenden Schritten unterstützen:

  • Freigeben: Repositorys und Registrys kompilieren und Daten an diese übermitteln
  • Bereitstellen: Anwendungen an Zielumgebungen übertragen
  • Betreiben: Jeden Schritt im Lebenszyklus sichern
  • Überwachen: Infrastrukturstatus und -performance anzeigen, jede Änderung protokollieren

Viele OCI-Tools für DevOps sind eng verbunden und decken mehrere Schritte im Lebenszyklus ab. Die Abschnitte in diesem Leitfaden beziehen sich auf jeweils verwandte Schritte und Informationen.

Der DevOps-Ansatz

Konfigurationsmanagement und Infrastructure-as-Code

Die Automatisierung wird während des gesamten DevOps-Lebenszyklus verwendet. Sie reduziert den Bedarf an manuellen Aufgaben und Eingriffen und erhöht die Lieferhäufigkeit. Konfigurationsmanagement und Infrastructure-as-Code ermöglichen einen Großteil dieser Automatisierung.

Konfigurationsmanagement (CM) ist der Prozess für die Anwendung programmgesteuerter Methoden, um die Implementierung, Funktion und Performance einer Anwendung sicherzustellen.

Infrastructure-as-code (IaC) verwendet menschenlesbaren Code, um die Infrastruktur zu definieren, bereitzustellen und zu verwalten. IaC ist eine Schlüsselkomponente des Modells für kontinuierliche Bereitstellung.

In OCI sind Ansible und Terraform die am häufigsten verwendeten Tools für CM und IaC. Ansible ist in erster Linie ein CM-Tool für Infrastrukturkonfiguration, Patching und Anwendungs-Deployment und -wartung. Terraform ist ein IaC-Tool, das für Provisioning und Außerbetriebnahme von Infrastrukturen verwendet wird. Sie werden häufig zusammen verwendet.

Konfigurationsmanagement

Der OCI DevOps-Service ist für die nahtlose Integration mit zwei CM-Tools konzipiert: Ansible und Chef.

Ansible

Die OCI-Ansible-Collection automatisiert das Infrastruktur-Provisioning und die Konfiguration von OCI-Ressourcen, wie Compute-, Load-Balancing- und Datenbankservices.

OCI-Ansible-Module sind ein Set von Interpretern, die Ansible bei Aufrufen an OCI-API-Endpunkte unterstützen. Auf einfacher Ebene bringt Ansible einen Server oder eine Liste von Hosts mit den folgenden Konzepten in einen bekannten Status:

  • Bestand: Erläuterungen zur Ausführung; kann statisch oder dynamisch sein
  • Aufgabe: Aufruf eines Ansible-Moduls
  • Plays: Eine Reihe von Ansible-Aufgaben oder -Rollen, die einer Gruppe von Hosts im Bestand zugeordnet sind und nacheinander ausgeführt werden
  • Playbooks: Eine Reihe von Plays, die erläutern, was ausgeführt werden soll, und YAML verwenden
  • Rolle: Eine Standardstruktur zur Angabe von Aufgaben und Variablen; ermöglicht Modularität und Wiederverwendung
Tipp

Erleichtern Sie sich den Einstieg in Ansible auf OCI mit einerLiveLab-Übung.

Chef

Chef ist ein Automatisierungstool für CM, das sich auf die Bereitstellung und Verwaltung von gesamten IT-Stacks konzentriert. Mit dem OCI DevOps-Service können Benutzer OCI-Ressourcen mit dem Chef Knife-Plug-in verwalten.

Hinweis

Puppet ist ein weiteres gängiges CM-Tool, mit dem Sie Server entwerfen, bereitstellen, konfigurieren und verwalten können. Sie können Puppet in OCI integrieren. Dafür ist aber manuelles Skripting, erforderlich da OCI über kein direktes Plug-in verfügt.

Infrastructure-as-Code

OCI verwendet Terraform für IaC. Terraform verfügt über eine deklarative Sprache, mit der Sie die Infrastruktur codieren können, und eine Engine, die diese Konfigurationen zur Verwaltung der Infrastruktur verwendet.

Tipp

Versuchen Sie eine LiveLab, um Ihnen den Einstieg in Terraform auf OCI zu erleichtern. Außerdem sind viele Tutorials, Beispiele, Vorlagen und Lösungen verfügbar.

Mit dem OCI Terraform-Provider und der Terraform-CLI können Sie Konfigurationen von Ihrem lokalen Rechner entwerfen und anwenden, um die OCI-Infrastruktur zu verwalten. Dieser Ansatz bringt jedoch zwei Probleme mit sich:

  • Fehlende Versionskontrolle: Sie müssen verschiedene Versionen des Codes verfolgen, wenn Sie ein Rollback durchführen oder eine Verzweigung erstellen müssen.
  • Zusammenarbeit: Sie müssen Konfigurationen und Pläne zentralisieren, um sicherzustellen, dass alle synchron arbeiten.

Verwenden Sie OCI Resource Manager, einen cloudbasierten Terraform-Host für zentralisierte Versionskontrolle, Statusverwaltung und Job-Queuing, anstatt Terraform direkt zu verwenden. Mit Resource Manager können DevOps-Mitarbeiter Infrastruktur oder Stacks ganz einfach verwalten, indem sie Terraform in Vorlagen verbergen.

Tipp

Sehen Sie sich ein Einführungsvideo zum Resource Manager-Service an, oder testen Sie eine LiveLab-Übung.

Resource Manager umfasst auch Terraform-basierte Automatisierung, wie Ressourcen-Discovery und Abweichungserkennung. Da es nicht immer möglich ist, zuerst Terraform-Konfigurationen zu entwerfen und dann die Infrastruktur bereitzustellen, können Sie Ressourcen in der Konsole erstellen und dann mit Resource Manager-Ressourcen-Discovery den Stack und die Konfiguration generieren. Abweichungserkennungsberichte können bestimmen, ob bereitgestellte Ressourcen andere Status aufweisen als diejenigen, die in der zuletzt ausgeführten Konfiguration des Stacks definiert wurden.

Anwendungsdesign

Mit Microservices können Sie eine Anwendung als Sammlung lose gekoppelter Services entwerfen, die das "Share-nothing"-Modell verwenden und als zustandslose Prozesse ausgeführt werden. Dieser Ansatz erleichtert die Skalierung und Verwaltung der Anwendung.

In einer Microservices-Architektur besitzt jeder Microservice eine einfache Aufgabe und kommuniziert mit Clients oder anderen Microservices über leichte Kommunikationsmechanismen wie REST-API-Anforderungen. Anwendungen, die als Microservices entwickelt wurden, weisen die folgenden Merkmale auf:

  • Einfache Wartung und unabhängiges Deployment
  • Einfach skalierbar und hochverfügbar
  • Lose Kopplung mit anderen Services
  • Entwickelt mit der Programmiersprache und dem Framework, die am besten zum Problem passen

Containerisierung ist ein gängiger Ansatz für die Microservice-Architektur. Container verwenden BS-Virtualisierung und enthalten nur die Anwendung und die zugehörigen Binärdateien. Das sorgt für einen schnellen Start und erhöhte Sicherheit.

Containerisierung und Docker

Docker ist eine Open-Source-Plattform für Projekte und Containerisierung, mit der das Packaging von Anwendungen und deren Abhängigkeiten in Containern mit demselben Host-BS standardisiert wird. Verwenden Sie Docker-Container für eine schnelle, konsistente Bereitstellung Ihrer Anwendungen, responsives Deployment, Skalierung und Portabilität.

Ein Docker-Image ist eine schreibgeschützte Vorlage mit Anweisungen zum Erstellen eines Docker-Containers. Ein Docker-Image enthält die Anwendung, die Docker als Container ausführen soll, zusammen mit allen Abhängigkeiten. Zum Erstellen eines Docker-Images erstellen Sie zunächst eine Dockerfile zur Beschreibung dieser Anwendung und dann das Docker-Image aus der Dockerfile.

Docker-Images können in einer Registry gespeichert werden, wie OCI Container Registry. Ohne Registry wird es für Entwicklungsteams schwierig, ein konsistentes Set von Docker-Images für ihre containerisierten Anwendungen aufrechtzuerhalten. Ohne eine verwaltete Registry ist es schwierig, Zugriffsrechte und Sicherheits-Policys für Images durchzusetzen.

Tipp

Ein Einführungstutorial finden Sie unter Image per Push an Oracle Cloud Infrastructure Registry übergeben. Sie können auch eine LiveLab-Übung testen.

Kubernetes

Das Deployment containerisierter Anwendungen schafft ein neues Problem: die Verwaltung von Tausenden Containern. Kubernetes ist ein Open-Source-Tool, das den Containerlebenszyklus automatisch orchestriert und die Container auf die Hostinginfrastruktur verteilt. Kubernetes skaliert Ressourcen je nach Bedarf vertikal oder horizontal. Das Tool stellt Container bereit, plant und löscht sie und überwacht ihren Zustand.

Hinweis

Unter Was ist Kubernetes? werden einige wichtige Kubernetes-Konzepte und die Vorgeschichte behandelt.

OCI-Kubernetes-Engine

OCI Kubernetes Engine (OKE) (auch als OKE bezeichnet) ist ein vollständig verwalteter, skalierbarer und hoch verfügbarer Service, mit dem Sie Ihre containerisierten Anwendungen in der Cloud bereitstellen können.

Auch wenn Sie keinen verwalteten Kubernetes-Service verwenden müssen, ist die OCI Kubernetes Engine eine einfache Möglichkeit, hoch verfügbare Cluster mit der Kontrolle, Sicherheit und vorhersehbaren Performance von OCI auszuführen, sodass DevOps-Teams mehr Transparenz und Kontrolle erhalten.

Functions

Functions hostet Anwendungen, während sie von den tatsächlichen Servern abstrahiert werden. Die serverlose und elastische Architektur von Functions bedeutet, dass Sie weder Infrastruktur noch Software verwalten müssen. Sie müssen keine Compute-Instanzen bereitstellen oder verwalten, und Softwarepatches und -upgrades für das Betriebssystem werden automatisch angewendet. Functions stellt sicher, dass Ihre Anwendung hochverfügbar, skalierbar und sicher ist sowie überwacht wird. Sie können Code in Java, Python, Node, Go, Ruby und C# schreiben (und bei fortgeschrittenen Anwendungsfällen eine eigene Dockerfile und Graal VM verwenden). Anschließend können Sie Ihren Code bereitstellen, direkt aufrufen oder als Reaktion auf Ereignisse auslösen.

Hinweis

Testen Sie Functions in dieser LiveLab-Übung.
CI/CD

Kontinuierliche Integration und kontinuierliche Bereitstellung bzw. kontinuierliches Deployment (CI/CD) sind Best Practices für DevOps.

Bei der kontinuierlichen Integration integrieren Entwickler ihre gesamte Arbeit so schnell wie möglich im Lebenszyklus. Inkrementelle, häufige Codeänderungen werden je nach Bedarf basierend auf konstantem Feedback erstellt, getestet und überarbeitet. Eine Codeänderung sollte automatisch standardisierte Build-and-Test-Schritte auslösen, die sicherstellen, dass die im Repository zusammengeführten Codeänderungen fehlerfrei sind und mit dem vorhandenen Code funktionieren.

Bei der kontinuierlichen Bereitstellung werden Codeänderungen schnell von Entwicklern zu Benutzern geleitet. Nachdem der Code Einheiten-, Integrations-, Akzeptanz- und andere Tests bestanden hat, wird er entweder in einem automatisierten kontinuierlichen Deployment oder in einem manuellen kontinuierlichen Bereitstellungsprozess für die Produktion freigegeben.

OCI DevOps

Die Build- und Deployment-Pipelines sind das Herzstück des CI/CD-Workflows in DevOps.

Mit dem OCI DevOps-Service können Sie Build- und Deployment-Pipelines, die Aufrufe gezielterer Tools automatisieren, visuell aufbauen. DevOps kann flexibel mit Ihren vorhandenen CI/CD-Workflows integriert werden.

DevOps Projekte

Der erste Schritt beim Erstellen und Bereitstellen von Anwendungen mit dem OCI DevOps-Service ist das Erstellen eines DevOps Projekts. Ein DevOps-Projekt ist eine logische Gruppierung von DevOps-Ressourcen, die zur Implementierung eines CI/CD-Workflows erforderlich sind. Beim Einrichten des Projekts in der Konsole oder mit einer API oder CLI erstellen Sie die folgenden Ressourcen:

  • Ein externes oder OCI code-Repository, in dem Ihr Code gespeichert wird
  • Build-Pipelines oder ein definiertes Set von Phasen zum Erstellen, Testen und Kompilieren von Softwareartefakten, Bereitstellen von Artefakten in Repositorys und optional Auslösen eines Deployments
  • Artefakte, die in Deployments verwendet werden, sowie Artefakt-Repositorys und Container-Registrys, in denen diese gespeichert werden
  • Deployment-Pipelines oder Schritte zur Bereitstellung eines Sets von Artefakten oder erstellten Images aus einer Registry in einer Zielumgebung
  • Umgebungen oder Ressourcen, für die Artefakte bereitgestellt werden
Abbildung der DevOps-Projektkomponenten.

Mit DevOps-Projekten können Sie Ihre Lebenszyklusressourcen für die Softwarebereitstellung an einem zentralen Ort verwalten und einfach teilen. Wenn Sie OCI DevOps zusammen mit Artefakt-Repositorys verwenden, können Sie sicher sein, dass die für das Release bestimmte Softwareversion bereitgestellt wird und Sie ein Rollback auf eine bekannte vorherige Version durchführen können.

Hinweis

Projekte erleichtern die Überwachbarkeit aller DevOps-Ressourcen.

Code

Im DevOps-Service können Sie eigene private Code-Repositorys in einem OCI-Code-Repository ähnlich Git erstellen. Commits, Updates, Verzweigungen und Speicherauslastung sind in der Konsole sichtbar. Beim Erstellen eines Repositorys wird ihm eine Oracle Cloud-ID (OCID) zugewiesen. Sie können Repositorys auch bearbeiten, klonen und löschen.

Alternativ können Sie externe Code-Repositorys wie GitHub und GitLab verwenden oder ein externes Code-Repository aus GitHub, GitLab oder Bitbucket Cloud in einem OCI-Code-Repository spiegeln. Wenn Sie selbst gehostete Repositorys (GitLab-Server und Bitbucket-Server) mit privaten IP-Adressen verwenden, können Sie weiterhin über Ihre Pipelines darauf zugreifen.

Tipp

Weitere Informationen finden Sie unter Code-Repositorys verwalten und Phase "Verwalteter Build" hinzufügen.

Artefakte

Artefakte sind Referenzen zu Binärdateien, Packages, Kubernetes-Manifesten, Containerimages oder anderen Dateien, aus denen Ihre Anwendung besteht und die in einer Ziel-Deployment-Umgebung bereitgestellt werden. Von Ihrem Build generierte und in Ihrem Deployment verwendete Artefakte werden in Registrys gespeichert. OCI verfügt über zwei Typen von Registrys zum Speichern, Freigeben und Verwalten von Artefakten:

  • Container Registry ist ein offener, standardbasierter verwalteter Service, der mehrere Versionen von Docker oder anderen Containerimages sowie zugehörige Dateien wie Manifeste und Helm-Charts speichert. Diese Images können mit der Kubernetes-Engine (OKE) an ein Kubernetes-Cluster zum Deployment übertragen werden.
  • Artifact Registry speichert Softwarepackages, Librarys, ZIP-Dateien und andere Dateitypen, die für das Deployment von Anwendungen verwendet werden. Diese Dateien können aufgerufen werden, wenn die Deployment-Pipeline ausgelöst wird.
Hinweis

Sie können auch externe Artefakt-Registrys wie Sonatype oder Artifactory verwenden und diese in OCI Artifact Registry spiegeln. Das bedeutet, dass Sie Ihr aktuelles Setup weiterhin mit OCI DevOps verwenden können.

Build- und Deployment-Pipelines

OCI DevOps-Build- und Deployment-Pipelines reduzieren Fehler aufgrund von Änderungen sowie die Zeit, die Sie für Builds und Deployments aufwenden. Entwickler schreiben Quellcode in einem Code-Repository fest, erstellen und testen Softwareartefakte mit einem Build Runner, stellen Artefakte in OCI-Repositorys bereit und führen dann ein Deployment in OCI-Plattformen aus.

Mit DevOps können Sie verschiedene Deployment-Pipelinestrategien implementieren, darunter eine Blue/Green-Strategie (die aus zwei identischen Produktionsumgebungen besteht), eine Canary-Strategie und eine Rolling-Strategie.

Tipp

Ausführliche Pipelineanweisungen finden Sie unter Build-Pipelines verwalten und Deployment-Pipelines verwalten.

Logs aus den Build-Ausführungen und Deployments werden im OCI Logging-Service für Audit und Governance gespeichert. Ihr Team kann auch Benachrichtigungen zu Ereignissen in Ihren DevOps-Pipelines über den OCI Notifications-Service erhalten.

Hinweis

Sie können auch das Compute Jenkins-Plug-in verwenden, um die Build-Automatisierung zu zentralisieren und Deployments zu skalieren, Artefakte an OCI Artifact Registry zu übermitteln und DevOps-Deployment-Pipelines auszulösen.
Umgebungen

Eine Umgebung ist eine Sammlung der Compute-Ressourcen, für die Artefakte bereitgestellt werden. Dabei handelt es sich um die Zielplattform für Ihre Anwendung. Zu den in OCI unterstützten Ziellaufzeitumgebungstypen gehören VM- oder Bare-Metal-Compute-Instanzen in Oracle Linux und CentOS, Kubernetes-Engine und Functions. Welche Umgebung Sie für das Deployment auswählen, hängt von Ihren Anforderungen an Flexibilität, Sicherheit, Geschwindigkeit und andere Faktoren ab:

  • Bare-Metal-Hosts bieten die höchste Kontrolle, Sicherheit und Kosten. Sie stellen eine gute Option für Projekte dar, für die ein konstanterer, größerer oder separater und sicherer Bereich erforderlich ist. Siehe Überblick über Compute.
  • VMs ermöglichen mehr Vielseitigkeit, Skalierung und Ressourcenfreigabe. Gemeinsame Anwendungen und physische Hardware bieten Kosteneinsparungen, Disaster-Recovery-Geschwindigkeit und schnelleres Provisioning. Siehe Überblick über Compute.
  • Kubernetes Engine ist ideal für Umgebungen mit hoher Dichte sowie für kleine und mittlere Deployments geeignet, bei denen Sie mit weniger Ressourcen mehr erreichen müssen. Siehe Anwendungsdesign.
  • Functions eignet sich am besten für dynamische Workloads, bei denen sich die Nutzung häufig ändert, da Sie nur für Services bezahlen, wenn Sie sie verwenden.

Sie müssen Ihre Kubernetes-Engine-Cluster, Funktionen oder Compute-Instanzen erstellen, bevor Sie eine DevOps-Umgebung erstellen. Dann können Sie Referenzen zu verschiedenen Zielumgebungen für das DevOps-Deployment erstellen.

Sicherheit

DevSecOps ist ein Ansatz für Arbeitskultur, Automatisierung und Plattformdesign, der Sicherheit als gemeinsame Verantwortung während des gesamten DevOps-Lebenszyklus integriert.

Kontinuierliche Sicherheit umfasst drei wesentliche Elemente:

  • Wenn neue Features hinzugefügt werden, muss der Sicherheitsstatus kontinuierlich verbessert und aktualisiert werden. Neue oder geänderte Sicherheitskontrollen werden möglicherweise hinzugefügt (oder einige werden entfernt). Diese Kontrollen müssen während der Entwicklungs- und Deployment-Zyklen mit automatisierten Sicherheitstestsuites kontinuierlich getestet werden.
  • Cloudnative Anwendungen müssen für Resilienz erstellt werden. Da selbst sorgfältig entwickelte und getestete Software Sicherheitslücken enthalten kann, muss ein robustes Sicherheitsüberwachungssystem Eindringlinge und Infektionen in Echtzeit identifizieren. Automatisierte Vorfallsreaktionen müssen Services schützen.
  • Wenn neue Features über die CI/CD-Pipeline in der Produktion freigegeben werden, müssen Sicherheitscompliance-Prüfungen und Systeme für die Beurteilung von Sicherheitslücken in Anwendungen jedes neue Risikopotenzial messen und aufzeichnen. Risiken, die bei der Integration neuer Features identifiziert werden, erfordern eine erneute Überprüfung des Sicherheitskontroll-Frameworks, das geändert werden muss, um diese Risiken zu mindern.

IAM

Erstellen Sie Oracle Cloud Infrastructure Identity and Access Management-(IAM-)Policys, um zu steuern, wer Zugriff auf DevOps-Ressourcen hat und welchen Zugriffstyp jede Benutzergruppe erhält. In den folgenden Themen finden Sie einige zugehörige Grundlagen und Beispiele für Policys:

Vault

Als Best Practice verwenden DevOps-Entwickler den OCI-Vault-Service, um den Sicherheitsstatus für ihre Anwendungs- und Service-Deployments insgesamt zu verbessern.

Mit dem Vault-Service können Sie Verschlüsselungsschlüssel und Secrets zentral verwalten. Secrets sind Zugangsdaten wie Kennwörter, Token oder andere vertrauliche Daten, die Sie für die Verwendung mit anderen OCI-Services und externen Anwendungen oder Systemen benötigen. Das Speichern von Secrets in einem Vault ist sicherer als die Speicherung an anderer Stelle, wie z.B. in Code oder Konfigurationsdateien.

Vault ist direkt in OCI-Services, -SDKs und -API-Clients integriert und verarbeitet die Verschlüsselung von Kennwortzugangsdaten, die mit externen Anwendungen verwendet werden.

Best Practices zur Sicherheit für Kubernetes-Engine

Befolgen Sie bei Verwendung von OCI Kubernetes Engine die folgenden Best Practices zur Sicherheit:

  • Kontrollieren Sie den Zugriff auf die bereitgestellten Cluster mit IAM-Policys und rollenbasierten Zugriffskontrollregeln (Role-Based Access Control, RBAC) von Kubernetes. Siehe Info zu Zugriffskontrolle und Kubernetes-Engine (OKE).
  • Verschlüsseln Sie sensible Datenobjekte (wie Authentifizierungstoken und Zugangsdaten) als Kubernetes-Secrets, wenn sie in etcd gespeichert werden.
  • Mit Podsicherheits-Policys können Sie den Zugriff auf Ressourcen einschränken oder verhindern. Siehe Podsicherheits-Policys mit Kubernetes Engine (OKE) verwenden.
  • Verwenden Sie Knotenpoolsicherheit für Cluster und Pods.
  • Definieren Sie die Netzwerkzugriffsregeln für die Kommunikation mit und von Pods.
  • Definieren Sie Nutzungsmodelle für mehrere Mandanten für Kubernetes-Cluster (Isolation).
  • Verbessern Sie die Sicherheit von Containerimages durch Signaturverifizierung und Scannen von Sicherheitslücken. Siehe Images für Sicherheit signieren und Images auf Sicherheitslücken scannen.
Best Practices zur Sicherheit für Functions

Befolgen Sie bei Verwendung von OCI Functions die folgenden Best Practices zur Sicherheit:

Beobachtbarkeit

Mit DevOps-Tools können Sie einen vollständigen Überblick über die Funktionen Ihres Systems erhalten und die richtigen Metriken für die proaktive Überwachung auswählen. Sie müssen Probleme frühzeitig finden und in der Lage sein, den Zustand konstant zu überwachen.

Mit DevOps-Tools können Sie außerdem die End-to-End-Sicherheit von Informationssystemen sicherstellen, unabhängig davon, ob es sich um das physische Data Center, Netzwerke oder Anwendungen handelt.

Mit dem richtigen Ansatz zur Beobachtbarkeit können Sie Ausfallzeiten reduzieren, die mittlere Erkennungszeit (MTTD) und die mittlere Lösungszeit (MTTR) verkürzen und die Kundenzufriedenheit und Servicebereitstellung erhöhen.

Wichtige OCI-Services zur Beobachtbarkeit

Mit Monitoring können Sie Einblicke in OCI-Workloads mit DevOps-Metriken für Zustand und Performance erlangen. Sie können Alarme mit Schwellenwerten konfigurieren, um Infrastruktur- und Anwendungsanomalien zu erkennen und darauf zu reagieren.

Tipp

Obwohl OCI-Metriken in Diagrammen über die Konsole sichtbar sind, können Sie mit dem Grafana-Plug-in Metriken aus Ressourcen über mehrere Provider hinweg in einem einzelnen Grafana-Dashboard anzeigen.

Logging kann Logdaten aus Hunderten Quellen aufnehmen. Sie können Logs wie Auditlogs und Netzwerk-Flowlogs generieren und damit Sicherheitsprobleme diagnostizieren. In DevOps-Logs werden alle DevOps-Projektressourcenlogs ausgegeben.

Logging Analytics ist eine auf maschinellem Lernen basierende Cloud-Lösung, die alle Logdaten aus On-Premise- und Multicloud-Umgebungen überwacht, aggregiert, indexiert und analysiert. Damit können Sie diese Daten durchsuchen, explorieren und korrelieren, um Probleme schneller beheben, betriebliche Einblicke gewinnen und bessere Entscheidungen treffen zu können.

Notifications ist ein hochverfügbarer Publish/Subscribe-Service mit geringer Latenz, der Alerts und Nachrichten an Funktionen, E-Mail-Adressen und Nachrichtenübermittlungspartner wie Slack und PagerDuty sendet.

Events verfolgt Ressourcenänderungen anhand von Ereignissen, die dem CloudEvents-Standard der Cloud Native Computing Foundation (CNCF) entsprechen. Damit entfällt die Komplexität der manuellen Verfolgung von Änderungen über Cloud-Ressourcen hinweg. DevOps-Ereignisse sind JSON-Dateien, die mit bestimmten Servicevorgängen ausgegeben werden und Informationen zum jeweiligen Vorgang enthalten. Sie können Regeln definieren, die eine bestimmte Aktion auslösen, wenn ein Ereignis eintritt.

DevOps-Services und -Tools

Services
  • Application Dependency Management erkennt Sicherheitslücken in Anwendungsabhängigkeiten.
  • Application Performance Monitoring umfasst zahlreiche Features für die Überwachung von Anwendungen und die Diagnose von Performanceproblemen.
  • Artifact Registry stellt Repositorys zum Speichern, Teilen und Verwalten von Softwareentwicklungspackages bereit.
  • Mit der Kubernetes-Engine (OKE) können Sie Kubernetes-Cluster definieren und erstellen, um das Deployment, die Skalierung und die Verwaltung containerisierter Anwendungen zu ermöglichen.
  • Mit Container Registry können Sie Containerimages (wie Docker-Images) in einer von Oracle verwalteten Registry speichern, freigeben und verwalten.
  • Mit Konsolen-Dashboards können Sie benutzerdefinierte Dashboards in der Konsole erstellen, um Ressourcen, Diagnose und Schlüsselmetriken für Ihren Mandanten zu überwachen.
  • DevOps ist ein (CI/CD-)Service, der die Bereitstellung und das Deployment von Software automatisiert.
  • Mit Events können Sie Automatisierungen basierend auf den Statusänderungen von Ressourcen in Ihrem Mandanten erstellen.
  • Functions ist eine serverlose Plattform, mit der Sie Geschäftslogik ohne Infrastrukturverwaltung erstellen, ausführen und skalieren können.
  • IAM verwendet Identitätsdomains, um Identity and Access Management-Features wie Authentifizierung, Single Sign-On (SSO) und Identity Lifecycle Management bereitzustellen.
  • Logging bietet eine hoch skalierbare und vollständig verwaltete zentrale Schnittstelle für alle Logs in Ihrem Mandanten.
  • Mit Logging Analytics können Sie alle Logdaten aus Ihren Anwendungen und der Systeminfrastruktur indexieren, anreichern, aggregieren, explorieren, durchsuchen, analysieren, korrelieren, visualisieren und überwachen.
  • Mit Monitoring können Sie Metriken abfragen und Alarme verwalten. Mit Metriken und Alarmen können Sie Zustand, Kapazität und Performance Ihrer Cloud-Ressourcen überwachen.
  • Mit Notifications werden Nachrichten über ein Publish/Subscribe-Muster an verteilte Komponenten übertragen. Dabei werden sichere, äußerst zuverlässige und dauerhafte Nachrichten mit geringer Latenz bereitgestellt.
  • Resource Manager automatisiert Deployment und Vorgänge für alle OCI-Ressourcen mit dem IaC-Modell.
  • Streaming bietet eine vollständig verwaltete, skalierbare und dauerhafte Lösung zum Aufnehmen und Konsumieren von hochvolumigen Datenstreams in Echtzeit.
  • Vault-Service ist ein Verschlüsselungsverwaltungsservice, der Verschlüsselungsschlüssel und Secrets für den sicheren Zugriff auf Ressourcen speichert und verwaltet.
  • Vulnerability Scanning verbessert den Sicherheitsstatus, indem Hosts und Containerimages regelmäßig auf potenzielle Sicherheitslücken geprüft werden.