Slide 1

Slide 1 text

HOW TOOLING WILL MAKE OR BREAK SERVERLESS INFRASTRUCTURE

Slide 2

Slide 2 text

WHO AM I Florian Motlik ‣Co-Founder and former CTO of Codeship ‣Former CTO of Serverless Inc AWS/Serverless/Development Process Consultant
 Need help in your infrastructure: flo@flomotlik.me T W I T T E R : @ F L O M O T L I K W E B S I T E : F L O M O T L I K . M E E M A I L : F L O @ F L O M O T L I K . M E

Slide 3

Slide 3 text

WHAT IS SERVERLESS

Slide 4

Slide 4 text

EVENT DRIVEN SYSTEM Service A F1 F2 F3 Service C F1 F2 Service B F1 Service E F1 F2 F3 Service F F1 F2 F3 Service D F1 F2 F3 F4 F5 S3 Kinesis DynamoDB Api Gateway

Slide 5

Slide 5 text

CLOUD 2.0, SUPER ADVANCED CLOUD, …

Slide 6

Slide 6 text

MIGHTY SCALIN POWER CLOUD It’s Scalin’ Time!

Slide 7

Slide 7 text

THE SERVERLESS TEAM ▸ Least Amount of Control ▸ Least Amount of Responsibility ▸ Complete Automation ▸ Gradual Escalation of Control and Responsibility ▸ Build for Replacement

Slide 8

Slide 8 text

WHAT DOES THIS MEAN FOR OUR TOOLS

Slide 9

Slide 9 text

HEAVY LIFTING IS DONE IN SERVICES ▸ Scheduling of Tasks ▸ Scaling of System ▸ Collecting of Log Data ▸ Authentication between Services ▸ Storing and managing data storage ▸ Provisioning and scaling Queue infrastructure ▸ …

Slide 10

Slide 10 text

WHAT IS IMPORTANT, PAST VS PRESENT Past Features ‣ Replication ‣ Scalability ‣ …

Slide 11

Slide 11 text

PAST SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER

Slide 12

Slide 12 text

PAST SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER Application cluster Database cluster Data and ETL Pipeline

Slide 13

Slide 13 text

PAST VS PRESENT Past Present Features ‣ Replication ‣ Scalability ‣ … Usability Accessibility Best Practices

Slide 14

Slide 14 text

MAKE IT EASY TO COMBINE SERVICES Service A F1 F2 F3 Service C F1 F2 Service B F1 Service E F1 F2 F3 Service F F1 F2 F3 Service D F1 F2 F3 F4 F5 S3 Kinesis DynamoDB Api Gateway

Slide 15

Slide 15 text

BAD TOOLS WILL PUSH US AWAY FROM SERVICES ▸ Many examples in AWS from great services that aren’t used enough ▸ CloudFormation ▸ IAM ▸ CloudWatch Metrics, Logs and Alerts ▸ Custom Resources ▸ AWS Config

Slide 16

Slide 16 text

SAME PROBLEM NO MATTER THE COMPANY SIZE

Slide 17

Slide 17 text

UNREASONABLY COMPLEX TO START

Slide 18

Slide 18 text

SO WHATS HOLDING US BACK

Slide 19

Slide 19 text

CLOUDFORMATION IS THE MAKE OR BREAK SERVICE

Slide 20

Slide 20 text

HORRIBLE CLI TOOLING FROM AWS ▸ Hard to learn and hard to read configuration ▸ No built-in modularity for one stack making config files huge ▸ There is no built-in command to deploy a stack, wait for it to be deployed and get the CF events as cli output

Slide 21

Slide 21 text

CLOUDFORMATION IS OUR ASSEMBLY CODE

Slide 22

Slide 22 text

ALL TOOLS SHOULD WORK TOWARDS CLOUDFORMATION ▸ Standard Endpoint allows us to swap out tools ▸ Not possible with other tools like Terraform as state is stored separately

Slide 23

Slide 23 text

ALL TOOLS SHOULD WORK TOWARDS CLOUDFORMATION ▸ Standard Endpoint allows us to swap out tools ▸ Not possible with other tools like Terraform as state is stored separately ▸ Easier to support standards

Slide 24

Slide 24 text

ALL TOOLS SHOULD WORK TOWARDS CLOUDFORMATION ▸ Standard Endpoint allows us to swap out tools ▸ Not possible with other tools like Terraform as state is stored separately ▸ Easier to support standards ▸ This also makes sure we’re building better low level tools with better UX

Slide 25

Slide 25 text

SIMPLE TOOLS TO MAKE CF MORE USEFUL ▸ Awsie (https://github.com/flomotlik/awsie) awsie example-stack s3 ls s3://cf:DeploymentBucket: --region us-west-1 aws s3 ls s3://formica-example-stack-deploymentbucket-1jjzisylxreh9 --region us-west-1
 awsie example-stack —command “echo //cf:DeploymentBucket:” --region us-west-1 
 echo s3://formica-example-stack-deploymentbucket-1jjzisylxreh9

Slide 26

Slide 26 text

WHAT WE NEED TO WATCH OUT FOR

Slide 27

Slide 27 text

STOP BUILDING ABSTRACTIONS

Slide 28

Slide 28 text

STOP BUILDING ABSTRACTIONS I need this small thing Hmm it could also do this Lets introduce this small abstraction to make it applicable here and here Wow this got really complex, new tool it is

Slide 29

Slide 29 text

LETS JUST STOP THIS

Slide 30

Slide 30 text

THERE IS NO ONE TOOL TO RULE THEM ALL

Slide 31

Slide 31 text

PAST SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER Application cluster Database cluster Data and Background Pipeline

Slide 32

Slide 32 text

MONOLITHIC TOOLS IN FRONT OF MICRO-SERVICE ARCHITECTURE? (KEVIN MCGRATH, AUTHOR OF CONDENSATION)

Slide 33

Slide 33 text

MICRO-TOOLING (KEVIN MCGRATH, AUTHOR OF CONDENSATION)

Slide 34

Slide 34 text

POWER AND CONTROL OVER YOUR INFRASTRUCTURE HARDWARE CLOUD INSTANCES PAAS SERVERLESS

Slide 35

Slide 35 text

THE POWER IS IN COMBINING SERVICES, SO DON'T HIDE MORE HERE Service A F1 F2 F3 Service C F1 F2 Service B F1 Service E F1 F2 F3 Service F F1 F2 F3 Service D F1 F2 F3 F4 F5 S3 Kinesis DynamoDB Api Gateway

Slide 36

Slide 36 text

CONSTANT NEW FEATURES ARE UNUSABLE DUE TO ABSTRACTIONS

Slide 37

Slide 37 text

PROBLEMS WITH MULTI-PROVIDER TOOLING ▸ Always gets dragged down to lowest common denominator ▸ In a Serverless infrastructure you’re not going to move Everything between providers ▸ Small surface area per provider ▸ You want to get all you can out of that provider so you need specialised tooling

Slide 38

Slide 38 text

WHAT CAN WE DO ABOUT IT

Slide 39

Slide 39 text

LETS FIX CLOUDFORMATION

Slide 40

Slide 40 text

LETS FIX CLOUDFORMATION NO, STOP IT

Slide 41

Slide 41 text

IT NEEDS LOVE AND UX

Slide 42

Slide 42 text

MY JOURNEY TO BUILD FORMICA ▸ https://github.com/flomotlik/formica ▸ Wanted to build and play with more AWS services so I needed a good CloudFormation tool ▸ Looked around at existing tools (Sceptre, Stacker, AWLess, Serverless, Gordon, Condensation, …) but all define their own abstractions ▸ Stack environments ▸ Dependencies between stacks ▸ Stack naming, ▸ Language to create the stack ▸ … ▸ So of course I built it using Troposphere so I could have nice python templates and added my own abstraction layer

Slide 43

Slide 43 text

MAKEFILE IS MY DEPLOYMENT FRAMEWORK KAPIL THANGAVELU (@KAPILVT) FROM CAPITALONE

Slide 44

Slide 44 text

THE UNIX PHILOSOPHY CLOUDFORMATION IS OUR PIPES

Slide 45

Slide 45 text

THE UNIX PHILOSOPHY ALSO PIPES ARE OUR PIPES

Slide 46

Slide 46 text

DOCUMENTAITON, NOT JUST TOOLING

Slide 47

Slide 47 text

DOESN’T MEAN WE CAN’T IMPROVE CF SYNTAX ▸ Serverless/Gordon/Zappa are great for setting up an API Gateway with Lambdas ▸ We could have other tools as preprocessors for specific things ▸ Simple tool to translate HTTP endpoint definition to CF ▸ Tool to create CF templates for CloudWatch Alerts and Metrics

Slide 48

Slide 48 text

SUITE OF SMALL FOCUSED TOOLS ▸ Built: ▸ Formica - Deploying CloudFormation templates ▸ AWSIE - Dynamically use CF ids in your shell commands ▸ Ideas: ▸ Orgonaut: Org/Account management and running commands against each command or group ▸ Auditor: Auditing and reporting setup with AWS Config and Cloudtrail across accounts ▸ Pipes: CI/CD setup through CodePipeline/CodeBuild ▸ Watchdog: CloudWatch config tool to make Monitoring and Alerts easier to configure ▸ Work together as a community to highlight those tools and define a best-practice suite

Slide 49

Slide 49 text

THEY ARE SMALL THEY ARE SIMPLE GO BUILD SOME

Slide 50

Slide 50 text

LEARN CLOUD FORMATION IN-DEPTH

Slide 51

Slide 51 text

FLOMOTLIK.ME Florian Motlik AWS/Serverless/Development Process Consultant
 Need help in your infrastructure: flo@flomotlik.me T W I T T E R : @ F L O M O T L I K W E B S I T E : F L O M O T L I K . M E E M A I L : F L O @ F L O M O T L I K . M E

Slide 52

Slide 52 text

CONCLUSIONS ▸ Composition and Accessibility, not Features and Abstractions ▸ Build and use small tools that do one thing well ▸ Compose larger systems out of several smaller tools ▸ Go check out Make, its reasonably good ▸ Join the Serverless Slack (Serverless-Forum, https://wt-serverless- seattle.run.webtask.io/serverless-forum-signup?webtask_no_cache=1) T W I T T E R : @ F L O M O T L I K W E B S I T E : F L O M O T L I K . M E E M A I L : F L O @ F L O M O T L I K . M E