The platform is dead, long live the platform

A presentation at Adriatic AWS Innovation Days in October 2019 in Opatija, Croatia by Luka Kladaric

Slide 1

Slide 1

THE PLATFORM IS DEAD LONG LIVE THE PLATFORM @kll Adriatic AWS Innovation Days 2019.

Slide 2

Slide 2

WHO? Luka Kladaric Chaos Manager @ Sekura Collective recovering web developer of 10+ years architecture, infrastructure & security consultant also a startup founder and remote work evangelist 2 — @kll Adriatic AWS Innovation Days 2019.

Slide 3

Slide 3

PLATFORM? 3 — @kll Adriatic AWS Innovation Days 2019.

Slide 4

Slide 4

AWS ADRIA 2017 Zero-downtime datacenter failovers (switching hosting providers for dummies) 4 — @kll Adriatic AWS Innovation Days 2019.

Slide 5

Slide 5

OLD STACK > Ansible > Jenkins > HAProxy > nginx > Icinga 5 — @kll Adriatic AWS Innovation Days 2019.

Slide 6

Slide 6

ANSIBLE 6 — @kll Adriatic AWS Innovation Days 2019.

Slide 7

Slide 7

JENKINS 7 — @kll Adriatic AWS Innovation Days 2019.

Slide 8

Slide 8

HAPROXY 8 — @kll Adriatic AWS Innovation Days 2019.

Slide 9

Slide 9

NGINX 9 — @kll Adriatic AWS Innovation Days 2019.

Slide 10

Slide 10

ICINGA 10 — @kll Adriatic AWS Innovation Days 2019.

Slide 11

Slide 11

AND IT WAS GOOD. 11 — @kll Adriatic AWS Innovation Days 2019.

Slide 12

Slide 12

IT LET US GROW 12 — @kll Adriatic AWS Innovation Days 2019.

Slide 13

Slide 13

AND SCALE OUT 13 — @kll Adriatic AWS Innovation Days 2019.

Slide 14

Slide 14

WE DIDN’T NEED MORE 14 — @kll Adriatic AWS Innovation Days 2019.

Slide 15

Slide 15

FOR ABOUT A YEAR 15 — @kll Adriatic AWS Innovation Days 2019.

Slide 16

Slide 16

THE REQUEST? 16 — @kll Adriatic AWS Innovation Days 2019.

Slide 17

Slide 17

PYTHON 3 17 — @kll Adriatic AWS Innovation Days 2019.

Slide 18

Slide 18

GOLANG 18 — @kll Adriatic AWS Innovation Days 2019.

Slide 19

Slide 19

BUT… 19 — @kll Adriatic AWS Innovation Days 2019.

Slide 20

Slide 20

I LIKED WHAT WE HAD. 20 — @kll Adriatic AWS Innovation Days 2019.

Slide 21

Slide 21

NO EXPERTISE WITH KUBERNETES 21 — @kll Adriatic AWS Innovation Days 2019.

Slide 22

Slide 22

IT SERVED US WELL 22 — @kll Adriatic AWS Innovation Days 2019.

Slide 23

Slide 23

SO WHAT BROKE? 23 — @kll Adriatic AWS Innovation Days 2019.

Slide 24

Slide 24

END OF THE ROAD 24 — @kll Adriatic AWS Innovation Days 2019.

Slide 25

Slide 25

EACH THING HAD IT’S OWN DEPLOY PIPELINE 25 — @kll Adriatic AWS Innovation Days 2019.

Slide 26

Slide 26

THE ANSWER? 26 — @kll Adriatic AWS Innovation Days 2019.

Slide 27

Slide 27

CONTAINERS 27 — @kll Adriatic AWS Innovation Days 2019.

Slide 28

Slide 28

DEVELOPER AUTONOMY 28 — @kll Adriatic AWS Innovation Days 2019.

Slide 29

Slide 29

HOW DO I CONTAINERS? 29 — @kll Adriatic AWS Innovation Days 2019.

Slide 30

Slide 30

JENKINS TRAVIS 30 — @kll Adriatic AWS Innovation Days 2019.

Slide 31

Slide 31

HOW DO YOU RUN A CONTAINER ON THE INTERNET TODAY? 31 — @kll Adriatic AWS Innovation Days 2019.

Slide 32

Slide 32

ECS 32 — @kll Adriatic AWS Innovation Days 2019.

Slide 33

Slide 33

FARGATE 33 — @kll Adriatic AWS Innovation Days 2019.

Slide 34

Slide 34

ABOUT KUBERNETES 34 — @kll Adriatic AWS Innovation Days 2019.

Slide 35

Slide 35

SO, ECS. FARGATE. 35 — @kll Adriatic AWS Innovation Days 2019.

Slide 36

Slide 36

ANSIBLE CLOUDFORMATION 36 — @kll Adriatic AWS Innovation Days 2019.

Slide 37

Slide 37

CLOUDFORMATION CONSOLE 37 — @kll Adriatic AWS Innovation Days 2019.

Slide 38

Slide 38

ICINGA CLOUDWATCH 38 — @kll Adriatic AWS Innovation Days 2019.

Slide 39

Slide 39

HAPROXY ELB 39 — @kll Adriatic AWS Innovation Days 2019.

Slide 40

Slide 40

ACTUAL IMPLEMENTATION 40 — @kll Adriatic AWS Innovation Days 2019.

Slide 41

Slide 41

BASE NETWORKING CF STACK > VPC, subnets, gateways… > DNS zone > ELBs (private & public) > ECS cluster, security groups.. > deployed from github, via travis, to all AWS accounts 41 — @kll Adriatic AWS Innovation Days 2019.

Slide 42

Slide 42

APP CF STACK > Task Definition, Service, CPU/RAM spec > ELB target group > ELB listener rule > Log group > Task role & policies > DNS entries 42 — @kll Adriatic AWS Innovation Days 2019.

Slide 43

Slide 43

EVERYTHING IN ONE REPO > app code > dockerfile > app cf template > travis file 43 — @kll Adriatic AWS Innovation Days 2019.

Slide 44

Slide 44

CI/CD FLOW > github push > travis build image -> ECR > travis deploy -> run CF > different branches = different environments (dev/test/prod) 44 — @kll Adriatic AWS Innovation Days 2019.

Slide 45

Slide 45

BENEFITS 45 — @kll Adriatic AWS Innovation Days 2019.

Slide 46

Slide 46

ALL CONTEXT & COMPLEXITY ABOUT AN APP IN A SINGLE REPO 46 — @kll Adriatic AWS Innovation Days 2019.

Slide 47

Slide 47

NO SELF-MANAGED SINGLE POINT OF FAILURE 47 — @kll Adriatic AWS Innovation Days 2019.

Slide 48

Slide 48

TRIVIAL ADDITION OF ENVIRONMENTS 48 — @kll Adriatic AWS Innovation Days 2019.

Slide 49

Slide 49

SEE PULL REQUESTS LIVE BEFORE MERGE 49 — @kll Adriatic AWS Innovation Days 2019.

Slide 50

Slide 50

TRIVIAL AUTOSCALING 50 — @kll Adriatic AWS Innovation Days 2019.

Slide 51

Slide 51

HURDLES 51 — @kll Adriatic AWS Innovation Days 2019.

Slide 52

Slide 52

CF EXTREMELY FRAGILE STARTING OUT 52 — @kll Adriatic AWS Innovation Days 2019.

Slide 53

Slide 53

FIRST DEPLOY FAILING -> HAVE TO DELETE TO RETRY 53 — @kll Adriatic AWS Innovation Days 2019.

Slide 54

Slide 54

ELB RULE PRIORITY 54 — @kll Adriatic AWS Innovation Days 2019.

Slide 55

Slide 55

BIGGEST HURDLE? 55 — @kll Adriatic AWS Innovation Days 2019.

Slide 56

Slide 56

BUILDING LEGACY APPLICATIONS IN DOCKER 56 — @kll Adriatic AWS Innovation Days 2019.

Slide 57

Slide 57

QUESTIONS? @kll Adriatic AWS Innovation Days 2019.

Slide 58

Slide 58

THANK YOU! Luka Kladaric twitter: @kll luka@sekura.io www.sekura.io @kll Adriatic AWS Innovation Days 2019.