just kill it

17
JUST KILL IT @jamesrcounts | @paulwhitmer

Upload: pwhitdog

Post on 23-Feb-2017

66 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Just kill it

JUST KILL IT@jamesrcounts | @paulwhitmer

Page 2: Just kill it

JIM COUNTSLegacy Code Expert

Full Stack Consultant

C#/VB/Perl/AngularJS/Node/Cloud

Page 3: Just kill it

PAUL WHITMERFull Stack ASP.NET MVC

C#/AngularJS/NodeJS/Cloud

Linux/Windows

DevOps TIG Mentor

Page 4: Just kill it

WHY CARE?

The goal is to deliver new features and not worry about the servers. Increasing value to our customers.

Page 5: Just kill it

OUR EXPERIENCEA little historyGo back to basics, when high level tools fail to deliver

How do we do it now?BuildDeployRemove human interaction

Page 6: Just kill it

BUILDAutomatic: continuous integration on check-insCheck-in frequently to get feedback more oftenCreate fast builds to tighten up the feedback cycleReveal any hidden assumptions about your build

Page 7: Just kill it

BUILD: GOCD POLLS GIT REPOSITORY FOR CHANGES

Page 8: Just kill it

BUILD: BUILD FAST

Page 9: Just kill it

BUILD: CHECK-INS OFTEN

Page 10: Just kill it

EXAMPLE WEBSERVERDeveloper makes changes and checks inBuild server detects changes and agent in cloud runs tests and builds software

Final product is zipped up and stored on cloud file serverBuild server generates a custom boot script from a template and launches a new instance to kick off the deploy

Page 11: Just kill it

LAUNCH SCRIPT

Where to find the codeFirewall configurationSecurity RolesNetwork/VPN configuration

Remote access keys

So many details… automate them!

Page 12: Just kill it

DEPLOY QUICKLYLoad baseline instance with custom boot script

Pull and run pre-built code from online file storage

Connect to load balancer

Page 13: Just kill it

BOOT SCRIPT

Download my app, unzip, and run app

Add thy self to load balancer and wait to become healthy

Tell load balancer to remove other instances with a different version

Tag thy selfWait ten minutes then start "Death Cron”

It’s another script!A generic script that the boot

script invokes with parameters.

Page 14: Just kill it

REMOVE HUMAN INTERACTIONNo human needs to kickoff a build/deploymentScripts are built from template for each environment

Environment itself has been mostly built from script as well

Self cleaning instance destruction

Page 15: Just kill it

CRON JOB

Runs every minuteAm I attached to the load balancer?

No?“Amazon, please kill me”

Yes!“The world loves me, keep going and check it again in a minute”

aka "Death Cron"

Page 16: Just kill it

BACK TO BASICSHigh level tools promise magic, but can deliver their own set of problemsBeanstalkCloudformerDocker

When a tool doesn’t deliver, kill itRevisit the tool with a better understanding of underlying mechanics.

Page 17: Just kill it

QUESTIONS?