• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Enterprise DevOps: Scaling Build, Deploy, Test, Release
 

Enterprise DevOps: Scaling Build, Deploy, Test, Release

on

  • 5,576 views

Slides from this webcast: bit.ly/mTUTq4

Slides from this webcast: bit.ly/mTUTq4

Discussion of what DevOps is, why we need it, what sorts of shared tooling helps it, and how it fits in to an enterprise rollout.

Statistics

Views

Total Views
5,576
Views on SlideShare
5,563
Embed Views
13

Actions

Likes
14
Downloads
0
Comments
0

2 Embeds 13

http://www.scoop.it 12
https://twitter.com 1

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Enterprise DevOps: Scaling Build, Deploy, Test, Release Enterprise DevOps: Scaling Build, Deploy, Test, Release Presentation Transcript

    • Enterprise DevOps: Scaling Build, Deploy, Test, Release
      Eric Minick, Lead Consultant
    • Agenda
      What is DevOps (and why does it exist)?
      What do we need from DevOps?
      Tools for DevOps
      Adopting DevOps in the Enterprise
    • Agenda
      What is DevOps (and why does it exist)?
      What do we need from DevOps?
      Tools for DevOps
      Adopting DevOps in the Enterprise
    • What is DevOps? – the Patrick Debois Take
      We make bad software and deliver late
      Fear of change
      Risky Deployments
      It works on my machine
      Silos
      A DevOps Mindset Emphasizes:
      We’re all on the same team
      Developers, Testers, Ops, Managers…
      Cross-Disciplinary Approach
      Lots of Communication
      http://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing-anyway/
    • What is DevOps, Ctd
      It’s Agile applied beyond Development
      Cross-Functional Teams
      Focus on Results
      Embracing Change
    • Traditional SDLC Roles
    • Why?
      Business demand for more releases
      Growing application complexity
      Increased controls and audit requirements
      Economics limit headcount
    • Why? – Business Demand for more Releases
      High investment in software needs returns quickly
      Respond in a competitive landscape
      Agile Development
      More responsive
      Smaller updates more quickly
      Hasn’t addressed actually releasing these changes
    • Why? - Growing Application Complexity
      Service Oriented Architectures make for more pieces that need to be released together
    • Why? - Increased Controls and Audit
      We need to comply with a variety of standards and rules
      Sarbannes-Oxley Act of 2002, SAS 70, CMMI 2/3, ISO 9001:2008, FDA and PCI compliance
      Basically:
      Separation of duties
      Clear audit trails
      Secure everything
    • Why? - Economics
      Do more… but you get no more people
    • Agenda
      What is DevOps (and why does it exist)?
      What do we need from DevOps?
      Tools for DevOps
      Adopting DevOps in the Enterprise
    • What we need
      Automate processes NOT run them manually
      Automatic Audit Trail NOT bureaucracy
      Cooperation NOT throwing it over the wall
      Shared Automation NOT repeating ourselves
    • Automation is a big part of what we need
      Builds – Production Ready Builds
      Deployments – To test environments (Dev, SIT, UAT, Perf) and production (Live, DR, Training)
      Tests – Smoke, regression, Security
    • But Today’s Automation is in Silos
      Build scripts
      Unit tests
      Static analysis tools
      Nightly build
      Continuous Integration
      Update test environment
      Deploy test data
      Functional tests
      Performance/Load tests
      Static analysis tools
      Deployment scripts
      Provisioning Tools
      Archive releases in Definitive Media Library
    • Team-level automation has benefits
      Save themselves time
      Automate what they would otherwise do manually
      Better visibility between team members
      CI lets other developers know the build is broken
      Smoke tests let us know if it’s worth manual testing
      Wiki board with which build is on which lab machine
      Ops – updating a status board
      Consistency
      Fewer mistakes in executing the process
      Less time tracking down bugs
      Higher quality products
    • Team-Level Automation Isn’t Enough
      Each team manages the same things differently
      Deployments
      Configuration (drift)
      Deployment verification (smoke tests)
      Audit questions that cut across silos:
      What source code was used to build what’s in production?
      Is production configured the same as the test environment?
      What build was in production on Feb. 12, what was in it, who put it there, and was it tested?
    • DevOps Spans Silos
      EnterpriseDevOpsties together Development, QA, Release Management and Operations to give end-to-end traceability.
    • Terms relating to end-to-end automation
      DevOps
      Enterprise Continuous Integration
      Build Pipeline / Build Life
      Continuous Deployment
      Continuous Delivery
    • Visualizing an SDLC Pipeline
    • Foundational Tools for DevOps
      Tools should support automation and audit
      Expand on team level automation
      Common platform for builds, deployments, tests
      Central reporting and improved visibility
      No Hiding. No Heroes.
    • Build Promotion / Pipeline
      Each stage can leverage existing team-level automation
      Not all builds complete the pipeline
      Stages are linked with shared reporting and reference same files
    • Continuous, quality builds
      Need CI to produce deployable, traceable builds.
      Artifacts + dependencies + configuration information = “The Build”
      The Build becomes the unique identifier to provide traceability across systems.
      Aids Audit:
      We have one identifier for stuff from dev to ops
      Supports Automation:
      Consistent communication for hand-offs
      A complete bundle of deployment “stuff”
    • Artifact Repository (DML)
      Need an artifact repository
      Traceability to source still essential
      Repository (ITIL DML) becomes a building block of the end-to-end system
      Aids Audit
      What source code was used to build what’s in production?
      Supports Automation
      Builds populate it. Deployments retrieve from it.
    • Configuration Management
      Need configuration driven by the system instead of done by hand
      Extract configuration from one system, deploy to another
      Can reduce deployment failures by 90%
      Aids Audit:
      Is production configured the same as test?
      Supports Automation:
      Addresses easiest part to forget when creating the manual deployment doc
    • Track Complex Deployments
      How do the database, application, configuration, and content changes relate?
      Aids Audit:
      Did the whole change go out, or just part of it?
      Supports Automation
      Orders and coordinates automated workflows
    • Role Based Controls
      Shared automation with rights for who does what
      Devs build and own dev test
      QA deploys to their environments and run tests
      Operations runs deployments to production
      Managers approve and monitor
      Aids Audit
      Clear controls and separation of duties
      Supports Automation
      Removes barriers to adopting shared automation
    • Automated Tests
      Regression tests for shorter QA cycles
      Smoke tests for validating deployments in ALL environments
      Aids Audit
      Easily demonstrable tests run against the release
      Supports Automation
      Quickly detects deployment problems and prompt rollback
    • Requirements forDevOps automation
      Need an artifact repository to trace “The Build”
      What source code was used to build what’s in production?
      Need to drive configuration from the system
      Is production configured the same as the test environment?
      Need manage complex deployments
      Which versions of various tiers go together?
      Need to control & track who, did what, when
      What build was in production on Feb. 12, what was in it, and who put it there?
      Need to track historical information
      Did the tests all pass for the build we put into production six months ago?
      Need automated smoke tests
      Did the release work?
    • Scaling DevOps to the Enterprise
      Most organizations start with pilot projects for build and deployment automation
      The enterprise will want to adopt this throughout development
    • Drivers for enterprise adoption
      Seek to adopt “best practices”
      Why have any team doing something less than the best?
      Consistency
      Reduce friction moving people between teams
      Invest in training materials (help, documentation, training videos)
    • What’s needed for enterprise deployment?
      Scalability
      Find my project among 5000
      Process flexibility (hard coded script names, certain user, certain machine, IP addresses, platform support)
      Economies of Scale
      Wait… does each team need its own (under-utilized) server?
      Better solution: pool of servers
    • What’s needed for enterprise deployment?
      Management
      Licensing
      Support
      Keeping the system running
      Training
      Security
      Keep teams from breaking each-other
    • The human side of enterprise adoption
      Beware of Conway’s law:
      Cooperation and shared automation are unnatural when you work for different bosses.
      Solve the problem for everyone involved
      Cast a wide net: Involve a wide audience early
      Make it easier to get their job done within the system than outside it
    • Four strategies for facing Conway’s Law
      Hire engineers that have skills in development, test and system administration
      Put together cross functional teams with developers, testers and sys-admins
      Create a central “DevOps Infrastructure Team.” Provides shared infrastructure as a service, facilitates Dev / Ops communication .
      Fight through it! There’s nothing keeping you from asking, “How do I make your life easier?”
    • Summary
      Document based communication and manual build and release processes are slow and broken
      Greater cooperation between development and operations is needed
      A common automation infrastructure helps
      Someone needs to make it happen
    • References
      http://urbancode.com/resources
      Enterprise CI Maturity Model
      Death to Manual Deployments!
      Build & Deployment Automation for the Lean Economy
      ITIL Release Management and Automation
      http://urbancode.com/blogs/
      http://twitter.com/UrbanCodeSoft
    • Yes, we sell products for this
      AnthillPro is becoming the DevOps Platform
      DevOps Platform
      End to End Automation
      UrbanBuild
      Build automation and CI for the hard problems
      UrbanDeploy
      Deployment and release management
    • Questions?