SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Cloud-Umgebungen mit Terraform
verwalten
DevDay - 12.04.2016
SaschaAskani
Cloud-Umgebungen mit Terraform verwalten
... über inovex und den Referenten
2
Übersicht
3
Umgebung konfigurieren
Umgebung verwalten
Fazit und Ausblick
Einführung
Cloud-Umgebungen mit Terraform verwalten
... Continuous Delivery
4
Herausforderungen
‣ Vollständige Automatisierung der Prozesse
‣ Dev/Prod Parity – Werkzeuge und Prozesse der
Umgebungen identisch halten
‣ Infrastructure as Code – Nachvollziehbarkeit,
alles kommt aus einem Repository
Organi-
sation
Continuous
Delivery
Plattform
App
Architektur
Cloud-Umgebungen mit Terraform verwalten
... Was ist Terraform?
5
Ziel
‣ “[...] Terraform is a tool for building, changing,
and versioning infrastructure safely and
efficiently. [...]“ (https://terraform.io/intro/)
Beispiel
‣
Organi-
sation
Continuous
Delivery
Plattform
App
Architektur
eu-central-2
Cloud-Umgebungen mit Terraform verwalten
... das Beispiel
Quelle: https://aws.amazon.com/de/architecture/ 6
eu-central-1
Autoscaling Group
Loadbalancer
3 Tier Umgebung
‣ Web Tier
‣ Application Tier
‣ Datenbank Tier
Web SerWeb Server Web rWeb Server
Loadbalancer
RDS
Autoscaling Group
Web SerWeb Server Web rWeb Server
RDS
Übersicht
7
Umgebung konfigurieren
Umgebung verwalten
Fazit und Ausblick
Einführung
Cloud-Umgebungen mit Terraform verwalten
... erster Schritt, Terraform Konzepte
8
Region eu-central-1
eu-central-1a eu-central-1b
Instance_a
Loadbalancer
Instance_b
Security Group
1. Region mit zwei Availability Zones
2. Ein Loadbalancer
3. Eine Security Gruppe
4. Je eine Instanz pro Zone
Cloud-Umgebungen mit Terraform verwalten
... die Konfigurationsdateien
9
‣ Format: Alle Dateien (*.tf / tf.json) werden ausgewertet
‣ Variables: enthält die Variablen, die wir in den
Konfigurationsdateien verwenden
‣ Override: überschreibt existierende Ressourcen und ist als
einzige nicht additiv
‣ Outputs: Informationen, die wir über die Umgebung
ausgeben wollen
‣ Provider: Provider konfigurieren (AWS)
Cloud-Umgebungen mit Terraform verwalten
... von Variablen und Funktionen
10
‣ Der Zugriff auf Variablen wird durch den Prefix var. gekennzeichnet
‣ Auswertung: ${var.ssh_keyname} oder ${count.index +1}
‣ Zugriff auf andere Ressourcen erfolgt über die ID: ${aws_instance.foo.id}
‣ Es existieren verschiedene Funktionen wie beispielsweise lookup(), join()
Cloud-Umgebungen mit Terraform verwalten
... die Provider
11
‣ Definieren die zu verwendenden Backend-APIs (AWS, Azure, …)
‣ Es sind Aliase zur Verwendung mehrerer Provider gleichzeitig möglich
‣ Provider-Instanzen über “alias“ Definition
Cloud-Umgebungen mit Terraform verwalten
... Ressourcen – EC2 Loadbalancer
12
‣ Wir definieren den Loadbalancer, dem wir zwei Instanzen A und B zuweisen
Cloud-Umgebungen mit Terraform verwalten
... Ressourcen – EC2 Instance
13
‣ Wir definieren die beiden Instanzen A und B
Cloud-Umgebungen mit Terraform verwalten
... Ressourcen – Provisioner
14
‣ Werden einmalig beim Einrichten der VM ausgeführt (z.B. Chef, Exec, File)
Cloud-Umgebungen mit Terraform verwalten
... Ressourcen – VPC Security Group
15
‣ Wir benötigen eine einfache Security Gruppe für Zugriffe auf unserer VMs
Übersicht
16
Umgebung konfigurieren
Umgebung verwalten
Fazit und Ausblick
Einführung
Cloud-Umgebungen mit Terraform verwalten
... Command Line Interface (Auszug)
17
‣ apply Infrastruktur aufbauen
‣ destroy Infrastruktur abbauen
‣ graph Ressourcen Graph erstellen (dot)
‣ plan Ausführungsplan anzeigen
‣ show Plan bzw. State ausgeben
‣ taint/untaint Ressourcen zur Neuerstellung markieren
Cloud-Umgebungen mit Terraform verwalten
Graph
18
Cloud-Umgebungen mit Terraform verwalten
... State
19
‣ Speichert den Zustand nach dem Ausführen von
Terraform (.tfstate) in einer JSON Datei
‣ Kann remote gespeichert werden, um ihn von
verschiedenen Stellen ausführen zu können
‣ Terraform Cli
‣ output (State File ausgeben)
‣ refresh (State File aktualisieren)
‣ remote (State File initial remote ablegen)
‣ AWS CLI wird benötigt
Cloud-Umgebungen mit Terraform verwalten
20
DEMO
Übersicht
21
Umgebung konfigurieren
Umgebung verwalten
Fazit und Ausblick
Einführung
eu-central-2
Cloud-Umgebungen mit Terraform verwalten
... unser initiales Ziel
22
eu-central-1
Autoscaling Group
Loadbalancer
Web SerWeb Server Web rWeb Server
Loadbalancer
RDS
Autoscaling Group
Web SerWeb Server Web rWeb Server
RDS
3 Tier Umgebung
‣ Um die fehlenden Ressourcen mit
Terraform abbilden zu können,
benötigen wir ein genaueres
Verständnis der AWS VPC
Konzepte.
Cloud-Umgebungen mit Terraform verwalten
... AWS Virtual Private Cloud (VPC) Konzepte und Ausblick
Quelle: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html 23
Amazon AWS
Instanz
Security Group
Subnetz
ACL
Routing Table
Internet Gateway
1. Amazon Struktur in unser Beispiel integrieren
2. Ressourcen für Tier 2 und 3 hinzufügen
3. Instanzen durch Autoscaling Gruppen ersetzen
Cloud-Umgebungen mit Terraform verwalten
... Fazit
24
‣ Eigene Anforderungen prüfen, ob sie mit Terraform umsetzbar sind
‣ Schnelle aktive Weiterentwicklung
‣ Typische Verwendungszwecke
‣ Einwegumgebungen
‣ Demo Umgebungen
‣ Self-Service Cluster
Cloud-Umgebungen mit Terraform verwalten
... Fazit
25
‣ Bei Einsatz in Produktivumgebungen:
‣ Module verwenden
‣ Remote State verwenden
‣ “terraform_remote_state“ Provisioner verwenden
Vielen Dank!
Sascha Askani,
IT Engineering & Operations
inovex GmbH
Ludwig-Erhard-Allee 6
76133 Karlsruhe
Sie möchten individuelle
Beratung? Nehmen Sie
Kontakt mit uns auf!
info@inovex.de
Anhang
... wo Sie in Ruhe nachlesen können
27
Terraform Dokumentation
‣ https://terraform.io/docs
AWS Dokumentation
‣ https://aws.amazon.com/de/architecture/
‣ http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/
‣ http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/
Anhang
28
Lizenz des Vortrags
‣ Creative Commons (by-nc-nd)
29
Cloud-Umgebungen mit Terraform verwalten
... Module
30
‣ Wiederverwendbare Komponente(n) gruppiert
‣ Nested Modules
‣ terraform get löst Abhängigkeiten auf
‣ Ablage in
‣ Lokalen Pfaden
‣ git
‣ Github / Bitbucket (speziell)
‣ http URLs
Cloud-Umgebungen mit Terraform verwalten
... Remote State Provider
31
‣ Zugriff auf vorhandenene Remote States
‣ Entkoppelung einzelner Komponenten
‣ Getrennte Verwaltung von aufeinander aufbauenden Komponenten
Cloud-Umgebungen mit Terraform verwalten
... Lifecycle
32
‣ Kontrolle der Reihenfolge und Zulässigkeit von Änderungen
‣ create_before_destroy: Neue Ressourcen werden aufgebaut, bevor alte
gelöscht werden (aktuell NICHT bei taint)
‣ prevent_destroy: Wenn gesetzt, schlägt jeder apply fehl, der diese
Ressource löschen würde.
‣ ignore_changes: Einstellungen, die beim diff ignoriert werden und somit
keine Änderung auslösen

Contenu connexe

Tendances

Leveraging the Power of Solr with Spark
Leveraging the Power of Solr with SparkLeveraging the Power of Solr with Spark
Leveraging the Power of Solr with SparkQAware GmbH
 
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickTaugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickPhilipp Burgmer
 
Technische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte EntwicklungsperformanceTechnische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte EntwicklungsperformanceOPEN KNOWLEDGE GmbH
 
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!Peter Kirchner
 
Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...
Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...
Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...comspace GmbH & Co. KG
 
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...Marc Müller
 
Informatik Seminar Groovy Und Grails
Informatik Seminar Groovy Und GrailsInformatik Seminar Groovy Und Grails
Informatik Seminar Groovy Und Grailsschmichri
 

Tendances (7)

Leveraging the Power of Solr with Spark
Leveraging the Power of Solr with SparkLeveraging the Power of Solr with Spark
Leveraging the Power of Solr with Spark
 
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und AusblickTaugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
 
Technische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte EntwicklungsperformanceTechnische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte Entwicklungsperformance
 
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
 
Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...
Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...
Umzug in die Cloud - flexible, dynamische Websites und Digital Marketing am B...
 
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
 
Informatik Seminar Groovy Und Grails
Informatik Seminar Groovy Und GrailsInformatik Seminar Groovy Und Grails
Informatik Seminar Groovy Und Grails
 

En vedette

DevDay 2016: Dave Farley - Acceptance testing for continuous delivery
DevDay 2016: Dave Farley - Acceptance testing for continuous deliveryDevDay 2016: Dave Farley - Acceptance testing for continuous delivery
DevDay 2016: Dave Farley - Acceptance testing for continuous deliveryDevDay Dresden
 
DevDay 2016: Hendrik Lösch - Lose gekoppelt wie nie: DI vs. IoC
DevDay 2016: Hendrik Lösch - Lose gekoppelt wie nie: DI vs. IoCDevDay 2016: Hendrik Lösch - Lose gekoppelt wie nie: DI vs. IoC
DevDay 2016: Hendrik Lösch - Lose gekoppelt wie nie: DI vs. IoCDevDay Dresden
 
DevDay 2016: Dave Farley - The Rationale for Continuous Delivery
DevDay 2016: Dave Farley - The Rationale for Continuous DeliveryDevDay 2016: Dave Farley - The Rationale for Continuous Delivery
DevDay 2016: Dave Farley - The Rationale for Continuous DeliveryDevDay Dresden
 
DevDay 2016: Frank Lamack, Denis Loh - Mixing Up Realities – Mit AR, VR, AV z...
DevDay 2016: Frank Lamack, Denis Loh - Mixing Up Realities – Mit AR, VR, AV z...DevDay 2016: Frank Lamack, Denis Loh - Mixing Up Realities – Mit AR, VR, AV z...
DevDay 2016: Frank Lamack, Denis Loh - Mixing Up Realities – Mit AR, VR, AV z...DevDay Dresden
 
DevDay 2016: Artur Speth - DevOps - Microsoft Developer Divisions Weg ins näc...
DevDay 2016: Artur Speth - DevOps - Microsoft Developer Divisions Weg ins näc...DevDay 2016: Artur Speth - DevOps - Microsoft Developer Divisions Weg ins näc...
DevDay 2016: Artur Speth - DevOps - Microsoft Developer Divisions Weg ins näc...DevDay Dresden
 
DevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework XetaDevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework XetaDevDay Dresden
 
DevDay 2016: Thomas Haase - Sicherheit der Dinge, Hacking im Internet of Things
DevDay 2016: Thomas Haase - Sicherheit der Dinge, Hacking im Internet of ThingsDevDay 2016: Thomas Haase - Sicherheit der Dinge, Hacking im Internet of Things
DevDay 2016: Thomas Haase - Sicherheit der Dinge, Hacking im Internet of ThingsDevDay Dresden
 
DevDay 2016: Adam Bien - Eine sprachneutrale Essenz der Microservices
DevDay 2016: Adam Bien - Eine sprachneutrale Essenz der MicroservicesDevDay 2016: Adam Bien - Eine sprachneutrale Essenz der Microservices
DevDay 2016: Adam Bien - Eine sprachneutrale Essenz der MicroservicesDevDay Dresden
 
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!DevDay Dresden
 

En vedette (9)

DevDay 2016: Dave Farley - Acceptance testing for continuous delivery
DevDay 2016: Dave Farley - Acceptance testing for continuous deliveryDevDay 2016: Dave Farley - Acceptance testing for continuous delivery
DevDay 2016: Dave Farley - Acceptance testing for continuous delivery
 
DevDay 2016: Hendrik Lösch - Lose gekoppelt wie nie: DI vs. IoC
DevDay 2016: Hendrik Lösch - Lose gekoppelt wie nie: DI vs. IoCDevDay 2016: Hendrik Lösch - Lose gekoppelt wie nie: DI vs. IoC
DevDay 2016: Hendrik Lösch - Lose gekoppelt wie nie: DI vs. IoC
 
DevDay 2016: Dave Farley - The Rationale for Continuous Delivery
DevDay 2016: Dave Farley - The Rationale for Continuous DeliveryDevDay 2016: Dave Farley - The Rationale for Continuous Delivery
DevDay 2016: Dave Farley - The Rationale for Continuous Delivery
 
DevDay 2016: Frank Lamack, Denis Loh - Mixing Up Realities – Mit AR, VR, AV z...
DevDay 2016: Frank Lamack, Denis Loh - Mixing Up Realities – Mit AR, VR, AV z...DevDay 2016: Frank Lamack, Denis Loh - Mixing Up Realities – Mit AR, VR, AV z...
DevDay 2016: Frank Lamack, Denis Loh - Mixing Up Realities – Mit AR, VR, AV z...
 
DevDay 2016: Artur Speth - DevOps - Microsoft Developer Divisions Weg ins näc...
DevDay 2016: Artur Speth - DevOps - Microsoft Developer Divisions Weg ins näc...DevDay 2016: Artur Speth - DevOps - Microsoft Developer Divisions Weg ins näc...
DevDay 2016: Artur Speth - DevOps - Microsoft Developer Divisions Weg ins näc...
 
DevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework XetaDevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
 
DevDay 2016: Thomas Haase - Sicherheit der Dinge, Hacking im Internet of Things
DevDay 2016: Thomas Haase - Sicherheit der Dinge, Hacking im Internet of ThingsDevDay 2016: Thomas Haase - Sicherheit der Dinge, Hacking im Internet of Things
DevDay 2016: Thomas Haase - Sicherheit der Dinge, Hacking im Internet of Things
 
DevDay 2016: Adam Bien - Eine sprachneutrale Essenz der Microservices
DevDay 2016: Adam Bien - Eine sprachneutrale Essenz der MicroservicesDevDay 2016: Adam Bien - Eine sprachneutrale Essenz der Microservices
DevDay 2016: Adam Bien - Eine sprachneutrale Essenz der Microservices
 
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
 

Similaire à DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwalten

Infrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwaltenInfrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalteninovex GmbH
 
Infrastructure as Code mit Terraform
Infrastructure as Code mit TerraformInfrastructure as Code mit Terraform
Infrastructure as Code mit TerraformHarald Schmaldienst
 
Cloud Infrastructure with Crossplane
Cloud Infrastructure with CrossplaneCloud Infrastructure with Crossplane
Cloud Infrastructure with CrossplaneQAware GmbH
 
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“OPEN KNOWLEDGE GmbH
 
Cloud-native Apps 2.0
Cloud-native Apps 2.0Cloud-native Apps 2.0
Cloud-native Apps 2.0QAware GmbH
 
Blueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSBlueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSroot360 GmbH
 
Die SOA Suite in der Amazon Cloud sicher betreiben
Die SOA Suite in der Amazon Cloud sicher betreiben Die SOA Suite in der Amazon Cloud sicher betreiben
Die SOA Suite in der Amazon Cloud sicher betreiben OPITZ CONSULTING Deutschland
 
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...inovex GmbH
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17remigius-stalder
 
TRANSCONNECT® cloud (SQL Projekt AG)
TRANSCONNECT® cloud (SQL Projekt AG)TRANSCONNECT® cloud (SQL Projekt AG)
TRANSCONNECT® cloud (SQL Projekt AG)SQL Projekt AG
 
Integration von OnSite- und Cloud-Systemen mit TransConnect® cloud
Integration von OnSite- und Cloud-Systemen mit TransConnect® cloud Integration von OnSite- und Cloud-Systemen mit TransConnect® cloud
Integration von OnSite- und Cloud-Systemen mit TransConnect® cloud Stefan Ehrlich
 
OpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenOpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenB1 Systems GmbH
 
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istWhere are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istRamon Anger
 
Mit TransConnect® einfach die Produktion vernetzen: mit wenigen Schritten zur...
Mit TransConnect® einfach die Produktion vernetzen: mit wenigen Schritten zur...Mit TransConnect® einfach die Produktion vernetzen: mit wenigen Schritten zur...
Mit TransConnect® einfach die Produktion vernetzen: mit wenigen Schritten zur...Stefan Ehrlich
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackQAware GmbH
 
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfMario-Leander Reimer
 
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Ralf Sigmund
 
Amazon EMR Grundlagen
Amazon EMR GrundlagenAmazon EMR Grundlagen
Amazon EMR Grundlageninovex GmbH
 
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS esentri AG
 

Similaire à DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwalten (20)

Infrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwaltenInfrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalten
 
Infrastructure as Code mit Terraform
Infrastructure as Code mit TerraformInfrastructure as Code mit Terraform
Infrastructure as Code mit Terraform
 
Cloud Infrastructure with Crossplane
Cloud Infrastructure with CrossplaneCloud Infrastructure with Crossplane
Cloud Infrastructure with Crossplane
 
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
 
Cloud-native Apps 2.0
Cloud-native Apps 2.0Cloud-native Apps 2.0
Cloud-native Apps 2.0
 
Blueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSBlueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWS
 
Die SOA Suite in der Amazon Cloud sicher betreiben
Die SOA Suite in der Amazon Cloud sicher betreiben Die SOA Suite in der Amazon Cloud sicher betreiben
Die SOA Suite in der Amazon Cloud sicher betreiben
 
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17
 
TRANSCONNECT® cloud (SQL Projekt AG)
TRANSCONNECT® cloud (SQL Projekt AG)TRANSCONNECT® cloud (SQL Projekt AG)
TRANSCONNECT® cloud (SQL Projekt AG)
 
Integration von OnSite- und Cloud-Systemen mit TransConnect® cloud
Integration von OnSite- und Cloud-Systemen mit TransConnect® cloud Integration von OnSite- und Cloud-Systemen mit TransConnect® cloud
Integration von OnSite- und Cloud-Systemen mit TransConnect® cloud
 
OpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenOpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von Instanzen
 
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istWhere are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
 
Mit TransConnect® einfach die Produktion vernetzen: mit wenigen Schritten zur...
Mit TransConnect® einfach die Produktion vernetzen: mit wenigen Schritten zur...Mit TransConnect® einfach die Produktion vernetzen: mit wenigen Schritten zur...
Mit TransConnect® einfach die Produktion vernetzen: mit wenigen Schritten zur...
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native Stack
 
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
 
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
 
Amazon EMR Grundlagen
Amazon EMR GrundlagenAmazon EMR Grundlagen
Amazon EMR Grundlagen
 
Dockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloudDockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloud
 
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS
 

Plus de DevDay Dresden

The Architecture of Uncertainty - Kevlin Henney
The Architecture of Uncertainty - Kevlin HenneyThe Architecture of Uncertainty - Kevlin Henney
The Architecture of Uncertainty - Kevlin HenneyDevDay Dresden
 
Dev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung
Dev Day 2021 - Stephan Pirnbaum - AnwendungsmodernisierungDev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung
Dev Day 2021 - Stephan Pirnbaum - AnwendungsmodernisierungDevDay Dresden
 
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-ProjektenTobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-ProjektenDevDay Dresden
 
Andreas Roth - GraphQL erfolgreich im Backend einsetzen
Andreas Roth - GraphQL erfolgreich im Backend einsetzenAndreas Roth - GraphQL erfolgreich im Backend einsetzen
Andreas Roth - GraphQL erfolgreich im Backend einsetzenDevDay Dresden
 
Alexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for DevelopersAlexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for DevelopersDevDay Dresden
 
DevDay 19 Accessibility: Praxistipps für Entwickler
DevDay 19 Accessibility: Praxistipps für EntwicklerDevDay 19 Accessibility: Praxistipps für Entwickler
DevDay 19 Accessibility: Praxistipps für EntwicklerDevDay Dresden
 
Dev Day 2019: Phillip Krenn – Aggregierte Logging Patterns
Dev Day 2019: Phillip Krenn – Aggregierte Logging PatternsDev Day 2019: Phillip Krenn – Aggregierte Logging Patterns
Dev Day 2019: Phillip Krenn – Aggregierte Logging PatternsDevDay Dresden
 
Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...
Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...
Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...DevDay Dresden
 
Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...
Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...
Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...DevDay Dresden
 
Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...
Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...
Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...DevDay Dresden
 
Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...
Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...
Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...DevDay Dresden
 
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...DevDay Dresden
 
Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...
Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...
Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...DevDay Dresden
 
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101DevDay Dresden
 
Dev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-Teams
Dev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-TeamsDev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-Teams
Dev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-TeamsDevDay Dresden
 
Dev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den Radverkehr
Dev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den RadverkehrDev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den Radverkehr
Dev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den RadverkehrDevDay Dresden
 
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...DevDay Dresden
 
Dev Day 2019: Martin Schurz - Manual Work Is A Bug!
Dev Day 2019: Martin Schurz - Manual Work Is A Bug!Dev Day 2019: Martin Schurz - Manual Work Is A Bug!
Dev Day 2019: Martin Schurz - Manual Work Is A Bug!DevDay Dresden
 
Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“
Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“
Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“DevDay Dresden
 
Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"
Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"
Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"DevDay Dresden
 

Plus de DevDay Dresden (20)

The Architecture of Uncertainty - Kevlin Henney
The Architecture of Uncertainty - Kevlin HenneyThe Architecture of Uncertainty - Kevlin Henney
The Architecture of Uncertainty - Kevlin Henney
 
Dev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung
Dev Day 2021 - Stephan Pirnbaum - AnwendungsmodernisierungDev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung
Dev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung
 
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-ProjektenTobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
 
Andreas Roth - GraphQL erfolgreich im Backend einsetzen
Andreas Roth - GraphQL erfolgreich im Backend einsetzenAndreas Roth - GraphQL erfolgreich im Backend einsetzen
Andreas Roth - GraphQL erfolgreich im Backend einsetzen
 
Alexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for DevelopersAlexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for Developers
 
DevDay 19 Accessibility: Praxistipps für Entwickler
DevDay 19 Accessibility: Praxistipps für EntwicklerDevDay 19 Accessibility: Praxistipps für Entwickler
DevDay 19 Accessibility: Praxistipps für Entwickler
 
Dev Day 2019: Phillip Krenn – Aggregierte Logging Patterns
Dev Day 2019: Phillip Krenn – Aggregierte Logging PatternsDev Day 2019: Phillip Krenn – Aggregierte Logging Patterns
Dev Day 2019: Phillip Krenn – Aggregierte Logging Patterns
 
Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...
Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...
Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...
 
Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...
Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...
Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...
 
Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...
Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...
Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...
 
Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...
Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...
Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...
 
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
 
Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...
Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...
Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...
 
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101
 
Dev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-Teams
Dev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-TeamsDev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-Teams
Dev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-Teams
 
Dev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den Radverkehr
Dev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den RadverkehrDev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den Radverkehr
Dev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den Radverkehr
 
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
 
Dev Day 2019: Martin Schurz - Manual Work Is A Bug!
Dev Day 2019: Martin Schurz - Manual Work Is A Bug!Dev Day 2019: Martin Schurz - Manual Work Is A Bug!
Dev Day 2019: Martin Schurz - Manual Work Is A Bug!
 
Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“
Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“
Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“
 
Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"
Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"
Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"
 

DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwalten

  • 2. Cloud-Umgebungen mit Terraform verwalten ... über inovex und den Referenten 2
  • 4. Cloud-Umgebungen mit Terraform verwalten ... Continuous Delivery 4 Herausforderungen ‣ Vollständige Automatisierung der Prozesse ‣ Dev/Prod Parity – Werkzeuge und Prozesse der Umgebungen identisch halten ‣ Infrastructure as Code – Nachvollziehbarkeit, alles kommt aus einem Repository Organi- sation Continuous Delivery Plattform App Architektur
  • 5. Cloud-Umgebungen mit Terraform verwalten ... Was ist Terraform? 5 Ziel ‣ “[...] Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. [...]“ (https://terraform.io/intro/) Beispiel ‣ Organi- sation Continuous Delivery Plattform App Architektur
  • 6. eu-central-2 Cloud-Umgebungen mit Terraform verwalten ... das Beispiel Quelle: https://aws.amazon.com/de/architecture/ 6 eu-central-1 Autoscaling Group Loadbalancer 3 Tier Umgebung ‣ Web Tier ‣ Application Tier ‣ Datenbank Tier Web SerWeb Server Web rWeb Server Loadbalancer RDS Autoscaling Group Web SerWeb Server Web rWeb Server RDS
  • 8. Cloud-Umgebungen mit Terraform verwalten ... erster Schritt, Terraform Konzepte 8 Region eu-central-1 eu-central-1a eu-central-1b Instance_a Loadbalancer Instance_b Security Group 1. Region mit zwei Availability Zones 2. Ein Loadbalancer 3. Eine Security Gruppe 4. Je eine Instanz pro Zone
  • 9. Cloud-Umgebungen mit Terraform verwalten ... die Konfigurationsdateien 9 ‣ Format: Alle Dateien (*.tf / tf.json) werden ausgewertet ‣ Variables: enthält die Variablen, die wir in den Konfigurationsdateien verwenden ‣ Override: überschreibt existierende Ressourcen und ist als einzige nicht additiv ‣ Outputs: Informationen, die wir über die Umgebung ausgeben wollen ‣ Provider: Provider konfigurieren (AWS)
  • 10. Cloud-Umgebungen mit Terraform verwalten ... von Variablen und Funktionen 10 ‣ Der Zugriff auf Variablen wird durch den Prefix var. gekennzeichnet ‣ Auswertung: ${var.ssh_keyname} oder ${count.index +1} ‣ Zugriff auf andere Ressourcen erfolgt über die ID: ${aws_instance.foo.id} ‣ Es existieren verschiedene Funktionen wie beispielsweise lookup(), join()
  • 11. Cloud-Umgebungen mit Terraform verwalten ... die Provider 11 ‣ Definieren die zu verwendenden Backend-APIs (AWS, Azure, …) ‣ Es sind Aliase zur Verwendung mehrerer Provider gleichzeitig möglich ‣ Provider-Instanzen über “alias“ Definition
  • 12. Cloud-Umgebungen mit Terraform verwalten ... Ressourcen – EC2 Loadbalancer 12 ‣ Wir definieren den Loadbalancer, dem wir zwei Instanzen A und B zuweisen
  • 13. Cloud-Umgebungen mit Terraform verwalten ... Ressourcen – EC2 Instance 13 ‣ Wir definieren die beiden Instanzen A und B
  • 14. Cloud-Umgebungen mit Terraform verwalten ... Ressourcen – Provisioner 14 ‣ Werden einmalig beim Einrichten der VM ausgeführt (z.B. Chef, Exec, File)
  • 15. Cloud-Umgebungen mit Terraform verwalten ... Ressourcen – VPC Security Group 15 ‣ Wir benötigen eine einfache Security Gruppe für Zugriffe auf unserer VMs
  • 17. Cloud-Umgebungen mit Terraform verwalten ... Command Line Interface (Auszug) 17 ‣ apply Infrastruktur aufbauen ‣ destroy Infrastruktur abbauen ‣ graph Ressourcen Graph erstellen (dot) ‣ plan Ausführungsplan anzeigen ‣ show Plan bzw. State ausgeben ‣ taint/untaint Ressourcen zur Neuerstellung markieren
  • 18. Cloud-Umgebungen mit Terraform verwalten Graph 18
  • 19. Cloud-Umgebungen mit Terraform verwalten ... State 19 ‣ Speichert den Zustand nach dem Ausführen von Terraform (.tfstate) in einer JSON Datei ‣ Kann remote gespeichert werden, um ihn von verschiedenen Stellen ausführen zu können ‣ Terraform Cli ‣ output (State File ausgeben) ‣ refresh (State File aktualisieren) ‣ remote (State File initial remote ablegen) ‣ AWS CLI wird benötigt
  • 20. Cloud-Umgebungen mit Terraform verwalten 20 DEMO
  • 22. eu-central-2 Cloud-Umgebungen mit Terraform verwalten ... unser initiales Ziel 22 eu-central-1 Autoscaling Group Loadbalancer Web SerWeb Server Web rWeb Server Loadbalancer RDS Autoscaling Group Web SerWeb Server Web rWeb Server RDS 3 Tier Umgebung ‣ Um die fehlenden Ressourcen mit Terraform abbilden zu können, benötigen wir ein genaueres Verständnis der AWS VPC Konzepte.
  • 23. Cloud-Umgebungen mit Terraform verwalten ... AWS Virtual Private Cloud (VPC) Konzepte und Ausblick Quelle: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html 23 Amazon AWS Instanz Security Group Subnetz ACL Routing Table Internet Gateway 1. Amazon Struktur in unser Beispiel integrieren 2. Ressourcen für Tier 2 und 3 hinzufügen 3. Instanzen durch Autoscaling Gruppen ersetzen
  • 24. Cloud-Umgebungen mit Terraform verwalten ... Fazit 24 ‣ Eigene Anforderungen prüfen, ob sie mit Terraform umsetzbar sind ‣ Schnelle aktive Weiterentwicklung ‣ Typische Verwendungszwecke ‣ Einwegumgebungen ‣ Demo Umgebungen ‣ Self-Service Cluster
  • 25. Cloud-Umgebungen mit Terraform verwalten ... Fazit 25 ‣ Bei Einsatz in Produktivumgebungen: ‣ Module verwenden ‣ Remote State verwenden ‣ “terraform_remote_state“ Provisioner verwenden
  • 26. Vielen Dank! Sascha Askani, IT Engineering & Operations inovex GmbH Ludwig-Erhard-Allee 6 76133 Karlsruhe Sie möchten individuelle Beratung? Nehmen Sie Kontakt mit uns auf! info@inovex.de
  • 27. Anhang ... wo Sie in Ruhe nachlesen können 27 Terraform Dokumentation ‣ https://terraform.io/docs AWS Dokumentation ‣ https://aws.amazon.com/de/architecture/ ‣ http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ ‣ http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/
  • 28. Anhang 28 Lizenz des Vortrags ‣ Creative Commons (by-nc-nd)
  • 29. 29
  • 30. Cloud-Umgebungen mit Terraform verwalten ... Module 30 ‣ Wiederverwendbare Komponente(n) gruppiert ‣ Nested Modules ‣ terraform get löst Abhängigkeiten auf ‣ Ablage in ‣ Lokalen Pfaden ‣ git ‣ Github / Bitbucket (speziell) ‣ http URLs
  • 31. Cloud-Umgebungen mit Terraform verwalten ... Remote State Provider 31 ‣ Zugriff auf vorhandenene Remote States ‣ Entkoppelung einzelner Komponenten ‣ Getrennte Verwaltung von aufeinander aufbauenden Komponenten
  • 32. Cloud-Umgebungen mit Terraform verwalten ... Lifecycle 32 ‣ Kontrolle der Reihenfolge und Zulässigkeit von Änderungen ‣ create_before_destroy: Neue Ressourcen werden aufgebaut, bevor alte gelöscht werden (aktuell NICHT bei taint) ‣ prevent_destroy: Wenn gesetzt, schlägt jeder apply fehl, der diese Ressource löschen würde. ‣ ignore_changes: Einstellungen, die beim diff ignoriert werden und somit keine Änderung auslösen