Using PaaS to Iterate on DevOps Colin Humphreys @hatofmonkeys - - PowerPoint PPT Presentation

using paas to iterate on devops colin humphreys
SMART_READER_LITE
LIVE PREVIEW

Using PaaS to Iterate on DevOps Colin Humphreys @hatofmonkeys - - PowerPoint PPT Presentation

Using PaaS to Iterate on DevOps Colin Humphreys @hatofmonkeys colin@hatofmonkeys.com blog.hatofmonkeys.com The thing that runs your applications. You've been making them for years! Not magical. Not terrifying. What we do. Extension of


slide-1
SLIDE 1

Using PaaS to Iterate on DevOps Colin Humphreys @hatofmonkeys colin@hatofmonkeys.com blog.hatofmonkeys.com

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7
slide-8
SLIDE 8
slide-9
SLIDE 9
slide-10
SLIDE 10
slide-11
SLIDE 11
slide-12
SLIDE 12

The thing that runs your applications.

slide-13
SLIDE 13

You've been making them for years!

slide-14
SLIDE 14

Not magical. Not terrifying. What we do.

slide-15
SLIDE 15

Extension of the principles of IaC: Servers are ephemeral Services are permanent Change the focus to the services: Shift to PaaS

slide-16
SLIDE 16

Does PaaS mean I don't need an

  • perations team?
slide-17
SLIDE 17

No-ops?

slide-18
SLIDE 18

No-devs?

slide-19
SLIDE 19

No-thing?

slide-20
SLIDE 20

Only do things that make you money

slide-21
SLIDE 21
slide-22
SLIDE 22

Culture: it's all about validating knowledge Get meaningful feedback fast about your app/service Stop wasting time - MTTV

slide-23
SLIDE 23

Fast feedback Get the MVP out and iterate

slide-24
SLIDE 24
slide-25
SLIDE 25

Get your pipeline deploying early! Borrow someone else's platform until you need your own

slide-26
SLIDE 26
slide-27
SLIDE 27

PaaS takes you a long way with little effort (I AM VERY VERY LAZY) Get the goodness without the work

slide-28
SLIDE 28

Continuous Delivery

  • Blue-green

deployments

  • Self-service

deployments

  • Automate provisioning
  • Production-like

environments

  • Quick walking skeleton
slide-29
SLIDE 29
  • http://www.12factor.net/
  • Stateless processes
  • Port binding
  • Scale out via processes
  • Disposability
  • Dev-prod parity

The Twelve-Factor App

slide-30
SLIDE 30
slide-31
SLIDE 31

Open vs Closed

slide-32
SLIDE 32

Why restrict your future capabilities with a closed-source PaaS?

slide-33
SLIDE 33
slide-34
SLIDE 34

Don't use Heroku!

(Although it's great)

  • Devs need to get things done quickly

They grab a credit card => Heroku!

  • Don't block them, enable them!
  • Deploy to Appfog/Openshift etc.
  • Move to a local/customised PaaS later
slide-35
SLIDE 35

Compliance/security/ performance/functionality Be able to take control!

slide-36
SLIDE 36

Culture - don't be a barrier: be an enabler Provide, customise, and iterate a platform for your services Open PaaS is like a Rails scaffold for platforms: get it out quick, customise later

slide-37
SLIDE 37
slide-38
SLIDE 38

Cloud Foundry

  • Pivotal (VMWare)
  • Heroku compatible

buildpacks

  • Java, Ruby, Node
  • MySQL, Postgres,

Redis, MongoDB etc

  • CF gem deployments
slide-39
SLIDE 39

Cloud Foundry Reality

  • Ruby + Go + Java
  • Containers (warden)
  • Most mature open PaaS
  • Excellent, but complex architecture
  • Some interesting(!) ruby, getting better
  • BOSH is the future
slide-40
SLIDE 40

OpenShift

  • RedHat
  • Java, Ruby, Node,

Python, PHP and more

  • MySQL, Postgres,

MongoDB

  • Deployment via Git
slide-41
SLIDE 41
  • Ruby + bash
  • Containers (docker/lxc)
  • MCollective firing scripts
  • Immature compared to CF
  • Easier to learn than CF
  • Very easy to add simple services
  • Shows RedHat legacy

OpenShift Reality

slide-42
SLIDE 42
slide-43
SLIDE 43

Event-sourced, eventually consistent, financial application. Pipeline of microapps.

slide-44
SLIDE 44

Had a PoC deployed to CF.com

  • n first day

Fast, meaningful feedback

slide-45
SLIDE 45

Tools used to customise our PaaSes

  • Jenkins
  • Chef
  • BOSH
  • Cucumber
  • Vagrant
slide-46
SLIDE 46

Monitoring sux

  • CF dashboard
  • Graphite/Statsd
  • Logstash/Kibana for

app logs

  • Graylog2 for CF/OS

logs

  • Nagios for alerting
slide-47
SLIDE 47

Performance tuning: it's just like a normal platform!

slide-48
SLIDE 48

Add data components as required Started with Redis, then MongoDB, then PostgreSQL

slide-49
SLIDE 49
slide-50
SLIDE 50

6 people 5 months Feedback from day 1 Continuous value First time with no downtime £75 million taken in 6 hours

slide-51
SLIDE 51
slide-52
SLIDE 52

Cloud Foundry Deployment - BOSH

E, [2012-08-31T11:52:38.553423 #16523] [task:97] ERROR -- : can't use multiple availability zones: eu-west-1a, eu-west-1a

WAT

slide-53
SLIDE 53

hato@tosh ~/vcs/presentation $ rhc domain show -l ... Application Info ================ presentation Framework: ruby-1.9 Git URL: ssh://ba0674d1fd392f8281b9186cf86986dc@presentati ssh://ba0674d1fd392f8281b9186cf86986dc@presentati

  • n.rhcloud.com
  • n.rhcloud.com/~/git/presentation.git/

Embedded: mysql-5.1 - Connection URL: mysql://127.8.96.129:3306/ mongodb-2.0 - Connection URL: mongodb://127.8.96.129:27017/

SSH? PaaS or IaaS?

OpenShift Operations

slide-54
SLIDE 54
slide-55
SLIDE 55

A challenge! Scientific method: let's acquire some knowledge as a community

slide-56
SLIDE 56

Hypothesis: going from nothing to a deployed “Hello World” application will take less time using a PaaS than your current IaC solution

slide-57
SLIDE 57
  • Set up an account with one of:

run.pivotal.io anynines.com

  • penshift.com
  • Have a quick play to familiarise

yourself with their client tools

  • Time how long it takes to deploy your

“Hello World” app

Test:

slide-58
SLIDE 58
  • eg. run.pivotal.io

cf login cf push <answer questions>

slide-59
SLIDE 59

Now try the same thing with your IaC solution

slide-60
SLIDE 60
  • eg. Chef

Create basic networking in IaaS provider Use knife to bootstrap nodes Converge the nodes Add additional IaaS networking Point some DNS at something

slide-61
SLIDE 61

Analysis: Send me your MTTV! @hatofmonkeys colin@hatofmonkeys.com I will aggregate the results and publish

slide-62
SLIDE 62

Summary: test if PaaS works for you you

slide-63
SLIDE 63

Thank you @hatofmonkeys colin@hatofmonkeys.com Please talk to me!