martin höfling tng technology consulting …...© tng technology consulting gmbh 3 / 54...

54
Martin Höfling Johannes Ebke From Zero to Webscale: Evolving a Continuous Delivery Pipeline TNG Technology Consulting

Upload: others

Post on 02-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

Martin HöflingJohannes Ebke

From Zero to Webscale:Evolving a Continuous Delivery Pipeline

TNG Technology Consulting

Page 2: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

2 / 54© TNG Technology Consulting GmbH

What this talk is about

Introduction

►Context

►Challenges

►Technology

Evolution towards fully automatic deployment

Remarks & Conclusions

Overview

Page 3: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

3 / 54© TNG Technology Consulting GmbH

Introduction: Context

TNG Technology Consulting GmbH

~230 regular employees,

►> 50% with a PhD

►Physics, Mathematics, Computer Science

Founded in 2001, grown ever since, CAGR ~ 25%

Place of Business: Munich – Heart of Bavaria

Value-based consulting partnership

Focus on high end IT

Page 4: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

4 / 54© TNG Technology Consulting GmbH

Startup Characteristics

Few people

Moving targets

No dedicated operations

Motivated tech addicts

Fast decisions - flat hierarchy

Everybody feels responsible(ideally…)

Introduction: Context

Page 5: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

5 / 54© TNG Technology Consulting GmbH

The Product

Introduction: Context

Page 6: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

6 / 54© TNG Technology Consulting GmbH

Scaling

Introduction: Challenges

…sometimes many, sometimes fewer users

Page 7: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

7 / 54© TNG Technology Consulting GmbH

Complexity

Introduction: Challenges

Multiple backend types

Several Databases and Queues

Despite of Complexity: Daily Releases

Page 8: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

8 / 54© TNG Technology Consulting GmbH

What Technology are we using?

ReactWebpack

Gulp

TornadoPython3.5 Elasticsearch

MongoDB RedisJenkins

Packer

Docker

SaltStackTerraform

Boto3 AWS

Vagrant

Icinga2 ELK

Backbone

Introduction: Technology

Page 9: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

9 / 54© TNG Technology Consulting GmbH

What this talk is about

Introduction

Evolution towards fully automatic deployment

►Phase 1: Starting up

►Phase 2: Automating deployment to the cloud

►Phase 3: Fully automated infrastructure setup

Remarks & Conclusions

Overview

Page 10: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

10 / 54© TNG Technology Consulting GmbH

Starting Up

Set up CI pipeline

►Automatic testing

Create deployable artifact

►Deploy „somewhere“:

►Reproducible

Starting Up

Page 11: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

11 / 54© TNG Technology Consulting GmbH

Infrastructure at the Beginning

Starting Up

Local Cloud

developers

CI / Jenkinstest instance

production single EC2

SSH

Page 12: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

12 / 54© TNG Technology Consulting GmbH

What is SaltStack?

Starting Up

Quoting saltstack.com:

… „scalable and flexible configuration management“

… „event-driven automation of CloudOps, ITOps and DevOps“

Page 13: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

13 / 54© TNG Technology Consulting GmbH

Why SaltStack?

Key features:

Declarative configuration state management

Scalability to thousands of managed machines

Event driven reaction and reconfiguration:

►Predictive Orchestration

Nice to have:

Provider agnostic (Cloud-) Ops

Implemented / extensible in Python

Large, friendly community

Starting Up

Page 14: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

14 / 54© TNG Technology Consulting GmbH

Declarative Configuration: Salt States

Starting Up

/etc/secrets: file.managed: - mode: 600 - contents: | root:secret

nginx: service.running: - reload: True - watch: - file: /etc/secrets

/etc/secrets: file.managed: - mode: 600 - contents: | root:secret

nginx: service.running: - reload: True - watch: - file: /etc/secrets

ResourceState Function

Parameter

Dependency

Page 15: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

15 / 54© TNG Technology Consulting GmbH

Event Driven Orchestration with Salt

Starting Up

Salt Master Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

subscribe

Salt Minion app-42

subscribe

Salt Minion monitoring

subscribe

Master Event Bus

Master - Minion Event Bus

Salt Minion elasticsearch-11

Page 16: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

16 / 54© TNG Technology Consulting GmbH

Event Driven Orchestration with Salt

Starting Up

Salt Master Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

subscribe

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

subscribe

Salt Minion monitoring

subscribe

Master Event Bus

Master - Minion Event Bus

Salt Minion elasticsearch-11

From: AWS type: new machine launched machine: elasticsearch-12

Salt Minion elasticsearch-12

Page 17: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

17 / 54© TNG Technology Consulting GmbH

Event Driven Orchestration with Salt

Starting Up

Salt Master Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

subscribe

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

subscribe

Salt Minion monitoring

subscribe

Master Event Bus

Master - Minion Event Bus

Salt Minion elasticsearch-11

From: AWS type: new machine launched machine: elasticsearch-12

To: elasticsearch-12 Function: install_es Arguments: -version: 2.1.3

Salt Minion elasticsearch-12

publish job

Page 18: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

18 / 54© TNG Technology Consulting GmbH

Event Driven Orchestration with Salt

Starting Up

Salt Master Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

subscribe

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

Salt Minion app-42

subscribe

Salt Minion monitoring

subscribe

Master Event Bus

Master - Minion Event Bus

Salt Minion elasticsearch-11

From: elasticsearch-12 JobId: 3032 Result: OK, installed

To: elasticsearch-12 Function: install_es Arguments: -version: 2.1.3

Salt Minion elasticsearch-12

Page 19: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

19 / 54© TNG Technology Consulting GmbH

Event Driven Orchestration with Salt

Starting Up

Salt Master Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

subscribe

Salt Minion app-42

subscribe

Salt Minion monitoring

subscribe

Master Event Bus

Master - Minion Event Bus

Salt Minion elasticsearch-11

From: elasticsearch-12 JobId: 3032 Result: OK, installed

To: app-* Function: add_ES_to_config Arguments: -server: elasticsearch-36

Salt Minion elasticsearch-12

publish job

Page 20: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

20 / 54© TNG Technology Consulting GmbH

Event Driven Orchestration with Salt

Starting Up

Salt Master Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

Salt Minion loadbalancer-12

subscribe

Salt Minion app-42

subscribe

Salt Minion monitoring

subscribe

Master Event Bus

Master - Minion Event Bus

Salt Minion elasticsearch-11

From: app-[1..42] JobId: 3034 Result: OK, config

To: app-* Function: add_ES_to_config Arguments: -server: elasticsearch-36

Salt Minion elasticsearch-12

Page 21: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

21 / 54© TNG Technology Consulting GmbH

Automating deployment with Salt

Local Clouddevelopers

test instances

production single EC2CI / Jenkins

Salt master

Salt / ØMQ Artifact

Starting Up

Page 22: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

22 / 54© TNG Technology Consulting GmbH

Starting Up - Lessons Learned

Keep testing and production in sync

Automate deployment early

►Select and get familiar with your deployment tool

Make the deployment accessible for the team

► Infrastructure as Code from the beginning

Starting Up

Page 23: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

23 / 54© TNG Technology Consulting GmbH

What this talk is about

Introduction

Evolution towards fully automatic deployment

►Phase 1: Starting up

►Phase 2: Automating deployment to the cloud

►Phase 3: Fully automated infrastructure setup

Remarks & Conclusions

Overview

Page 24: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

24 / 54© TNG Technology Consulting GmbH

Automating Deployment into the Cloud

Rationale:

Cloud Machines are Cattle, not Pets ...

► ... they must be replaceable quickly

(Bill Baker, Microsoft)

Approach:

Automate dynamic resource configuration (e.g. deployment):

► resource allocation, software installation, …

► distributed systems with many moving parts

Manual configuration of static resources:

►VPC, VPN, Firewall, Routing and DNS

Modularize CI/CD

Automating Deployment

Page 25: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

25 / 54© TNG Technology Consulting GmbH

Dockerized Jenkins Pipeline

Reasons:

Flexibility

►Versioned and adapting CD pipeline

►Deployability in case of hardware failure

Transparency

►Docker test cluster also runs locally

Rapid feedback

►Scale beyond single machine

►Parallel integration tests

Automating Deployment

Page 26: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

26 / 54© TNG Technology Consulting GmbH

Dockerized Jenkins Pipeline – Build

Automating Deployment

Local Clouddevelopers

test instances

production instance

CI

Test / Build

Artifact

Page 27: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

27 / 54© TNG Technology Consulting GmbH

Dockerized Jenkins Pipeline – Deploy

Automating Deployment

Local Clouddevelopers

test instances

production instance

Salt / ØMQ CI

Salt master

Page 28: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

28 / 54© TNG Technology Consulting GmbH

Salt Cloud – Machine Lifecyle made easy

Cloud Profile

►Different providers possible

Cloud Map

►List instances for each profile

Salt-cloud

►Creates / destroys machines

► Installs Salt

►Attaches machine to salt-master

Automating Deployment

appserver: provider: aws image: ami-bdc9dad1 size: t2.large

loadbalancer: provider: gce image: centos-6 size: n1-standard-1

appserver: provider: aws image: ami-bdc9dad1 size: t2.large

loadbalancer: provider: gce image: centos-6 size: n1-standard-1

loadbalancer: - lb1 - lb2

appserver: - app1 - app2 - app3

loadbalancer: - lb1 - lb2

appserver: - app1 - app2 - app3

Page 29: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

29 / 54© TNG Technology Consulting GmbH

Salt Cloud from Dockerized Salt Container

Automating Deployment

Local Clouddevelopers

test instances

production instance

Salt / ØMQ CI

Salt master

Salt Cloud new instance

Page 30: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

30 / 54© TNG Technology Consulting GmbH

Distribute your Application

Reasons:

Improved availability

Horizontal scaling

Problems:

Adds complexity to your setup

►Deployment often requires complex orchestration

Automating Deployment

Page 31: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

31 / 54© TNG Technology Consulting GmbH

Automating Deployment

How to Create a Distributed Application?

Page 32: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

32 / 54© TNG Technology Consulting GmbH

Create Distributed Applications with Salt Cloud

Automating Deployment

Local Clouddevelopers

all-in-one instances

distributed instance

Salt / ØMQ

CI

Salt master

new instance master

new instance

Page 33: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

33 / 54© TNG Technology Consulting GmbH

Create Distributed Applications with Salt Cloud

Automating Deployment

Local Clouddevelopers

distributed instance

Salt / ØMQ

CI

Salt master

instance master

trigger salt-cloud

salt cloud

Page 34: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

34 / 54© TNG Technology Consulting GmbH

Deployment of a Distributed Application

Separate non critical and critical steps

Non-critical:

►Build and Push Frontend / Backend Package

►Update Instance Master

Critical step

►Apply configuration to (critical) systems

► Independent of local CI

Automating Deployment

Page 35: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

35 / 54© TNG Technology Consulting GmbH

Deployment of a Distributed Application

Automating Deployment

Local Clouddevelopers

distributed instance

Salt / ØMQ

CI

Salt master

instance master

Page 36: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

36 / 54© TNG Technology Consulting GmbH

Deployment of a Distributed Application

Automating Deployment

Local Clouddevelopers

distributed instance

Salt / ØMQ

CI

Salt master

instance master ELBs

trigger activation

ØMQ

Page 37: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

37 / 54© TNG Technology Consulting GmbH

Autoscaling

Goals:

Only use computing resources required at the moment

Automatically replace dead or disconnected instances

Approaches:

Autoscaling solely with Salt

AWS Autoscaling technology

Automating Deployment

Page 38: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

38 / 54© TNG Technology Consulting GmbH

Deployment with Autoscaled Application Tier

Automating Deployment

Local Clouddevelopers

distributed instance

CI

Salt master

instance master

Salt / ØMQ app template

trigger activation

Page 39: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

39 / 54© TNG Technology Consulting GmbH

Deployment with Autoscaled Application Tier

Automating Deployment

Local Clouddevelopers

distributed instance

CI

Salt master

instance master

ELBs

Salt / ØMQ app template

app AMI

ASGs

trigger activation

Python Salt / Boto3

Page 40: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

40 / 54© TNG Technology Consulting GmbH

Deployment – Third Party Services

Automating Deployment

Local Clouddevelopers

distributed instance

CI

Salt master

instance master

ELBs

Salt / ØMQ app template

app AMI

ASGsElasticache

Python Salt / Boto3trigger activation

Page 41: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

41 / 54© TNG Technology Consulting GmbH

Automating Deployment – Lessons Learned

Know the capabilities and limits of the different services

►what scales and what does not scale

Integration of Ops tools in CI not trivial

►Salt Return Codes are “surprising”

Frequent deployments

►… are key to Reliability

Reliability

►… is key to frequent deployments

Automating Deployment

Page 42: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

42 / 54© TNG Technology Consulting GmbH

What this talk is about

Introduction

Evolution towards fully automatic deployment

►Phase 1: Starting up

►Phase 2: Automating deployment to the Cloud

►Phase 3: Fully automated infrastructure setup

Remarks & Conclusions

Overview

Page 43: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

43 / 54© TNG Technology Consulting GmbH

Fully automated Infrastructure Setup

„Click here for New Datacenter“

Trigger:

Separate testing and production into two accounts

►Restricting access to production to a team subset

Goal:

Define static infrastructure as code

Fully automated Infrastructure Setup

Page 44: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

44 / 54© TNG Technology Consulting GmbH

Salt for Infrastructure – and its limits

Use and extend Salt fordynamic configuration ofinfrastructure:

DNS, ELB, ASG

Orchestration Scripts:

Deployment, Backup &Restore

Problem:

►Static Infrastructure

Fully automated Infrastructure Setup

#!python

import boto3#!python import boto3

#!python

import boto3

Page 45: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

45 / 54© TNG Technology Consulting GmbH

Static Infrastructure (~200 Resources per App Instance)

Fully automated Infrastructure Setup

Local CloudDevOps team

CDN distributions

Route53 DNS Zones

S3 Storage

multiple Acounts

multiple VPCsinternet / NAT / VPN

gateways

VPN connections

routing / subnets

SEIPs, Security Groups

Page 46: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

46 / 54© TNG Technology Consulting GmbH

Terraforming the Static Infrastructure

Fully automated Infrastructure Setup

Local CloudDevOps team

CDN distributions

Route53 DNS Zones

S3 Storage

multiple Acounts

multiple VPCs

AWS API

internet / NAT / VPN gateways

VPN connections

routing / subnets

SEIPs, Security Groups

Page 47: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

47 / 54© TNG Technology Consulting GmbH

Terraform in Action

Fully automated Infrastructure Setup

$ terraform plan

$ terraform apply

Differences to SaltStack:

Keeps track of state

Implicit dependencies by referencing resources

Plan changes beforehand to avoid disruption

resource "aws_vpc" "main" { cidr_block = "10.1.0.0/16" tags { Name = "Testing" }}

resource "aws_internet_gateway" "gw" { vpc_id = "${aws_vpc.main.id}"}

resource "aws_vpc" "main" { cidr_block = "10.1.0.0/16" tags { Name = "Testing" }}

resource "aws_internet_gateway" "gw" { vpc_id = "${aws_vpc.main.id}"}

Page 48: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

48 / 54© TNG Technology Consulting GmbH

Terraform – Lessons Learned

Modularize: Keep testing andproduction as similar as possible

Fully automated Infrastructure Setup

Make sure you check the documentationthat the features you require are there.

Terraform enabled us to easily manage~200 resources and ~500 dependencies.

Page 49: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

49 / 54© TNG Technology Consulting GmbH

What this talk is about

Introduction

Evolution towards fully automatic deployment

Remarks & Conclusions

Overview

Page 50: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

50 / 54© TNG Technology Consulting GmbH

Distribute Knowledge in the Team

Not all need in depth knowledge

►Two of us focus on CI/CD and infrastructure

Make deployment visible and accessible

► Jenkins pipelines everybody can use

►Check in deployment code into git

Simplify deployment wherever possible

Remarks & Conclusions

Page 51: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

51 / 54© TNG Technology Consulting GmbH

Why Automating and DefiningInfrastructure as Code?

In software development...

… you test your code – right?

►Automatic & reproducible

… you review your code?

►Quality and Maintainability

So why is infrastructure often…

… not reviewed?

… not automatically tested?

… so broken?

Remarks & Conclusions

Page 52: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

52 / 54© TNG Technology Consulting GmbH

We have the tools!

Let‘s go and fix this!

Automate!

Remarks & Conclusions

Page 53: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

53 / 54© TNG Technology Consulting GmbH

Thank you for listening!

Questions?

Page 54: Martin Höfling TNG Technology Consulting …...© TNG Technology Consulting GmbH 3 / 54 Introduction: Context TNG Technology Consulting GmbH ~230 regular employees, > 50% with a …

54 / 54© TNG Technology Consulting GmbH

Contact

Martin Höfling

[email protected]

@martoss13

martinhoefling

Johannes Ebke

[email protected]

JohannesEbke