london community summit - chef at skybet

29
Chef at Sky Betting and Gaming

Upload: chef

Post on 08-Jan-2017

257 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: London Community Summit - Chef at SkyBet

Chef at Sky Betting and Gaming

Page 2: London Community Summit - Chef at SkyBet
Page 3: London Community Summit - Chef at SkyBet

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

Chef toolchain is central

Platform ServicesGavin Harris - Engineering Manager

Page 4: London Community Summit - Chef at SkyBet

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

Page 5: London Community Summit - Chef at SkyBet

Scaling Agile at Spotify - Oct 2012

Page 6: London Community Summit - Chef at SkyBet

Richard Dinesh Nelson Gilfoyle Carla

Meet the Team!

Russ

Page 7: London Community Summit - Chef at SkyBet
Page 8: London Community Summit - Chef at SkyBet
Page 9: London Community Summit - Chef at SkyBet

Application Code (PHP, NodeJS,

React, Java)

Page 10: London Community Summit - Chef at SkyBet

Publish

Application Code (PHP, NodeJS,

React, Java)

Page 11: London Community Summit - Chef at SkyBet

Publish

Applications

Application Code (PHP, NodeJS,

React, Java)

Release

Page 12: London Community Summit - Chef at SkyBet

Application Code (PHP, NodeJS,

React, Java)

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Release

Page 13: London Community Summit - Chef at SkyBet

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Publish

Application Code (PHP, NodeJS,

React, Java)

Release

Page 14: London Community Summit - Chef at SkyBet

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Publish

Application Code (PHP, NodeJS,

React, Java)

Release

Configuration

Orchestra

tio

n

Page 15: London Community Summit - Chef at SkyBet

(Usually) In “Test”

Page 16: London Community Summit - Chef at SkyBet

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Publish

Application Code (PHP, NodeJS,

React, Java)

Release

Configuration

Orchestra

tio

n

Integration/Test

Page 17: London Community Summit - Chef at SkyBet

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Publish

Application Code (PHP, NodeJS,

React, Java)

Release

Configuration

Orchestra

tio

n

Integration/Test

Page 18: London Community Summit - Chef at SkyBet

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Publish

Application Code (PHP, NodeJS,

React, Java)

Release

Configuration

Orchestra

tio

n

Long cycle time!

Integration/Test

Page 19: London Community Summit - Chef at SkyBet

Dev Ops

Publish

Applications

Infrastructure Code (Chef, Ruby,

ServerSpec)

Publish

Application Code (PHP, NodeJS,

React, Java)

Release

Configuration

Orchestra

tio

n

Integration/Test

Page 20: London Community Summit - Chef at SkyBet
Page 21: London Community Summit - Chef at SkyBet

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)

Page 22: London Community Summit - Chef at SkyBet

sbg_myapp::build

Build JenkinsfileRelease Jenkinsfile

.kitchen.yml kitchen-docker

Page 23: London Community Summit - Chef at SkyBet
Page 24: London Community Summit - Chef at SkyBet

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

Page 25: London Community Summit - Chef at SkyBet

pscli kitchen converge

Git--volumes-from /git

{command runner}

Kitchen Suite A

Kitchen Suite B

/opt/chefdk

ChefDK--volumes-from

Docker Registry

Page 26: London Community Summit - Chef at SkyBet

pscli generate cookbook myapp

Git--volumes-from /git

/opt/chefdk

ChefDK--volumes-from

Docker Registry

Code Generator--volumes-from /generator

{command runner} ~/workspace/myapp

Page 27: London Community Summit - Chef at SkyBet

pscli terraform apply

/opt/terraform

Terraform--volumes-from

Docker Registry

{command runner}

Page 28: London Community Summit - Chef at SkyBet

Questions?

http://engineering.skybettingandgaming.com

Page 29: London Community Summit - Chef at SkyBet