37
AWS user group Dortmund Dominik Jakielski SSE @ Adesso SE Terraforming your aws cosmos

Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

AWS user group DortmundDominik Jakielski

SSE @ Adesso SE

Terraforming your aws cosmos

Page 2: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Agenda17.02.202

Agenda

• Probleme in der Infrastruktur

• Grundlagen Terraform

• RDS Demo

• Meine Erfahrungen / Fazit

• Diskussionsrunde

Page 3: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Probleme in der Infrastruktur17.02.203

Probleme in der Infrastruktur

Page 4: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Probleme in der Infrastruktur17.02.204

Single point of knowlege

AWS Guru

Verlässt das Projekt

Dokumentation brauchte er nicht für sich

ProductLeed

Developer

ProductOwner

Project Manager

Security Manager

Junior Developer

Steak HolderHR

Manager

Senior Developer

Frontend Developer

Corporate Designer

Page 5: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Probleme in der Infrastruktur17.02.205

AWS Guru weg, Entwicklungsteam ratlos, was nun?

Page 6: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.206

Eine Lösung kann Infrastructure as Code sein

Page 7: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.207

Infrastructure as Code ?

?

Page 8: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.208

Provider

Page 9: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.209

Provider

Page 10: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2010

Ressources

Page 11: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2011

Ressources

Page 12: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2012

Ressource

Mysql RDS Instance

NameTyp

Attribute

RDS instancenameidentifyer

Page 13: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2013

Data

NameTypSelektionswerte

Referenzierung

Page 14: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2014

Referenzen

Page 15: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2015

Input, output und lokale Variablen

Page 16: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2016

Module

Main

Lokales eigenes Modul

Offizielles Community

Modul

Company Enterprise

Modul

Submodul Submodul Submodul Submodul

Sub-subModul

Page 17: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2017

Module

Page 18: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2018

Module Registry

https://registry.terraform.com

https://github.com/terraform-aws-modules

Page 19: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2019

Funktionen

Page 20: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2020

Remote State

Page 21: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2021

Remote State

Page 22: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2022

Remote State

Infrastruktur

Terraform.tfstate

S3, Atlas, DynamoDB, Consul, etcd, HTTP, Terraform Enterprise

Remote State

Terraform Projekt

Page 23: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2023

Remote State

Page 24: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2024

Workspaces

Page 25: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2025

Wichtigsten CLI Commands

• Init

• Plan

• Apply

Page 26: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2026

Terraform init

Page 27: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2027

Terraform plan

Page 28: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2028

Terraform plan

Page 29: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2029

Terraform apply

Page 30: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Grundlagen Terraform17.02.2030

Weiter nützliche CLI Commands

• State rm / mv

• Import

• output

• workspace

Page 31: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

RDS Demo17.02.2031

RDS Demo

Unsere Aufgabe

• Dev System mit

• RDS Mysql Instanz t3.micro

• Datenbank A mit zugriff für User A

• Datenbank B mit zugriff für User B

• Neue Prod Umgebung erstellen

• DB auf t3.small vergößern

Page 32: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Meine Erfahrungen / Fazit17.02.2032

Meine Erfahrungen / Fazit

Page 33: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Meine Erfahrungen / Fazit17.02.2033

Meine Erfahrungen / Fazit

Aber!?

Page 34: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Meine Erfahrungen / Fazit17.02.2034

Herausforderungen & Probleme

Page 35: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Meine Erfahrungen / Fazit17.02.2035

Herausforderungen / Probleme

• Whitespace changes & Encondig --> vermeidlichen Änderungen ?xbj`dj?dm

• Backup vom State wichtig !!! Am besten versioniert

• Destroy für einzelne Ressourcen oder Module funktioniert nicht so wirklich

• Prevent Destroy zeigt nicht den Grund des Löschens an

• Provider kann erst gelöscht werden, nach dem alle seine Ressourcen destroyed wurden

• Abhängigkeitsauflösung benötigt manchmal Unterstützung (depends on)

• Recreate kann zu Problemen führen (evt. API restriktionen)

• Api-Änderungen erfordern Codeanpassung (Beispiel Cognito)

• Helm Provider buggy

• Testen schwierig, eher „try and error“ Prinzip, Testtools kommen (kitchen-terraform)

Page 36: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Q&A17.02.2036

Danke

Page 37: Dominik Jakielski SSE @ Adesso SE · 2020-02-18 · 35 17.02.20 Meine Erfahrungen / Fazit Herausforderungen / Probleme •Whitespacechanges& Encondig--> vermeidlichen Änderungen

Q&A17.02.2037

Diskussionsrunde

RDS Demo Code