Top Banner
DEPLOYING THE LEAGUE OF LEGENDS DATA PIPELINE WITH CHEF ENGINEERING MANAGER| NOVEMBER 2013 TROTTER CASHION
77

Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

May 10, 2015

Download

Technology

Over the past year, the data team at Riot Games has been using Chef to both configure instances in Amazon Elastic Compute Cloud (EC2) and build AMIs. With Chef as an integral part of the workflow, we've autoscaled thousands of instances in support of the data pipeline for League of Legends and have found that Chef doesn't always play perfectly in the world of autoscaling groups and ephemeral instances. In this talk, we cover what's worked and what's failed and explain how to best utilize Chef in the world of Amazon Web Services.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DEPLOYING THE LEAGUE OF LEGENDS DATA PIPELINE WITH CHEF

ENGINEERING MANAGER| NOVEMBER 2013 TROTTER CASHION

Page 2: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

2009 LAUNCH

TEAM ORIENTED ONLINE PC

GAME

100+ CHAMPS

LIVE PLAYERS VS. LIVE PLAYERS

Page 3: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

Image  source:  herocomplex.la2mes.com/  

Page 4: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

WE WORK WITH BIG DATA

SEMI-GLOBAL DEPLOYMENT 0 DOWNTIME

RUNS IN CLOUD (AWS) + DATACENTER

70+ BILLION TESTED @

EVENTS PER DAY

7+ BILLION EVENTS PER DAY 10+ TABLES

100MM TO 1B ROWS/DAY

100+ TABLES

7+ PETABYTE GAME EVENT DATASET

Page 5: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

AGENDA CHEF SERVER

CORE CONCEPTS

CHEF SOLO

OVERVIEW

GOLDEN IMAGES

Page 6: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

BASED ON REAL WORLD USAGE Big Data Team from April 2012 to June 2013

Also incorporates subsequent work with Player Accounts team

OVERVIEW

Page 7: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

OVERVIEW

WHAT DO WE WANT FROM AUTOMATED INFRASTRUCTURE?

Page 8: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

OVERVIEW

WHAT DO WE WANT TO BE ABLE TO DO FOR PLAYERS?

Page 9: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

TO PLAY LOL

‣  Minimize  Unplanned  Down2me  

‣  Rolling  Deploys  ‣  Expand  Capacity  

NEW FEATURES

‣  Low  Maintenance  ‣  Low  Barrier  for  New  Services  

WHAT PLAYERS WANT OVERVIEW

Page 10: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

OVERVIEW

CORE: ALWAYS UP, EASY TO DEPLOY

Page 11: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

AGENDA CHEF SERVER

CORE CONCEPTS

CHEF SOLO

OVERVIEW

GOLDEN IMAGES

Page 12: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

UNDERLYING COMPONENTS CORE CONCEPTS

Page 13: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

UNDERLYING COMPONENTS CORE CONCEPTS

ELB

Page 14: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

EC2

UNDERLYING COMPONENTS CORE CONCEPTS

ELB

Page 15: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

EC2

UNDERLYING COMPONENTS CORE CONCEPTS

VPC VPC

ELB

Page 16: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

EC2

UNDERLYING COMPONENTS CORE CONCEPTS

VPC VPC

ELB

VGW

Page 17: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

EC2

UNDERLYING COMPONENTS CORE CONCEPTS

VPC VPC

ELB

DC

VGW

VPN

Page 18: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

S3 DATA STORAGE

EC2

UNDERLYING COMPONENTS CORE CONCEPTS

VPC VPC

ELB

VGW

Page 19: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD CORE CONCEPTS

Page 20: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

Min. 2W & 3G

CORE CONCEPTS

Page 21: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

Min. 2W & 3G

CORE CONCEPTS

Page 22: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W

Min. 2W & 3G

CORE CONCEPTS

Page 23: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W W

Min. 2W & 3G

CORE CONCEPTS

Page 24: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W W

G

Min. 2W & 3G

CORE CONCEPTS

Page 25: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W W

G G

Min. 2W & 3G

CORE CONCEPTS

Page 26: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W W

G G G

Min. 2W & 3G

CORE CONCEPTS

Page 27: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W W

G G G

Min. 2W & 3G

85%

CORE CONCEPTS

Page 28: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W W

G G G

Min. 2W & 3G

85%

CORE CONCEPTS

Page 29: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W W W

G G G

Min. 2W & 3G

85%

CORE CONCEPTS

Page 30: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W W W

G G G

MANUAL

manual scaling no Chef required

Min. 2W & 3G

85%

CORE CONCEPTS

Page 31: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W W W

G G G

MANUAL

manual scaling no Chef required

AUTOSCALING CLOUD

Min. 2W & 3G

85%

CORE CONCEPTS

Page 32: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W W W

G G G

MANUAL

manual scaling no Chef required

AUTOSCALING CLOUD

Min. 2W & 3G

85%

CORE CONCEPTS

Page 33: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W W W

G G G

MANUAL

manual scaling no Chef required

AUTOSCALING CLOUD

G

Min. 2W & 3G

85%

CORE CONCEPTS

W W W W

G G G G

Page 34: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W W W

G G G

MANUAL

manual scaling no Chef required

AUTOSCALING CLOUD

W W

G G G

W

G G

Min. 2W & 3G

85%

CORE CONCEPTS

W

Page 35: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

DATA CENTER VS. CLOUD

DATA CENTER MODEL

W W W

G G G

MANUAL

manual scaling no Chef required

AUTOSCALING CLOUD

W W W

G G G G

AUTO

automatic scaling automated provisioning needed

Min. 2W & 3G

85%

CORE CONCEPTS

W

G

Page 36: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

userdata.sh

AMI

START

OPERATING SYSTEM

CORE CONCEPTS

Page 37: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

userdata.sh

AMI

START

OPERATING SYSTEM

GOAL

Publish Hello World

•  Instantly

•  Automatically

CORE CONCEPTS

Page 38: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

userdata.sh

AMI

START

OPERATING SYSTEM

GOAL

Publish Hello World

•  Instantly

•  Automatically

1st BOOT

CORE CONCEPTS

Page 39: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

userdata.sh

AMI

START

OPERATING SYSTEM

GOAL

Publish Hello World

•  Instantly

•  Automatically

Userdata.sh 1st BOOT

CORE CONCEPTS

Page 40: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

userdata.sh

GOAL

Publish Hello World

•  Instantly

•  Automatically

AMI

START

OPERATING SYSTEM

#!/bin/bash

yum install apache

wget http://hw/hello_world.html…

Userdata.sh 1st BOOT

CORE CONCEPTS

Page 41: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

AMI

START

userdata.sh

OPERATING SYSTEM

yum install apache

wget s3://hw/hello_world.html… RE

PLAC

ED W

/

GOAL

Publish Hello World

•  Instantly

•  Automatically

#!/bin/bash

yum install apache

wget s3://hw/hello_world.html…

Userdata.sh 1st BOOT

wget http://hw/first-boot.json

chef-client

CORE CONCEPTS

Page 42: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

IMMUTABLE SERVERS LIMITED TO 2 ACTIONS: 1)  Start & provision server 2)  Kill it

CORE CONCEPTS

Page 43: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

IMMUTABLE SERVERS LIMITED TO 2 ACTIONS: 1)  Start & provision server 2)  Kill it

WITH IMMUTABLE SERVERS, YOU CAN’T SSH INTO BOX & CHANGE THINGS

CORE CONCEPTS

WITH IMMUTABLE SERVERS, YOU PREVENT UNEXPECTED CHANGES TO SERVERS

Page 44: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

IMMUTABLE SERVERS

W1 W1 W1

W1 W1

LIMITED TO 2 ACTIONS: 1)  Start & provision server 2)  Kill it

WITH IMMUTABLE SERVERS, YOU CAN’T SSH INTO BOX & CHANGE THINGS

MUTABLE SERVER:

CHANGE EACH BOX TO NEW VERSION

CORE CONCEPTS

WITH IMMUTABLE SERVERS, YOU PREVENT UNEXPECTED CHANGES TO SERVERS

Page 45: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

IMMUTABLE SERVERS

W2 W1 W1

W1 W1

LIMITED TO 2 ACTIONS: 1)  Start & provision server 2)  Kill it

WITH IMMUTABLE SERVERS, YOU CAN’T SSH INTO BOX & CHANGE THINGS

MUTABLE SERVER:

CHANGE EACH BOX TO NEW VERSION

CORE CONCEPTS

WITH IMMUTABLE SERVERS, YOU PREVENT UNEXPECTED CHANGES TO SERVERS

Page 46: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

IMMUTABLE SERVERS

W2 W2 W1

W1 W1

LIMITED TO 2 ACTIONS: 1)  Start & provision server 2)  Kill it

WITH IMMUTABLE SERVERS, YOU CAN’T SSH INTO BOX & CHANGE THINGS

MUTABLE SERVER:

CHANGE EACH BOX TO NEW VERSION

CORE CONCEPTS

WITH IMMUTABLE SERVERS, YOU PREVENT UNEXPECTED CHANGES TO SERVERS

Page 47: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

IMMUTABLE SERVERS

W2 W2 W2

W1 W1

LIMITED TO 2 ACTIONS: 1)  Start & provision server 2)  Kill it

WITH IMMUTABLE SERVERS, YOU CAN’T SSH INTO BOX & CHANGE THINGS

MUTABLE SERVER:

CHANGE EACH BOX TO NEW VERSION

CORE CONCEPTS

WITH IMMUTABLE SERVERS, YOU PREVENT UNEXPECTED CHANGES TO SERVERS

Page 48: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

IMMUTABLE SERVERS

W2 W2 W2

W2 W1

LIMITED TO 2 ACTIONS: 1)  Start & provision server 2)  Kill it

WITH IMMUTABLE SERVERS, YOU CAN’T SSH INTO BOX & CHANGE THINGS

MUTABLE SERVER:

CHANGE EACH BOX TO NEW VERSION

CORE CONCEPTS

WITH IMMUTABLE SERVERS, YOU PREVENT UNEXPECTED CHANGES TO SERVERS

Page 49: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

IMMUTABLE SERVERS

W2 W2 W2

W2 W2

LIMITED TO 2 ACTIONS: 1)  Start & provision server 2)  Kill it

WITH IMMUTABLE SERVERS, YOU CAN’T SSH INTO BOX & CHANGE THINGS

MUTABLE SERVER:

CHANGE EACH BOX TO NEW VERSION

CORE CONCEPTS

WITH IMMUTABLE SERVERS, YOU PREVENT UNEXPECTED CHANGES TO SERVERS

Page 50: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

IMMUTABLE SERVERS LIMITED TO 2 ACTIONS: 1)  Start & provision server 2)  Kill it

WITH IMMUTABLE SERVERS, YOU CAN’T SSH INTO BOX & CHANGE THINGS

W1 W1 W1

W1 W1

IMMUTABLE SERVER:

FLIP ON BOXES WITH NEW VERSION, SHUT OFF EXISTING BOXES

CORE CONCEPTS

WITH IMMUTABLE SERVERS, YOU PREVENT UNEXPECTED CHANGES TO SERVERS

Page 51: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

IMMUTABLE SERVERS

W2 W2 W2

W2 W2

LIMITED TO 2 ACTIONS: 1)  Start & provision server 2)  Kill it

WITH IMMUTABLE SERVERS, YOU CAN’T SSH INTO BOX & CHANGE THINGS

IMMUTABLE SERVER:

FLIP ON BOXES WITH NEW VERSION, SHUT OFF EXISTING BOXES

W1 W1 W1

W1 W1

CORE CONCEPTS

WITH IMMUTABLE SERVERS, YOU PREVENT UNEXPECTED CHANGES TO SERVERS

Page 52: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

IMMUTABLE SERVERS

W2 W2 W2

W2 W2

LIMITED TO 2 ACTIONS: 1)  Start & provision server 2)  Kill it

WITH IMMUTABLE SERVERS, YOU PREVENT UNEXPECTED CHANGES TO SERVERS

IMMUTABLE SERVER:

FLIP ON BOXES WITH NEW VERSION, SHUT OFF EXISTING BOXES

W1 W1 W1

W1 W1

CORE CONCEPTS

Page 53: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

IMMUTABLE SERVERS LIMITED TO 2 ACTIONS: 1)  Start & provision server 2)  Kill it

WITH IMMUTABLE SERVERS, YOU CAN’T SSH INTO BOX & CHANGE THINGS

BENEFITS:

No snowflakes

Easy rollbacks

Cleaner deploys

CORE CONCEPTS

Page 54: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

AGENDA CHEF SERVER

CORE CONCEPTS

CHEF SOLO

OVERVIEW

GOLDEN IMAGES

Page 55: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

CHEF SOLO WHAT’S REQUIRED

•  All cookbooks in one tarball •  Somewhere to put the tarball •  Tell instances how to provision with the tarball

Page 56: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

CHEF SOLO WHAT’S REQUIRED

•  All cookbooks in one tarball •  Somewhere to put the tarball •  Tell instances how to provision with the tarball

PACKAGING

•  Use Berkshelf •  `berkshelf package COOKBOOK_NAME` •  `tar czvf cookbooks-VERSION.tgz ./cookbooks`

Page 57: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

CHEF SOLO WHAT’S REQUIRED

•  All cookbooks in one tarball •  Somewhere to put the tarball •  Tell instances how to provision with the tarball

PACKAGING

•  Use Berkshelf •  `berkshelf package COOKBOOK_NAME` •  `tar czvf cookbooks-VERSION.tgz ./cookbooks`

STORAGE OPTIONS

•  S3 •  `s3cmd` makes it easy to upload to S3

•  Internal asset server

Page 58: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

CHEF SOLO WHAT’S REQUIRED

•  All cookbooks in one tarball •  Somewhere to put the tarball •  Tell instances how to provision with the tarball

PACKAGING

•  Use Berkshelf •  `berkshelf package COOKBOOK_NAME` •  `tar czvf cookbooks-VERSION.tgz ./cookbooks`

STORAGE OPTIONS

•  S3 •  `s3cmd` makes it easy to upload to S3

•  Internal asset server

PROVISIONING

•  userdata.sh •  Get cookbooks off s3 and untar to /var/chef/

cookbooks •  Get first-boot.json off s3 -> /etc/chef/first-

boot.json •  Get solo.rb off s3 -> /etc/chef/solo.rb •  Run `chef-solo`

Page 59: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

CHEF SOLO

WHERE IT WORKS

•  Good when your Chef run is fast •  Easy to set up •  No single point of failure

CHEF SOLO: PROs VS CONs

WHERE IT FAILS

•  When Chef runs occasionally fail •  Configuration changes •  Service discovery

Page 60: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

TO PLAY LOL

ü  Minimize  Unplanned  Down2me  

ü  Rolling  Deploys  ü  Expand  Capacity  

NEW FEATURES

q  Low  Maintenance  q  Low  Barrier  for  New  Services  

WHAT PLAYERS WANT CHEF SOLO

Page 61: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

RECOMMENDATION:

CHEF SOLO

•  Use chef-solo approach to get started

•  Stop when you have multiple applications

Page 62: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

AGENDA CHEF SERVER

CORE CONCEPTS

CHEF SOLO

OVERVIEW

AMIs

Page 63: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

WHAT’S REQUIRED

•  Chef Server •  Cookbooks uploaded to Chef Server •  Tell instances how to provision with Chef Server

CHEF SERVER

Page 64: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

WHAT’S REQUIRED

•  Chef Server •  Cookbooks uploaded to Chef Server •  Tell instances how to provision with Chef Server

RUNNING CHEF SERVER

•  Run  your own •  Hosted Chef

CHEF SERVER

Page 65: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

WHAT’S REQUIRED

•  Chef Server •  Cookbooks uploaded to Chef Server •  Tell instances how to provision with Chef Server

GETTING COOKBOOKS TO CHEF SERVER

•  Use berkshelf •  `berks upload COOKBOOK_NAME`

RUNNING CHEF SERVER

•  Run your own •  Hosted Chef

CHEF SERVER

Page 66: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

PROVISIONING

•  userdata.sh •  Fetch validation.pem •  Fetch first-boot.json •  Fetch client.rb •  Run `chef-client …`

GETTING COOKBOOKS TO CHEF SERVER

•  Use berkshelf •  `berks upload COOKBOOK_NAME`

WHAT’S REQUIRED

•  Chef Server •  Cookbooks uploaded to Chef Server •  Tell instances how to provision with Chef Server

RUNNING CHEF SERVER

•  Run your own •  Hosted Chef

CHEF SERVER

Page 67: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

WHERE IT WORKS

•  Updating feature flag configuration •  Warning: Can affect rolling

deploys!

CHEF SERVER: PROs VS CONs

WHERE IT FAILS

•  Single point of failure in Chef Server •  Long Chef runs cause problems •  Can cause problems in large

organizations where multiple teams depend on the same cookbook

CHEF SERVER

Page 68: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

TO PLAY LOL

q  Minimize  Unplanned  Down2me  

q  Rolling  Deploys  q  Expand  Capacity  

NEW FEATURES

ü  Low  Maintenance  q  Low  Barrier  for  New  Services  

WHAT PLAYERS WANT CHEF SERVER

Page 69: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

CHEF SERVER

RECOMMENDATION:

•  Use chef-server when managing feature flags

•  Not bad when you have multiple applications to deploy

•  Pro tips:

•  Use a shutdown script to remove instances from the chef server

•  Only use chef in daemon mode if you’re certain only feature flags will change

Page 70: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

AGENDA CHEF SERVER

CORE CONCEPTS

CHEF SOLO

OVERVIEW

GOLDEN IMAGES

Page 71: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

GOLDEN IMAGES

WHAT’S REQUIRED

•  Means to create Golden Image •  Configuration management

Page 72: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

WHAT’S REQUIRED

•  Means to create Golden Image •  Configuration management

Creating Image

•  We use Chef-Solo •  Build an RPM •  Cookbook installs RPMs

GOLDEN IMAGES

Page 73: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

WHAT’S REQUIRED

•  Means to create Golden Image •  Configuration management

GOLDEN IMAGES

Configuration Management

•  Archaius (on disk config) •  Chef

Creating Image

•  We use Chef-Solo •  Build an RPM •  Cookbook installs RPMS

Page 74: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

WHERE IT WORKS

•  Rollbacks are perfect and instances always boot

•  Boot times are very fast

CHEF SOLO: PROs VS CONs

WHERE IT FAILS

•  Need another method for configuration management

•  Need another method for service discovery

•  Releasing patches requires entire new build

GOLDEN IMAGES

GOLDEN IMAGES

Page 75: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

TO PLAY LOL

ü  Minimize  Unplanned  Down2me  

ü  Rolling  Deploys  ü  Expand  Capacity  

NEW FEATURES

ü  Low  Maintenance  q  Low  Barrier  for  New  Services  

WHAT PLAYERS WANT GOLDEN IMAGES

Page 76: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

RECOMMENDATION:

•  Use when auto scaling is a must

•  Requires an up-front effort to get going

•  Make sure you can afford it

•  Pro tip:

•  Use the Netflix stack: Asgard, Aminator, and Archaius

GOLDEN IMAGES

Page 77: Deploying the 'League of Legends' Data Pipeline with Chef (ARC205) | AWS re:Invent 2013

c  THANK YOU! QUESTIONS? ENGINEERING MANAGER| NOVEMBER 2013 TROTTER CASHION