Deployment options - Vlad Ionescu...2017/08/09 · Deployment options Vlad Ionescu BDevOps...
Transcript of Deployment options - Vlad Ionescu...2017/08/09 · Deployment options Vlad Ionescu BDevOps...
vladionescu.me
Plan• Deployment options
•
• Scripts
• Configuration management
• Immutable infrastructure
• Containers
• Serverless
• Blatant generalisations
• Q & A
↑ ↑ ↩ ↑ ↑ ↩
vladionescu.me
vladionescu.me/slides
vladionescu.me
vladionescu.me
vladionescu.me
Scripts• Very varied
• Capistrano for Ruby
• Fabric for Python
• Shipit, grunt, gulp for Javascript
• MS Deploy for .NET
vladionescu.me
Scripts
• Deployments to multiple servers
• Easier
• DevOps !!!
vladionescu.me
Configuration management
• Solves snowflake problem
• Did not really catch on
• Auto Scaling groups
• Slow
vladionescu.me
vladionescu.me
AWS cloud
Worker
Worker
WorkerAuto Scaling group
ElasticCacheRDS
S3
Route53
CloudFront
IAM CloudWatch
vladionescu.me
Packer + Terraform
• Packer creates an AMI
• Terraform deploys that AMI
vladionescu.me
Packer + Terraform
• Reliable deploys
• Safe deploys
• Infrastructure as code
vladionescu.me
Packer + Terraform• No concept of deploys
• Spinnaker sometimes an option
• Slow deploys
• AMI hell
• Scheduling woes
vladionescu.me
Container orchestration
• Docker Swarm
• Hasicorp Nomad
• Apache Mesos
• Kubernetes
vladionescu.me
schedkubelet
k-proxyc-m
c-c-m
api
Master kubelet k-proxyNode
schedkubelet
k-proxyc-m
c-c-m
api
Master
schedkubelet
k-proxyc-m
c-c-m
api
Master
kubelet k-proxyNode
kubelet k-proxyNode
kubelet k-proxyNode
Kubernetes
vladionescu.me
Serverless• AWS Lambda
• Google Cloud Functions
• Microsoft Azure Cloud Functions
• Huawei Function
• Cloudflare Workers
• Apache OpenWhisk
• Fission
• OpenFaaS
• Nuclio
• Kubeless
vladionescu.me
DisclaimersHeroku, AWS Elastic Beanstalk and other
PaaS skipped
Perfectly valid choices
vladionescu.me
Resources
• Better SSH: mosh
• Pretty code slides: carbon
vladionescu.me
Resources• Capistrano
• Fabric
• Shipit
• MS Deploy
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
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
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
vladionescu.me
Resources• Ksync
• MetalLB - load balancer for bare-metal
• Zalenium - better Selenium Grid
• Istio - service mesh
vladionescu.me
Resources• Telepresence - debugger
• Squash - debugger
• Pachyderm - machine learning
• Kubeflow - machine learning
vladionescu.me
Resources
• Helm - package manager for Kubernetes
• A first look at Helm 3 plan
• Ksonnet - fancier "programmable" package manager
vladionescu.me
Resources• CNCF Serverless Working Group
• CloudEvents
• Serverless Framework
vladionescu.me
Resources
• Economics of Serverless
• Yubl’s road to Serverless architecture