The DevOps Way of Delivering Results in the Enterprise

Post on 14-Sep-2014

15,234 views 0 download

Tags:

description

Delivering Software as a Service in the cloud requires agility and speed. Sadly, those are two attributes that big companies aren’t usually good at doing. Instead of organizing to deliver results, companies tend to build silos where development, operations, QA and security operate as separate entities. DevOps unites these groups to deliver services faster and provide results that matter. This talk will arm you with the DevOps patterns to follow as well as point out specific anti-patterns to avoid. To show you how to implement DevOps in your org, this talk will cover sample architectures and Open Source tooling. Come hear how to start delivering results with increased agility and speed.

transcript

mentor.com/embedded

Android  is  a  trademark  of  Google  Inc.  Use  of  this  trademark  is  subject  to  Google  Permissions.

Linux  is  the  registered  trademark  of  Linus  Torvalds  in  the  U.S.  and  other  countries.

James Wickettjames_wickett@mentor.com

twitter: @wickett

The DevOps Way of Delivering Results in the Enterprise

I want you to be successful and make a difference

James WickettSr. DevOps Engineer

Mentor Graphics Embedded Software Division

regular blogger at: theagileadmin.comruggeddevops.org

CISSP, GWAPTCCSK, GSEC, GCFW

@wickett

james_wickett@mentor.com

Experience

• Started using AWS cloud in early 2008

• 2.5 years working on a DevOps team

• History of working in the enterprise and in startups and in startups inside the enterprise

• DevOps Days Austin Organizer

ConclusionsThe cloud necessitates a new approach to our operations (business and tech)

DevOps has worked for startups and can work for the enterprise

Rugged DevOps fills some of the needs of the enterprise

Use a Behavior Driven Infrastructure approach

DevOps Antipatterns• Rebrand your Ops team as the DevOps team• Use a machines to people hiring ratio to

determine headcount• Deploy software manually• Believe chef/puppet/cfengine will solve all your

problems• Test only the application code• Deploy to a production-like environment only

after development is complete• Rely on the standard logs for metrics• Hide stuff from your team

before devops and enterprise, lets start with cloud

“Cloud? I’ve been doing that since 1988. It’s just the same old thing with a new

name." - Technohipster

“Rugged DevOps will help you build your cloud” - http://bit.ly/rugged-devops

OSSMOn-DemandScalableSelf-serviceMeasured

Dave Nielsen > http://www.rackspace.com/blog/on-definitions-keeping-it-simple-with-ossm/

we sell time now

“I don’t want you to send me an

installation disc”- your customer

we sell social and friendships

New landscape

Are New Skills Required for Cloud Computing?

Cloud computing requires new skills - 74%Cloud computing does not require new skills - 26%

source: The 2011 (ISC)2 Global Information Security Workforce Study

Specific New Skills Required for Cloud Computing

A detailed understanding of cloud computing - 92% agreeEnhanced technical knowledge - 82% agreeContract negotiation skills - 49% agree

source: The 2011 (ISC)2 Global Information Security Workforce Study

Code is social

Delivery is King

courtesy of dbaron: http://www.flickr.com/photos/dbaron/2437975928/

Time To Market is Crucial

SaaS and PaaS

New World of Services

Give me API or

Give me Death-@littleidea

the old way is broken

DevOps is the new hotness for startups

DevOps is a movementpredicated by:

cloud, startups, SaaS, consumerization of IT

“there is nothing to suggest that devops can’t work in the enterprise”

-Patrick Debois

Cutter IT Journal, Vol. 24, No. 12, pg 3

DevOps?

source: Gene Kim, “When IT says No” @SXSW 2012

DevOps

CultureAutomationMeasurementSharing

source: John Willis (@botchagalupe) and Damon Edwards (@damonedwards)

DevOps is Culture

Culture is the most important aspect to DevOps succeeding in the enterprise

Culture

Eliminate the blame game

Open post-mortems

Rewarding failure (and emphasis on testing)

Release often

DevOps Antipattern:Rebrand your Ops team as the DevOps team

DevOps Antipattern:Use a machines to people hiring ratio to determine

headcount

DevOps is Automation

Automation

Deploy

Control

Monitoring

Config Management

Orchestration

Unique bits

OS Image (AMI)

Software (RPM)

DevOps Antipattern:

Deploy software manually

DevOps Antipattern:Test only the application code

DevOps Antipattern:

Manual configuration of production environments

DevOps Antipattern:Believe chef/puppet/cfengine will solve all your

problems

DevOps Antipattern:Deploy to a production-like environment only after

development is complete

DevOps is Measurement

Measurement

Performance metrics

Logs

Metrics mapped to business goals

Integration with people

DevOps Antipattern: Rely on the standard logs for metrics

DevOps is Sharing

Sharing

Feedback loops

Enables the Automation and Measurement

Significantly impacts Culture

DevOps Antipattern:Hide stuff from your team

Don’t forget Lean

and Kanban

courtesy of fright42: http://www.flickr.com/photos/fright42/5329361800/sizes/l/in/photostream/

The DevOps Library

Enterprise?

the perception of The Enterprise

slow

innovation starved

process obsessed

compliance and conformity as first order goals

control

DevOps and Enterpriseare unlikely

traveling companions

“there is nothing to suggest that devops can’t work in the enterprise”

-Patrick Debois

Cutter IT Journal, Vol. 24, No. 12, pg 3

“The main challenge will be reevaluating the existing people and processes from a constant collaboration viewpoint, keeping the business goals in mind.”

-Patrick Debois

Cutter IT Journal, Vol. 24, No. 12, pg 3

Startups need

Cash

Customers (stakeholders)

Experimentation

Risk

The Enterprise has different needs

The Enterprise needs

Longevity

Stakeholders

Revenue

Compliance

Safeguards (data, legal, ...)

HTTP://BIT.LY/RUGGED-DEVOPS

THE INEQUITABLE DISTRIBUTION OF LABOR IN SECURITY MIMICS THAT IN DEV/OPS

2% of an engineering dev team are working on security

- BSIMM 2012 data, http://bsimm.com/

I recognize that my code will be attacked by talented and persistent adversaries who threaten our physical,

economic, and national security.

I am rugged, not because it is easy, but because it is necessary... and I am up for the challenge.

I recognize that my code will be used in ways I cannot anticipate, in ways it was not designed,

and for longer than it was ever intended.

Current Software

slide from http://bit.ly/rugged-devops

Rugged Software

slide from http://bit.ly/rugged-devops

Current Software

slide from http://bit.ly/rugged-devops

Rugged Software

slide from http://bit.ly/rugged-devops

Current Software

slide from http://bit.ly/rugged-devops

Rugged Software

slide from http://bit.ly/rugged-devops

ADVERSITY REQUIRES RUGGED SOLUTIONS

slide from http://bit.ly/rugged-devops

RUGGEDIZATION THEORY

Building solutions to handle adversity will cause unintended, positive benefits that will provide value that would have been unrealized otherwise.

slide from http://bit.ly/rugged-devops

NO PAIN, NO GAIN

slide from http://bit.ly/rugged-devops

slide from http://bit.ly/rugged-devops

Rugged DevOpsrepeatable – no manual steps

reliable - no DoS here

reviewable – aka audit

rapid – fast to build, deploy, restore

resilient – automated reconfiguration

reduced - limited attack surface

slide from http://bit.ly/rugged-devops

Rugged DevOps Testing

unit tests

smoke tests

security tests (gauntlt)

outside-in tests (cucumber, aruba)

monitoring (created from your tests)

What about the toolchain?

Paul Hammond, Scaling Typekit Infrastructure for Startups, Velocity 2012

Paul Hammond, Scaling Typekit Infrastructure for Startups, Velocity 2012

Our Toolchain and Software Stack

chef

Datadog

pingdom

loggly

PagerDuty

JIRA

ubuntu

mongodb

nginx

tornado

haproxy

IRC

AWS (ec2, s3)

cucumber

aruba

gauntlt

CloudWatch

github

Behavior Driven Infrastructure

Write failing tests describing the infrastructure you wish you had

Make them pass by writing infrastructure automation code (chef/puppet)

Repeat

In summary

Culture is the most important aspect to DevOps succeeding in the enterprise

-me, 30 minutes ago

ConclusionsThe cloud necessitates a new approach to our operations (business and tech)

DevOps has worked for startups and can work for the enterprise

Rugged DevOps fills some of the needs of the enterprise

Use a Behavior Driven Infrastructure approach

DevOps Antipatterns• Rebrand your Ops team as the DevOps team• Use a machines to people hiring ratio to

determine headcount• Deploy software manually• Believe chef/puppet/cfengine will solve all your

problems• Test only the application code• Deploy to a production-like environment only

after development is complete• Rely on the standard logs for metrics• Hide stuff from your team

mentor.com/embedded

Android  is  a  trademark  of  Google  Inc.  Use  of  this  trademark  is  subject  to  Google  Permissions.

Linux  is  the  registered  trademark  of  Linus  Torvalds  in  the  U.S.  and  other  countries.

James Wickettjames_wickett@mentor.com

twitter: @wickett

The DevOps Way of Delivering Results in the Enterprise