London Community Summit - Chef at SkyBet

Post on 08-Jan-2017

256 views 0 download

Transcript of London Community Summit - Chef at SkyBet

Chef at Sky Betting and Gaming

Tooling for our developers to get apps in front of customers+ supporting services

Chef toolchain is central

Platform ServicesGavin Harris - Engineering Manager

Platform ServicesGavin Harris - Engineering Manager

Started as a project team, “fixing disaster recovery”

• Introduced Chef configuration management

• Created Chef configuration for all the things

• Focused on providing tools and patterns

Scaling Agile at Spotify - Oct 2012

Richard Dinesh Nelson Gilfoyle Carla

Meet the Team!

Russ

Application Code (PHP, NodeJS,

React, Java)

Publish

Application Code (PHP, NodeJS,

React, Java)

Publish

Applications

Application Code (PHP, NodeJS,

React, Java)

Release

Application Code (PHP, NodeJS,

React, Java)

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Release

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Publish

Application Code (PHP, NodeJS,

React, Java)

Release

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Publish

Application Code (PHP, NodeJS,

React, Java)

Release

Configuration

Orchestra

tio

n

(Usually) In “Test”

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Publish

Application Code (PHP, NodeJS,

React, Java)

Release

Configuration

Orchestra

tio

n

Integration/Test

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Publish

Application Code (PHP, NodeJS,

React, Java)

Release

Configuration

Orchestra

tio

n

Integration/Test

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Publish

Application Code (PHP, NodeJS,

React, Java)

Release

Configuration

Orchestra

tio

n

Long cycle time!

Integration/Test

Dev Ops

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Publish

Application Code (PHP, NodeJS,

React, Java)

Release

Configuration

Orchestra

tio

n

Integration/Test

Orchestra

tion

Application + Config

Build

JenkinsPublis

h

Cookbook (sbg_myapp)

• Infrastructure Code (Chef, Inspec, Custom Resources)•Application Code (PHP, NodeJS, Java)•CI Pipeline (Jenkins Pipeline, Chef)• Integration Tests (Kitchen, Chef)

sbg_myapp::build

Build JenkinsfileRelease Jenkinsfile

.kitchen.yml kitchen-docker

pscliThe ‘Glue’

• Internal Tool• Written in Go• Uses Docker• Pulls in images containing tools• Executes tools in these containers

• ChefDK• Terraform• Packer• AWS Authentication• Hashicorp Vault• Code Generation

pscli kitchen converge

Git--volumes-from /git

{command runner}

Kitchen Suite A

Kitchen Suite B

/opt/chefdk

ChefDK--volumes-from

Docker Registry

pscli generate cookbook myapp

Git--volumes-from /git

/opt/chefdk

ChefDK--volumes-from

Docker Registry

Code Generator--volumes-from /generator

{command runner} ~/workspace/myapp

pscli terraform apply

/opt/terraform

Terraform--volumes-from

Docker Registry

{command runner}

Questions?

http://engineering.skybettingandgaming.com