Der Google Way

Von Google Mail zu YouTube zu suchen, alles bei Google läuft in Containern. Durch die Containerisierung können sich unsere Entwicklungsteams schnell bewegen, Software effizient einsetzen und in einem beispiellosen Umfang arbeiten. Jede Woche starten wir über mehrere Milliarden Container., Wir haben in den letzten zehn Jahren viel über die Ausführung containerisierter Workloads in der Produktion gelernt und dieses Wissen auf dem Weg mit der Community geteilt: von den Anfängen des Beitrags von Cgroups zum Linux-Kernel über die Erstellung von Designs aus unseren internen Tools und Open Sourcing als Kubernetes-Projekt. Wir haben dieses Know-how in die Google Cloud Platform gepackt, damit Entwickler und Unternehmen jeder Größe problemlos die neuesten Container-Innovationen nutzen können.

– Container 101: Was sind Container?,

Container bieten einen logischen Verpackungsmechanismus, bei dem Anwendungen von der Umgebung abstrahiert werden können, in der sie tatsächlich ausgeführt werden. Durch diese Entkopplung können containerbasierte Anwendungen einfach und konsistent bereitgestellt werden, unabhängig davon, ob es sich bei der Zielumgebung um ein privates Rechenzentrum, die Public Cloud oder sogar den persönlichen Laptop eines Entwicklers handelt., Die Containerisierung bietet eine saubere Trennung von Bedenken, da Entwickler sich auf ihre Anwendungslogik und Abhängigkeiten konzentrieren, während sich IT-Betriebsteams auf die Bereitstellung und Verwaltung konzentrieren können, ohne sich um Anwendungsdetails wie bestimmte Softwareversionen und app-spezifische Konfigurationen zu kümmern.

Für diejenigen, die aus virtualisierten Umgebungen kommen, werden Container häufig mit virtuellen Maschinen (VMs) verglichen., Möglicherweise sind Sie bereits mit VMs vertraut: Ein Gastbetriebssystem wie Linux oder Windows wird auf einem Hostbetriebssystem mit virtualisiertem Zugriff auf die zugrunde liegende Hardware ausgeführt. Wie bei virtuellen Maschinen können Sie mit Containern Ihre Anwendung zusammen mit Bibliotheken und anderen Abhängigkeiten packen und isolierte Umgebungen für die Ausführung Ihrer Softwaredienste bereitstellen. Wie Sie unten sehen werden, enden die Ähnlichkeiten hier, da Container eine weitaus leichtere Einheit für Entwickler und IT-Ops-Teams bieten, mit der Sie arbeiten können, was eine Vielzahl von Vorteilen mit sich bringt.,

Virtuelle Maschinen enthalten die folgenden Einheiten, die zur Visualisierung übereinander gestapelt sind: App, Bin/Libs, Gastbetriebssystem, Hypervisor, Hostbetriebssystem, Infrastruktur. Container enthalten die folgenden Einheiten, die zur Visualisierung übereinander gestapelt sind: App, Bin/Libs, Container-Laufzeit, Host-Betriebssystem, Infrastruktur.

Warum Container?,

Anstatt den Hardwarestapel wie beim Ansatz für virtuelle Maschinen zu virtualisieren, virtualisieren Container auf Betriebssystemebene, wobei mehrere Container direkt auf dem Betriebssystemkern ausgeführt werden. Dies bedeutet, dass Container weitaus leichter sind: Sie teilen sich den Betriebssystemkern, starten viel schneller und verwenden einen Bruchteil des Speichers im Vergleich zum Booten eines gesamten Betriebssystems.

Es stehen viele Containerformate zur Verfügung. Docker ist ein beliebtes Open-Source-Containerformat, das auf der Google Cloud Platform und von der Google Kubernetes Engine unterstützt wird.

Warum Sandbox “ überhaupt?,

Container Silo-Anwendungen voneinander, es sei denn, Sie explizit verbinden. Das bedeutet, dass Sie sich keine Gedanken über widersprüchliche Abhängigkeiten oder Ressourcenkonflikte machen müssen — Sie legen explizite Ressourcenlimits für jeden Dienst fest. Wichtig ist, dass es sich um eine zusätzliche Sicherheitsebene handelt, da Ihre Anwendungen nicht direkt auf dem Host-Betriebssystem ausgeführt werden.

Konsistente Umgebung

Container geben Entwicklern die Möglichkeit, vorhersehbare Umgebungen zu erstellen, die von anderen Anwendungen isoliert sind., Container können auch Softwareabhängigkeiten enthalten, die von der Anwendung benötigt werden, z. B. bestimmte Versionen von Programmiersprachenlaufzeiten und andere Softwarebibliotheken. Aus der Sicht des Entwicklers ist all dies garantiert konsistent, unabhängig davon, wo die Anwendung letztendlich bereitgestellt wird. All dies führt zu Produktivität: Entwickler und IT-Ops-Teams verbringen weniger Zeit mit dem Debuggen und Diagnostizieren von Umgebungsunterschieden und mehr Zeit mit dem Versand neuer Funktionen für Benutzer., Und es bedeutet weniger Fehler, da Entwickler jetzt Annahmen in Entwicklungs-und Testumgebungen treffen können, von denen sie sicher sein können, dass sie in der Produktion zutreffen.

Run Anywhere

Container können praktisch überall ausgeführt werden, was die Entwicklung und Bereitstellung erheblich erleichtert: unter Linux -, Windows-und Mac-Betriebssystemen; auf virtuellen Maschinen oder Bare Metal; auf einem Entwicklercomputer oder in Rechenzentren vor Ort; und natürlich in der Public Cloud. Die weit verbreitete Beliebtheit des Docker-Image-Formats für Container trägt weiter zur Portabilität bei., Wo immer Sie Ihre Software ausführen möchten, können Sie Container verwenden.

Isolation

Container virtualisieren CPU -, Speicher -, Speicher-und Netzwerkressourcen auf Betriebssystemebene und bieten Entwicklern eine Sandbox-Ansicht des Betriebssystems, das logisch von anderen Anwendungen isoliert ist.,

check check Application Sandboxing check check Small Size on Disk check Low Overhead check
From Code to Applications

Mit Containern können Sie Ihre Anwendung und ihre Abhängigkeiten zu einem prägnanten Manifest zusammenpacken, das versionskontrolliert werden kann und eine einfache Replikation Ihrer Anwendung zwischen Entwicklern in Ihrem Team und Maschinen in Ihrem Cluster ermöglicht.,

So wie Softwarebibliotheken Codebits zusammenpacken und es Entwicklern ermöglichen, Logik wie Benutzerauthentifizierung und Sitzungsverwaltung zu abstrahieren, ermöglichen Container das Verpacken Ihrer Anwendung als Ganzes und abstrahieren das Betriebssystem, die Maschine und sogar den Code selbst. In Kombination mit einer servicebasierten Architektur wird die gesamte Einheit, über die Entwickler nachdenken müssen, viel kleiner, was zu mehr Agilität und Produktivität führt. All dies erleichtert die Entwicklung, das Testen, die Bereitstellung und die allgemeine Verwaltung Ihrer Anwendungen.,

Monolithische bis Service-basierte Architektur

Container funktionieren am besten für Service-basierte Architekturen. Im Gegensatz zu monolithischen Architekturen, bei denen alle Teile der Anwendung miteinander verflochten sind — von IO über Datenverarbeitung bis hin zu Rendering—, trennen Service-basierte Architekturen diese in separate Komponenten. Durch die Trennung und Arbeitsteilung können Ihre Dienste auch dann weiter ausgeführt werden, wenn andere ausfallen, wodurch Ihre Anwendung insgesamt zuverlässiger bleibt.,

Mit der Komponentisierung können Sie auch schneller und zuverlässiger entwickeln; kleinere Codebasen sind einfacher zu warten und da die Dienste getrennt sind, ist es einfach, bestimmte Eingaben auf Ausgänge zu testen.

Container eignen sich perfekt für Service-basierte Anwendungen, da Sie jeden Container automatisch überprüfen, jeden Dienst auf bestimmte Ressourcen beschränken und unabhängig voneinander starten und stoppen können.

Und da Container den Code abstrahieren, können Sie mit Containern separate Dienste als Black Boxes behandeln, wodurch der Speicherplatz, um den sich ein Entwickler kümmern muss, weiter verringert wird., Wenn Entwickler an Diensten arbeiten, die von einem anderen abhängen, können sie problemlos einen Container für diesen bestimmten Dienst starten, ohne zuvor Zeit mit dem Einrichten der richtigen Umgebung und der Fehlerbehebung verschwenden zu müssen.

Finden Sie die drei besten Möglichkeiten heraus, wie Sie Ihre Container in Google Cloud ausführen können!

Google Kubernetes Engine für eine Container-Orchestrierungslösung, Cloud Run für einen vollständig serverlosen Ansatz und Compute Engine für die einfache Verwendung virtueller Maschinen.,

Kubernetes: Container Orchestration in Produktionsqualität

Wir hatten so viel Erfolg mit unserem internen Cluster-Management-System Borg, dass wir das Gelernte in das Open-Source-Projekt Kubernetes aufgenommen haben. Jetzt können Sie und andere Unternehmen von unserer jahrzehntelangen Erfahrung profitieren., Kubernetes wird auch als „k8s“ bezeichnet und bietet Ihnen eine automatisierte Containerorchestrierung – Verwaltung Ihrer Maschinen und Dienste -, die Ihre Zuverlässigkeit verbessert und die Zeit und Ressourcen reduziert, die Sie für DevOps aufwenden müssen, ganz zu schweigen von der Belastung, die mit diesen Aufgaben verbunden ist.

Kubernetes erleichtert die Bereitstellung und Verwaltung Ihrer Anwendung. Kubernetes automatisiert Rollouts und Rollbacks und überwacht den Zustand Ihrer Dienste, um schlechte Rollouts zu verhindern, bevor es schlecht wird., Außerdem werden kontinuierlich Zustandsprüfungen für Ihre Dienste durchgeführt, Container neu gestartet, die fehlschlagen oder zum Stillstand gekommen sind, und nur Werbedienste für Clients, wenn bestätigt wurde, dass sie erfolgreich gestartet wurden. Darüber hinaus skaliert Kubernetes Ihre Dienste automatisch basierend auf der Auslastung nach oben oder unten und stellt sicher, dass Sie nur das ausführen, was Sie benötigen, wenn Sie es benötigen. Wie Container können Sie mit Kubernetes Ihren Cluster deklarativ verwalten, sodass Ihr Setup versionskontrolliert und einfach repliziert werden kann.,

Kubernetes Features
  • check Automated rollouts and roll backs
  • check Service health monitoring
  • check Automatic scaling of services
  • check Declarative management
  • check Deploy anywhere, including hybrid deployments

Vielleicht am wichtigsten ist, Kubernetes ist gebaut, um überall verwendet werden, so dass Sie über On-Site-Bereitstellungen zu öffentlichen Clouds zu hybriden Bereitstellungen dazwischen zu orchestrieren., Auf diese Weise kann Ihre Infrastruktur Ihre Benutzer dort erreichen, wo sie sich befinden, Ihre Anwendungen eine höhere Verfügbarkeit aufweisen und Ihr Unternehmen Ihre Sicherheits-und Kostenbedenken in Einklang bringen, die alle auf Ihre spezifischen Anforderungen zugeschnitten sind.

Ihr Cluster auf Google

Kubernetes läuft natürlich am besten auf der Google Cloud Platform. Google Kubernetes Engine ist die führende verwaltete Kubernetes-Lösung, mit der Sie schnell eingerichtet und produktionsbereit sind.,

Kubernetes Engine wird vollständig von Google Reliability Engineers verwaltet, die Container am besten kennen und sicherstellen, dass Ihr Cluster hochverfügbar und aktuell ist. Es lässt sich nahtlos in alle GCP-Dienste wie Stackdriver-Überwachung, Diagnose und Protokollierung, Identitäts-und Zugriffsmanagement sowie die erstklassige Netzwerkinfrastruktur von Google integrieren.

Kubernetes Engine-Funktionen
  • Überprüfen Sie verwaltete Open-Source-Kubernetes
  • Überprüfen Sie 99.,5% SLA und hohe Verfügbarkeit mit integrierten Multizonenbereitstellungen
  • Überprüfen Sie die nahtlose Integration anderer GCP-Dienste
  • Überprüfen Sie den branchenführenden Preis pro Leistung
  • Überprüfen Sie Flexible & interoperabel mit Ihren lokalen Clustern oder anderen Cloud-Anbietern
  • Überprüfen Sie die verwaltete Google-Infrastruktur

Aber wir geben Ihnen gerne Optionen. Die Google Cloud Platform bietet Ihnen ein volles Spektrum für die Ausführung Ihrer Container., Von einer vollständig verwalteten Umgebung mit Google Cloud Run über die Clusterverwaltung mit Kubernetes Engine bis hin zur Roll-it-yourself-Infrastruktur mit der erstklassigen Preis-Leistungs-Google Compute Engine finden Sie Ihre ideale Lösung für die Ausführung von Containern auf der Google Cloud Platform.

Die komplette Containerlösung

Es hört hier nicht auf. Die Google Cloud Platform bietet die Tools, die Sie benötigen, um Container von der Entwicklung bis zur Produktion zu verwenden., Cloud Build und Container Registry bieten Docker-Bildspeicherung und-verwaltung, die sowohl von den hohen Sicherheitsstandards von Google als auch von einem erstklassigen Netzwerk unterstützt werden. Das containeroptimierte Betriebssystem von Google bietet ein leichtes und hochsicheres Betriebssystem, das mit vorinstallierten Docker-und Kubernetes-Laufzeiten geliefert wird. Alle Ihre Containerverwaltung kann auf GCP stattfinden.

Articles

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.