Einleitung zu tRick
This content is more than 4 years old and the cloud moves fast so some information may be slightly out of date.
Wer träumt nicht davon das Infrastructure as Code Framwork zu benutzen, das die eigenen Anforderungen bestens erfüllt? Aber wie findet man nun dieses eine richtige Framework für seinen Anwendungsfall, den “Alleskönner” oder den “Spezialisten”?
Auch wir bei tecRacer haben immer wieder mit unterschiedlichsten Infrastructure as Code Frameworks zu tun. Bei unseren Projekten im AWS Umfeld steht uns eine große Zahl an möglichen Tools zur Verfügung.
Aber worin genau besteht der Vorteil von Infrastructure as Code Frameworks gegenüber einer manuellen Bereitstellung von Infrastruktur-Resourcen?
Zum einen geht es um Konfigurationskonsistenz, zum anderen geht es um Wiederwerwendbarkeit von bereits erstellten Templates. Solch ein Template sieht je nach Infrastructure as Code Framework natürlich unterschiedlich aus. Es gibt im Grunde zwei Ansätze:
-
Deklarative Programmierung: Es wird ein Template erstellt indem der gewünschte Infrastrukturzustand deklariert wird.
-
Imperative Programmierung: Es werden die notwendigen Schritte zum gewünschten Infrastrukturzustand angegeben, hierbei kommt der Idempotenz der Skripte eine zentrale Bedeutung zu.
Nun aber zu den unterschiedlichen Infrastructure as Code Frameworks!
Mit CloudFormation bietet AWS ein eigenes Infrastructure as Code Framework an. Aber auch OpenSource Tools wie Terraform (HashiCorp) oder SparkleFormation kommen zum Einsatz. Erst kürzlich hat AWS mit dem Cloud Development Kit (AWS CDK) in der Developer Preview ein zusätzliches Framework angekündigt.
Weitere interessante Frameworks sind unter anderem:
Einige davon nutzen Programmiersprachen wie Go oder Python, um CloudFormation Templates zu erzeugen. Diese können dann genutzt werden, um Infrastructure-Resourcen bereitzustellen. Bei der immer größer werdenden Anzahl an Frameworks wird die Entscheidung welches davon zu nutzen ist eine Glaubensfrage. Die Diskussionen zwischen den Anhängern der unterschiedlichsten Frameworks kann Abende füllen wenn man möchte.
Das muss nicht so sein, denn hier kommt tRick ins Spiel.
Mit tRick (tecRacer Infrastructure as Code Kennzahlen) wollen wir anhand von standardisierten Anwendungsfällen die unterschiedlichen Frameworks auf ihre Tauglichkeit hin untersuchen. Dazu werden wir in folgenden Blogbeiträgen die Anwendungsfälle definieren und die unterschiedlichen Infrastructure as Code Frameworks gegeneinander antreten lassen. Die dabei entstandenen SourceCode Templates werden wir über GitHub veröffentlichen, um die Transparenz der Benchmarks zu erhöhen. Die Anwendungsfälle orientieren sich dabei an grundlegenden wiederkehrenden Tätigkeiten, die in Projekten auftreten.