51
DevOps Toolkit Jonas Rosland Developer Advocate @ EMC {code} @virtualswede

2015 03-19-devops-toolkit-varrow-madness

Embed Size (px)

Citation preview

DevOps'ToolkitJonas&Rosland

Developer(Advocate(@(EMC({code}

@virtualswede

emccode.github.io

What%is%DevOps?

An#idea#or#collabora-ve#culture/philosophy#between#technical#teams

Unified'processes'and'tools'for'faster'end1to1end'delivery'of'quality'so6ware

NOT!a!job!descrip-on

So#why#should#you#care?

You$can't$wait$6$months$for$a$feature$upgrade/bug$fix/etc

Solve&configura.on&dri1&issues&quickly

Know%exactly%what's%wrong,%where%and%why

Last%but%not%least,%improve%team%communica3on

So#what's#the#result#of#DevOps?

It's%really%big%actually...

DevOps'prac+ces'and'IT'performance'impact'organiza(onal'performance

h"p://www.slideshare.net/realgenekim/20148state8of8devops8findings8velocity8conference

Let's&start&with

Infrastructure+As+Code

What%do%we%define%as%infrastructure?

Why$define$infrastructure$as$code?• Deploy,)monitor)and)connect)together)all)the)pieces)needed)to)run)services)for)the)organiza9on

• Processes)and)tools)for)faster)end;to;end)delivery)of)quality)services

• Automa9on)comes)built;in

How$do$we$do$this?• Desired(state(specified(in(text(files

• Autonomic((self7corrects(to(desired(state)

• State(should(be(known(through(monitoring

• Remove(snowflake(servers

Why$store$them$in$text$files?• Easy&to&read&and&edit

• Shareable

• Can&use&standard&version&control&like&Git&or&SVN

• Becomes&executable&documenta=on

Simple'examplenode 'www2' { class { 'apache': } # use apache module apache::vhost { 'awesomewebsite.com': # define vhost resource port => '80', docroot => '/var/www/html' }}

Change'root'password

user { root: ensure => present, password => '$ecretP@ssw0rd',}

Manually'configured'environments'are'like'a'house'of'cards'in'a'china'

shop—"Neal"Ford

Snowflake)servers

Deploying,+provisioning+and+scaling+automa5cally+is+virtually+impossible+if+every+server+is+unique

Adds$fric)on$between$the$requestor$and$the$deployer

Mistakes(happen

We're%all%human

What%can%happen%if%you%don't%treat%infrastructure%as%code?

Some%firms%have%found%that%up%to%60%%of%failures%are%caused%by%human%

error,%not%hardware%failure

Example()(Knight(Capital(Group

Knight'Capital'Group'0'What'happened?

Manual&deployment&of&new&trading&so4ware

7"of"8"servers"correctly"updated

Old$func)on$s)ll$alive$on$the$8th$server$led$to

$440$million$loss$in$45$minutes

Treat&your&infrastructure&as&code

Benefits

Self%documen,ng%infrastructure

You$now$have$source$code$for$how$anything$in$your$datacenter$is$setup

Executable*documenta/on

Alright

Then%what?

Automate(more!

Deployment*automa-on

• Jenkins(CI

• Travis(CI

• Codeship

• CloudFoundry

• OpenShi9

Containers

• Docker

• Framework,for,applica1on,container,management

• Huge,community

Log$management

• Splunk

• Loggly

• LogInsight

• ELK3Stack3(Elas7cSearch,3LogStash3and3Kibana)

Performance*management

• vCenter(Opera,ons

• New(Relic

• AppDynamics

• DataDog

Monitoring

• Nagios

• Sensu

• VictorOps

• PagerDuty

Communica)on

• Slack

• HipChat

• Trello

• Asana

Collabora'on

• Github

• Quip

Use$these$tools$smartly• And%by%smartly%we%mean%coopera3vely%between%Devs%and%Ops

• Will%help%operators%understand%what's%running%and%happening%in%the%infrastructure

• Will%give%developers%insight%into%the%underlying%infrastructure%and%the%way%it%behaves%under%load

So#how#do#we#get#started?• Start&talking&about&it

• Choose&low4hanging&fruit

• Learn,&make&wrong&decisions,&learn&again

• Involve&the&broader&team

• Give&books,&presenta?ons,&blog&posts&etc.

DevOpsDays)@)EMC)WorldSunday'2PM+6PM

Free!

Ques%ons?

Jonas&Rosland

Developer(Advocate(@(EMC({code}

@virtualswede