Sebastian Neb
Lead Developer
Wenn man Cloud hört, denkt man meist zuerst an AWS oder Azure. Weniger bekannt und auch, gemessen an den Nutzungszahlen, weniger verbreitet ist die Google Cloud.
In einem aktuellem Projekt von uns setzt eine Bank aus Überzeugung auf die Google Cloud und möchte ihr Onlinebanking damit Cloud-Ready machen. Mit von der Partie ist Senacor schon seit Tag 1 zusammen mit Google-Entwicklern, die uns zeigten, wie man in der Google Cloud eine richtige Organisationsstruktur aufsetzen kann und die Kernfragen wie Compliance und Security direkt beantwortet.
Im meinem Vortrag im Kontext der Senacor „StreamedCon” möchte ich Euch die Google Cloud und dessen Kernfunktionalitäten näher bringen und dabei aufzeigen, wie man eine Organisationsstruktur vollautomatisiert mit Terraform und Terragrunt aufsetzen kann. Vorkenntnisse sind keine benötigt, auf die Grundlagen der jeweiligen Tools wird nochmals eingegangen.
Im Vortrag werden die folgenden Punkte genauer beschrieben, um eine komplette Organisationsstruktur aufzusetzen:
- Einführung in die Google Cloud (Projekte, Ordner, Organisation, Suite)
- IAM und Rechtemanagement
- Shared VPC
- Einführung in Terraform & Terragrunt
- Automatisierung einer Organisationsstruktur mit Terragrunt.
Als Alternative zum Video wird nachfolgend genauer auf die wichtigsten Punkte beim Aufbau eines produktionsreifen Google Cloud-Setups eingegangen. Dabei werden die wichtigsten Konzepte, Tools und Vorgehen für den Aufbau eines automatisierten produktionsreifen Google Cloud-Setups beschrieben.
Die Basis bildet dabei ein Projekt und dient dabei als Rahmen für die einzelnen Tools, Produkte und Dienste, welche in der Google Cloud zu Verfügung stehen wie beispielsweise Google VPC oder GKE.
Google Organizations
Ein Projekt muss dabei einer weiteren Einheit untergeordnet sein, um beispielsweise eine Abrechnung der verwendeten Tools und Produkte zu ermöglichen. Dies kann durch einen Google Account geschehen. Ein Account kann dabei mehrere Projekte umfassen und somit eine abgeschlossene, organisatorische Einheit bilden.
Die Abbildung (wie dargestellt im obigen Bild) ist für kleine Organisationen ausreichend, da verschiedene Projekte voneinander getrennt gemanaged werden können und eine entsprechende Abrechnung stattfinden kann. Bei größeren Organisationen, die ein für die Organisation einheitliches User- und Rechtemanagement benötigen, sollten sogenannte Google Organizations verwendet werden.
Mit den Google Organizations können komplexe Setups mit einer Trennung in verschiedene Stages wie Development, Staging und Production von verschiedenen Projekten aufgebaut werden. Die Abrechnung und das User- und Rechtemanagement kann zentral für eine gesamte Organisation abgebildet werden und ist dadurch für alle Stages und Projekte einheitlich.
Shared VPC
Shared VPC bieten die Möglichkeit, ein geteiltes Netzwerk aufzubauen, welches über mehrere Projekte hinweg genutzt werden kann.
Hierfür wird ein Shared VPC erzeugt und der Kubernetes Engine zur Verfügung gestellt, so dass kein separates Netzwerk für Kubernetes selbst erstellt werden muss, sondern das bereitgestellte verwendet wird. Damit stehen alle Verbindungen innerhalb des definierten Shared VPC den Anwendungen innerhalb des Kubernetes zur Verfügung.
Terragrunt
Terragrunt ist ein Wrapper für Terraform, um durch die Verwendung von Modulen den Aufbau von Terraform Konfigurationen zu vereinfachen. Terraform bietet die Möglichkeit der Deklaration von Infrastrukturen, um das Setup einer oben beschriebenen Organisationsstruktur zu automatisieren und damit nach einem initialen Aufbau beispielsweise zu erweitern. Terragrunt ermöglicht eine einfachere und sich weniger wiederholende Konfiguration der Infrastruktur.
Terraform kann grundsätzlich durch Module erweitert werden. Ein Modul ist z.B. für das Setup von Google Cloud-Organisationen vorhanden, sodass Terraform auch für den Aufbau von dedizierten Cloud Providern verwendet werden kann. Diese Module sind OpenSource und können entsprechend eingebunden oder, wenn notwendig, erweitert werden.
Für den Aufbau eines produktreifen Google Cloud Setups stehen entsprechende Terragrunt Module zur Verfügung, sodass das Setup deklarativ definiert und somit einfach zu erweitern und wiederherstellbar ist.
Fazit
Die Google Cloud fühlt sich in der Nutzung sehr gut an und man schafft es sehr schnell eine Organisation mit benötigten Rollen- und Rechte-Konzept aufzusetzen. Ein Aufbau einer ähnlichen Organisation ist bei AWS erfahrungsgemäß etwas komplexer und langwieriger.
Nichtsdestotrotz sind viele der Produkte bzw. Features noch in der Beta-Phase, so dass man sich vorher genau anschauen sollte, was man nutzen möchte und ob die Funktionalitäten bereits voll verfügbar sind.
Ich bin gespannt darauf, wie sich die Google Cloud in den nächsten Jahren entwickeln wird und ob Google es schaffen wird, AWS und Azure erfolgreich herauszufordern.