Zum Inhalt

Containerization in gcp


Was ist Containerization?

Containerisierung ist ein Thema, das in den letzten Jahren im Bereich der Softwareentwicklung stark an Bedeutung gewonnen hat. Dies wurde durch die Notwendigkeit der kontinuierlichen Integration (CI) und des kontinuierlichen Deployments (CD) bei der Erstellung von Software notwendig. Um den CI/CD-Aspekt der Softwarearchitektur zu erreichen, nutzen Entwickler Container. Ein Container ist im Wesentlichen eine vollständig verpackte, portable und eigenständige Rechenumgebung. Containerisierung kann somit als eine Form der Virtualisierung eines Betriebssystems definiert werden, um portable, leichtgewichtige, softwaredefinierte Umgebungen zu schaffen, in denen Software isoliert von anderer Software, die auf der physischen Host-Maschine läuft, ausgeführt werden kann. 

Eine ganze Reihe von Produkten wie Docker, Kubernetes, Tools und Best Practices sind entstanden, um die Containerisierung einer Vielzahl von Anwendungen zu ermöglichen. Sie können so gut wie jede Softwareanwendung containerisieren, angefangen bei Microservices, Webservern, Datenbankmanagementsystemen, Containern innerhalb von VMs zur Erhöhung der Sicherheit und mehr. 

Große Cloud-Anbieter wie Google, Azure, AWS, Digital Ocean und andere kämpfen um den Spitzenplatz bei der Bereitstellung von Umgebungen für die Ausführung von Containern. Google als datenfokussierter Tech-Gigant ist dabei ein Vorreiter, da es neben der Containerisierung auch andere Dienste wie Big Data, Machine Learning usw. anbietet.

How to – Containerization in the Google Cloud?

Google Cloud ist groß auf Containerisierung, in der Tat läuft bei Google alles in Containern. Die Vorteile der Containerisierung werden in einem Abschnitt weiter unten näher erläutert. Google stellt die notwendigen Werkzeuge zur Verfügung, die du für die Nutzung von Containern benötigst, von der Entwicklung bis zur Produktion. Diese Werkzeuge und Lösungen beinhalten:

  • Google Cloud Run - ist eine Google Cloud-Implementierung, die es dir ermöglicht, zustandslose/serverlose Container zu betreiben, die du über das Web oder Pub/Sub-Events aufrufen kannst. Sie skaliert automatisch hoch und runter, je nachdem wie viel Traffic auf deine Anwendung trifft. 
  • Google Kubernetes Engine (GKE) - ist eine Container Management Lösung der Google Cloud, die sich um die Gesundheit, den Status, die Skalierung und die Planung deiner Container kümmert. Wenn sie richtig konfiguriert ist, kann GKE ausfallende Nodes automatisch reparieren. 
  • Google Container Registry (GCR) - Container-Registries sind wie Repositories, in denen Entwickler ihre Container hosten, entweder privat oder öffentlich für andere Entwickler zur Nutzung. Docker hub ist ein Beispiel für eine Container Registry. GCR bietet seinen Nutzern eine ähnliche Lösung, bei der du die Sichtbarkeit deiner Container-Images pushen, ziehen und verwalten kannst. 
  • Google Compute Engine (GCE) - Dies ist die Infrastruktur, in der du virtuelle Maschinen auf Abruf bereitstellen und diese virtuellen Maschinen dann nutzen kannst, um deine Container auszuführen. 
  • Google's Container Optimized OS - Google Cloud hat ein Betriebssystem-Image entwickelt, das auf dem Open-Source-Projekt Chromium OS basiert. Es ist für die Ausführung von Docker-Containern optimiert. Es bietet schnelle Boot-Zeiten und kommt mit allen Kubernetes-Komponenten für das Container-Management installiert. Es verfügt über cloud-init, das Metadaten-Framework der Compute Engine, und die notwendigen Tools, um eine Instanz während des Bootvorgangs zu konfigurieren, damit deine Anwendung schnell genug bedient wird.

Containerization Benefits

  • Skalierbarkeit - das ist einer der Hauptgründe, warum Container so beliebt sind. Container können neben anderen Containern auf demselben Computer residieren, ohne sich gegenseitig in der Verarbeitung zu stören. Dies erspart dir viel Serverplatz für deine Anwendungen. 
  • Portabilität - Container sind so konzipiert, dass sie bequem in jedem digitalen Arbeitsbereich laufen. Grundsätzlich wird die Anwendung innerhalb des Containers auf jedem Host-Betriebssystem, das du verwendest, gleich laufen. Du kannst vorhersagen, wie deine Anwendung über verschiedene Implementierungen hinweg laufen wird.
  • Automatisiertes Containermanagement - durch Lösungen wie Kubernetes kannst du Deployments, Neustarts im Falle eines Fehlers und Rollbacks automatisieren. Wenn deine Anwendung zum Beispiel mehr Traffic bekommt, als sie bewältigen kann, kann eine andere containerisierte Anwendung gestartet werden, um die Last auszugleichen und sicherzustellen, dass deine Nutzer keine Ausfallzeiten erleben. 
  • Verlässlichkeit - Container sind isoliert und selbständig. Ein Ausfall eines Containers, der auf einem Host-Betriebssystem läuft, hat keine Auswirkungen auf die anderen Container. Du kannst mehrere Instanzen deiner Anwendung in mehreren Containern laufen lassen, und wenn ein Container einen Absturz hat, laufen die anderen Instanzen weiter.
gke autopilot
Google Kubernetes Engine Autopilot

GKE is a managed platform for deploying, managing, and scaling containerized applications on Google Cloud infrastructure. The GKE setup comprises multiple Compute Engine instances….

load balancing
Load Balancing in GCP

 Cloud Load Balancing (CLB) is a fully distributed software-defined service that balances user traffic to multiple backends to lower congestion and ensure low latency. This service is designed…

knative
What is Knative?

Knative is a platform built on top of Kubernetes that enables you to build, deploy, and manage modern serverless workloads. Kubernetes is the infrastructure that manages containerized…

Sign up to our newsletter and stay up to date with the latest news!