Deployment options Vlad Ionescu BDevOps vladionescu.me Plan - - PowerPoint PPT Presentation

deployment options
SMART_READER_LITE
LIVE PREVIEW

Deployment options Vlad Ionescu BDevOps vladionescu.me Plan - - PowerPoint PPT Presentation

Deployment options Vlad Ionescu BDevOps vladionescu.me Plan Deployment options Scripts Configuration management Immutable infrastructure Containers Serverless Blatant generalisations Q


slide-1
SLIDE 1

vladionescu.me

Deployment

  • ptions

Vlad Ionescu BDevOps

slide-2
SLIDE 2

vladionescu.me

Plan

  • Deployment options
  • Scripts
  • Configuration management
  • Immutable infrastructure
  • Containers
  • Serverless
  • Blatant generalisations
  • Q & A

↑ ↑ ↩ ↑ ↑ ↩

slide-3
SLIDE 3

vladionescu.me

vladionescu.me/ slides

slide-4
SLIDE 4

vladionescu.me

Vlad Ionescu

  • DevOps consultant
  • Observability
  • Serverless
slide-5
SLIDE 5

vladionescu.me

Deployment

  • ptions
slide-6
SLIDE 6

vladionescu.me

"app"

slide-7
SLIDE 7

vladionescu.me

Deployment

  • ptions
slide-8
SLIDE 8

vladionescu.me

↑ ↑ ↩ ↑ ↑ ↩

slide-9
SLIDE 9

vladionescu.me

AWS cloud

EC2

↑ ↑ ↩ ↑ ↑ ↩

slide-10
SLIDE 10

vladionescu.me

slide-11
SLIDE 11

vladionescu.me

slide-12
SLIDE 12

vladionescu.me

slide-13
SLIDE 13

vladionescu.me

slide-14
SLIDE 14

vladionescu.me

slide-15
SLIDE 15

vladionescu.me

slide-16
SLIDE 16

vladionescu.me

slide-17
SLIDE 17

vladionescu.me

slide-18
SLIDE 18

vladionescu.me

  • Highly available
  • Fast

↑ ↑ ↩ ↑ ↑ ↩

slide-19
SLIDE 19

vladionescu.me

AWS cloud

EC2 EC2 EC2

slide-20
SLIDE 20

vladionescu.me

Scripts

slide-21
SLIDE 21

vladionescu.me

Scripts

  • Very varied
  • Capistrano for Ruby
  • Fabric for Python
  • Shipit, grunt, gulp for Javascript
  • MS Deploy for .NET
slide-22
SLIDE 22

vladionescu.me

Scripts

slide-23
SLIDE 23

vladionescu.me

Scripts

  • Deployments to multiple servers
  • Easier
  • DevOps !!!
slide-24
SLIDE 24

vladionescu.me

AWS cloud

EC2 EC2 EC2

slide-25
SLIDE 25

vladionescu.me

AWS cloud

i-abc-1 i-abc-2 i-abc-3

slide-26
SLIDE 26

vladionescu.me

AWS cloud

i-abc-1 i-abc-2 i-abc-3

slide-27
SLIDE 27

vladionescu.me

AWS cloud

i-abc-1 i-abc-4 i-abc-3

slide-28
SLIDE 28

vladionescu.me

AWS cloud

i-abc-1 i-abc-4 i-abc-3

slide-29
SLIDE 29

vladionescu.me

Configuration management

slide-30
SLIDE 30

vladionescu.me

Configuration management

  • Ansible
  • Puppet
  • Chef
  • Salt
slide-31
SLIDE 31

vladionescu.me

Configuration management

slide-32
SLIDE 32

vladionescu.me

AWS cloud

Worker Worker Worker Supervisor

slide-33
SLIDE 33

vladionescu.me

AWS cloud

Worker Worker Worker Supervisor

Auto Scaling group
slide-34
SLIDE 34

vladionescu.me

Configuration management

  • Solves snowflake problem
  • Did not really catch on
  • Auto Scaling groups
  • Slow
slide-35
SLIDE 35

vladionescu.me

Configuration management

  • Solves snowflake problem
slide-36
SLIDE 36

vladionescu.me

The real options

slide-37
SLIDE 37

vladionescu.me

Immutable infrastructure

slide-38
SLIDE 38

vladionescu.me

Immutable

slide-39
SLIDE 39

vladionescu.me

Amazon Machine Image

slide-40
SLIDE 40

vladionescu.me

slide-41
SLIDE 41

vladionescu.me

Packer

slide-42
SLIDE 42

vladionescu.me

Infrastructure

slide-43
SLIDE 43

vladionescu.me

AWS cloud

EC2 EC2 EC2

slide-44
SLIDE 44

vladionescu.me

AWS cloud

Worker Worker Worker

Auto Scaling group

ElasticCache

RDS S3 Route53 CloudFront IAM CloudWatch

slide-45
SLIDE 45

vladionescu.me

Terraform

slide-46
SLIDE 46

vladionescu.me

Terraform

slide-47
SLIDE 47

vladionescu.me

Terraform

slide-48
SLIDE 48

vladionescu.me

Packer + Terraform

slide-49
SLIDE 49

vladionescu.me

Packer + Terraform

  • Packer creates an AMI
  • Terraform deploys that AMI
slide-50
SLIDE 50

vladionescu.me

Packer + Terraform

slide-51
SLIDE 51

vladionescu.me

Packer + Terraform

  • Reliable deploys
  • Safe deploys
  • Infrastructure as code
slide-52
SLIDE 52

vladionescu.me

Packer + Terraform

  • No concept of deploys
  • Spinnaker sometimes an option
  • Slow deploys
  • AMI hell
  • Scheduling woes
slide-53
SLIDE 53

vladionescu.me

Containers

slide-54
SLIDE 54

vladionescu.me

Container

  • rchestration system
slide-55
SLIDE 55

vladionescu.me

Kubernetes

slide-56
SLIDE 56

vladionescu.me

Container orchestration

  • Docker Swarm
  • Hasicorp Nomad
  • Apache Mesos
  • Kubernetes
slide-57
SLIDE 57

vladionescu.me

Kubernetes

slide-58
SLIDE 58

vladionescu.me

AWS cloud

Worker Worker Worker Master Master Master

Kubernetes

slide-59
SLIDE 59

vladionescu.me

AWS cloud

Worker Worker Worker Master Master Master

Kubernetes

slide-60
SLIDE 60

vladionescu.me sched kubelet k-proxy c-m c-c-m api

Master

Master

slide-61
SLIDE 61

vladionescu.me

kubelet k-proxy

Node

Node

slide-62
SLIDE 62

vladionescu.me

sched kubelet k-proxy c-m c-c-m api Master kubelet k-proxy Node sched kubelet k-proxy c-m c-c-m api Master sched kubelet k-proxy c-m c-c-m api Master kubelet k-proxy Node kubelet k-proxy Node kubelet k-proxy Node

Kubernetes

slide-63
SLIDE 63

vladionescu.me

Tooling

slide-64
SLIDE 64

vladionescu.me

Kubernetes

  • Complex
  • Expensive
  • Opinionated
slide-65
SLIDE 65

vladionescu.me

Serverless

slide-66
SLIDE 66

vladionescu.me

Serverless

  • AWS Lambda
  • Google Cloud Functions
  • Microsoft Azure Cloud

Functions

  • Huawei Function
  • Cloudflare Workers
  • Apache OpenWhisk
  • Fission
  • OpenFaaS
  • Nuclio
  • Kubeless
slide-67
SLIDE 67

vladionescu.me

AWS Lambda

slide-68
SLIDE 68

vladionescu.me

AWS Lambda

slide-69
SLIDE 69

vladionescu.me

$0.00001667 / GB-SECOND

slide-70
SLIDE 70

vladionescu.me

AWS cloud

AWS Lambda

slide-71
SLIDE 71

vladionescu.me

Serverless app

slide-72
SLIDE 72

vladionescu.me

Serverless

slide-73
SLIDE 73

vladionescu.me

Serverless Framework

slide-74
SLIDE 74

vladionescu.me

Serverless

slide-75
SLIDE 75

vladionescu.me

CloudEvents

slide-76
SLIDE 76

vladionescu.me

Serverless

slide-77
SLIDE 77

vladionescu.me

Blatant generalisations

slide-78
SLIDE 78

vladionescu.me

Cross-cloud?

slide-79
SLIDE 79

vladionescu.me

Cross-cloud?

Kubernetes

slide-80
SLIDE 80

vladionescu.me

Deploy rarely?

slide-81
SLIDE 81

vladionescu.me

Deploy rarely?

Terraform + Packer

slide-82
SLIDE 82

vladionescu.me

Easy local dev setup?

slide-83
SLIDE 83

vladionescu.me

Easy local dev setup?

Terraform + Packer

slide-84
SLIDE 84

vladionescu.me

Cost is an issue?

slide-85
SLIDE 85

vladionescu.me

Cost is an issue?

Kubernetes

slide-86
SLIDE 86

vladionescu.me

Extra features?

slide-87
SLIDE 87

vladionescu.me

Extra features?

Kubernetes

slide-88
SLIDE 88

vladionescu.me

Cost is an issue and a startup?

slide-89
SLIDE 89

vladionescu.me

Cost is an issue and a startup?

Serverless

slide-90
SLIDE 90

vladionescu.me

Bleeding edge, event driven, latency insensitive?

slide-91
SLIDE 91

vladionescu.me

Bleeding edge, event driven, latency insensitive?

Serverless

slide-92
SLIDE 92

vladionescu.me

Disclaimers

slide-93
SLIDE 93

vladionescu.me

Disclaimers

Heroku, AWS Elastic Beanstalk and other PaaS skipped Perfectly valid choices

slide-94
SLIDE 94

vladionescu.me

Disclaimers

People cost vs AWS bill

slide-95
SLIDE 95

vladionescu.me

Disclaimers

DevOps

slide-96
SLIDE 96

vladionescu.me

Resources

slide-97
SLIDE 97

vladionescu.me

Resources

  • Better SSH: mosh
  • Pretty code slides: carbon
slide-98
SLIDE 98

vladionescu.me

Resources

  • Capistrano
  • Fabric
  • Shipit
  • MS Deploy
slide-99
SLIDE 99

vladionescu.me

Resources

  • Create, Change, and Orchestrate AWS

Infrastructure with Terraform - a nice introduction

  • Terraform at Scale - a more in-depth

introduction

  • Evolving Your Infrastructure with Terraform -

best practices and relevant pitfalls

slide-100
SLIDE 100

vladionescu.me

Resources

  • Terraform
  • Blue green example from Boston DevOps Meetup 2016-03-23
  • Blue green example
  • Rob Morgan's Terraform Rolling Deployemnt Demo
  • Atlantis
  • Packer
  • Packer WinRM
slide-101
SLIDE 101

vladionescu.me

Resources

  • Kubernetes for Sysadmins – Kelsey Hightower at

PuppetConf 2016

  • The Container Operator’s Manual - Alice Goldfuss at

LeadDevLondon 2018

  • CNCF landscape
  • Kubernetes Slack
slide-102
SLIDE 102

vladionescu.me

Resources

  • Ksync
  • MetalLB - load balancer for bare-metal
  • Zalenium - better Selenium Grid
  • Istio - service mesh
slide-103
SLIDE 103

vladionescu.me

Resources

  • Telepresence - debugger
  • Squash - debugger
  • Pachyderm - machine learning
  • Kubeflow - machine learning
slide-104
SLIDE 104

vladionescu.me

Resources

  • Helm - package manager for Kubernetes
  • A first look at Helm 3 plan
  • Ksonnet - fancier "programmable" package

manager

slide-105
SLIDE 105

vladionescu.me

Resources

  • CNCF Serverless Working Group
  • CloudEvents
  • Serverless Framework
slide-106
SLIDE 106

vladionescu.me

Resources

  • Economics of Serverless
  • Yubl’s road to Serverless architecture
slide-107
SLIDE 107