© Liashko/Shutterstock.com
Entwickler Magazin
DevOps-Werkzeuge für Amazon Web Services

DevOps in der Cloud

Die klassische Strukturierung von Organisationen bestand in der Isolierung der Fachgebiete, was zur Folge hatte, dass der Grad der Integration von Entwicklung, Infrastruktur, Sicherheit und Support nur minimal ist. Jede dieser Gruppen hatte andere Ziele, Werte und Vorstellungen. Das führt zwangsläufig - früher oder später - zu Reibungen, Silodenken und Problemen. Mit DevOps werden die Barrieren zwischen den einzelnen Abteilungen über die Zeit langsam aufgelöst: Was zählt, ist Time to Market. Im Folgenden wird gezeigt, mit welchen Werkzeugen und Mustern DevOps in Amazon Web Services (AWS) genutzt werden kann.

Sascha Möllering


Ein wesentliches Prinzip von DevOps besteht darin, Infrastruktur genauso wie den Quellcode von Anwendungen zu behandeln (Infrastructure as Code). Es gelten also dieselben Regeln und dieselben Standards. Das bedeutet natürlich ebenfalls, dass Infrastruktur – wie der Anwendungscode auch – in Versionsverwaltungssystemen wie z. B. Git verwaltet, automatisiert getestet, getaggt und ausgeliefert werden kann. Ein Werkzeug, um diese DevOps-Prinzipien zu implementieren, ist das Konfigurationsmanagement-Tool Chef [1]. Chef wurde kürzlich in Ruby und Erlang vollständig neu implementiert, der Chef-Server ist dadurch signifikant schneller geworden. Um Infrastruktur deklarativ beschreiben zu können, bietet Chef eine Ruby-DSL. Ein zentraler Bestandteil bei Chef sind die so genannten Cookbooks, die aus einzelnen Recipes bestehen. Ein Cookbook beschreibt ein Stück Infrastruktur, wobei ein Cookbook auf ein oder mehrere Server angewendet werden kann. Zentrales Werkzeug für die Arbeit mit Chef ist „knife“, das die Verbindung zwischen dem lokalen Chef-Repository und dem Chef-Server darstellt. Mit diesem Werkzeug können Cookbooks erstellt und verwaltet werden. Um Chef-Cookbooks in AWS zu nutzen, kann das Knife-Plug-in für EC2 [2] verwendet werden. Mithilfe dieses Zusatzmoduls können in AWS EC2-Instanzen erzeugt und verwaltet werden. Folgendes Beispiel erzeugt einen NGINX-Server auf Basis einer t2.small-Instanz mit Amazon Linux:

knife ec2 server create -r 'recipe[nginx::default]' -I ami-9d23aeea -f t2.small -A 'Your AWS Access Key ID' -K "Your AWS Secret Access Key"

Eine deutlich bessere Integration zwischen AWS und Chef kann mit dem Service Amazon OpsWorks [3] erreicht werden, der vollständig auf einer angepassten Version von Chef Zero [4] aufbaut. Auf OpsWorks wird im Abschnitt Continuous Deployment noch einmal genauer eingegangen. Chef stößt allerdings schnell an seine Grenzen, zum Beispiel wenn es darum geht, Managed Services von AWS wie z. B. ElastiCache zu konfigurieren. Um diese Aufgabe dennoch zu bewältigen, bietet Amazon das Konfigurationswerkzeug AWS CloudFormation [5] an. CloudFormation implementiert eine auf JSON basierende Beschreibungssprache, um Infrastrukturvorlagen zu erstellen. Innerhalb eines CloudFormation-Templates können Beziehungen zwischen den einzelnen Infrastrukturkomponenten definiert werden. Durch die Verwendung von Parametern bzw. Variablen können die Vorlagen sehr leicht wiederverwertet werden, um beispielsweise Infrastruktur automatisiert in unter...

Entwickler Magazin
DevOps-Werkzeuge für Amazon Web Services

DevOps in der Cloud

Die klassische Strukturierung von Organisationen bestand in der Isolierung der Fachgebiete, was zur Folge hatte, dass der Grad der Integration von Entwicklung, Infrastruktur, Sicherheit und Support nur minimal ist. Jede dieser Gruppen hatte andere Ziele, Werte und Vorstellungen. Das führt zwangsläufig - früher oder später - zu Reibungen, Silodenken und Problemen. Mit DevOps werden die Barrieren zwischen den einzelnen Abteilungen über die Zeit langsam aufgelöst: Was zählt, ist Time to Market. Im Folgenden wird gezeigt, mit welchen Werkzeugen und Mustern DevOps in Amazon Web Services (AWS) genutzt werden kann.

Sascha Möllering


Ein wesentliches Prinzip von DevOps besteht darin, Infrastruktur genauso wie den Quellcode von Anwendungen zu behandeln (Infrastructure as Code). Es gelten also dieselben Regeln und dieselben Standards. Das bedeutet natürlich ebenfalls, dass Infrastruktur – wie der Anwendungscode auch – in Versionsverwaltungssystemen wie z. B. Git verwaltet, automatisiert getestet, getaggt und ausgeliefert werden kann. Ein Werkzeug, um diese DevOps-Prinzipien zu implementieren, ist das Konfigurationsmanagement-Tool Chef [1]. Chef wurde kürzlich in Ruby und Erlang vollständig neu implementiert, der Chef-Server ist dadurch signifikant schneller geworden. Um Infrastruktur deklarativ beschreiben zu können, bietet Chef eine Ruby-DSL. Ein zentraler Bestandteil bei Chef sind die so genannten Cookbooks, die aus einzelnen Recipes bestehen. Ein Cookbook beschreibt ein Stück Infrastruktur, wobei ein Cookbook auf ein oder mehrere Server angewendet werden kann. Zentrales Werkzeug für die Arbeit mit Chef ist „knife“, das die Verbindung zwischen dem lokalen Chef-Repository und dem Chef-Server darstellt. Mit diesem Werkzeug können Cookbooks erstellt und verwaltet werden. Um Chef-Cookbooks in AWS zu nutzen, kann das Knife-Plug-in für EC2 [2] verwendet werden. Mithilfe dieses Zusatzmoduls können in AWS EC2-Instanzen erzeugt und verwaltet werden. Folgendes Beispiel erzeugt einen NGINX-Server auf Basis einer t2.small-Instanz mit Amazon Linux:

knife ec2 server create -r 'recipe[nginx::default]' -I ami-9d23aeea -f t2.small -A 'Your AWS Access Key ID' -K "Your AWS Secret Access Key"

Eine deutlich bessere Integration zwischen AWS und Chef kann mit dem Service Amazon OpsWorks [3] erreicht werden, der vollständig auf einer angepassten Version von Chef Zero [4] aufbaut. Auf OpsWorks wird im Abschnitt Continuous Deployment noch einmal genauer eingegangen. Chef stößt allerdings schnell an seine Grenzen, zum Beispiel wenn es darum geht, Managed Services von AWS wie z. B. ElastiCache zu konfigurieren. Um diese Aufgabe dennoch zu bewältigen, bietet Amazon das Konfigurationswerkzeug AWS CloudFormation [5] an. CloudFormation implementiert eine auf JSON basierende Beschreibungssprache, um Infrastrukturvorlagen zu erstellen. Innerhalb eines CloudFormation-Templates können Beziehungen zwischen den einzelnen Infrastrukturkomponenten definiert werden. Durch die Verwendung von Parametern bzw. Variablen können die Vorlagen sehr leicht wiederverwertet werden, um beispielsweise Infrastruktur automatisiert in unter...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang