continuous delivery & devops in the enterprise
DESCRIPTION
Continuous Delivery and DevOps have a different value proposition in the Enterprise and therefore must be implemented differently. This presentation taTRANSCRIPT
Eberhard Wolff - @ewolff
DevOps & Continuous Delivery
in the Enterprise Eberhard Wolff Freelancer Head Technology Advisory Board adesso AG
Eberhard Wolff - @ewolff
Leseprobe: http://bit.ly/CD-Buch
Eberhard Wolff - @ewolff
Continuous Delivery DevOps
Adoption
Eberhard Wolff - @ewolff
Continuous Delivery DevOps
Adoption
Eberhard Wolff - @ewolff
Continuous Delivery: Build Pipeline
Commit Stage
Automated Acceptance
Testing
Automated Capacity Testing
Manual Explorative
Testing
Release
Eberhard Wolff - @ewolff
Continuous Delivery • Pipeline executed several times per day
• Automated provisioning
• Fast Feedback • Tests, tests, tests… • Feedback from production
Eberhard Wolff - @ewolff
Continuous Delivery
in Startups
Eberhard Wolff - @ewolff
Lean Startup Approach for launching businesses and products
Relies on • validated learning • scientific experimentation • iterative product releases
To • shorten product development cycles • measure progress • gain valuable customer feedback.
Eberhard Wolff - @ewolff
Traditional Approach • Let’s create a shop 2.0
• Features • Express orders • Improved search • Improved recommendations
Eberhard Wolff - @ewolff
Traditional Approach • Have it all implemented • Roll it out • See impact
• Spend a lot of money • Takes a long time • Can you measure the success?
Eberhard Wolff - @ewolff
Lean Startup: Express Orders • Interview customers
• No interest
• Don’t build it
Eberhard Wolff - @ewolff
Lean Startup: Search • Prototype
• Well received
• Build it!
Eberhard Wolff - @ewolff
Lean Startup: Benefits • Less money spent
• Faster results
• Can further expand e.g. search • …instead of wasting money on
express orders
Eberhard Wolff - @ewolff
Eberhard Wolff - @ewolff
Observe
Orient
Decide
Act OODA Loop
Eberhard Wolff - @ewolff
Startups • No clear market yet • Need feedback • …and change plan accordingly • Success depends on speed in OODA
loop
Eberhard Wolff - @ewolff
Continuous Delivery and the Market
• OODA: act quickly, observer better
• Act: Faster deployment • = shorter time to market
• Observe: Better visibility with better monitoring
Eberhard Wolff - @ewolff
Continuous Delivery
in Enterprises
Eberhard Wolff - @ewolff
IT Faster!
Time to Market!
Eberhard Wolff - @ewolff
We used to do a release a quarter.
Eberhard Wolff - @ewolff
We used to do a release a quarter.
Now we do one every two quarters
Eberhard Wolff - @ewolff
IT Faster!
Time to Market!
Eberhard Wolff - @ewolff
Why not? • Managers think in month • …or even years
• Quick feedback and fast deployment hardly usable
Eberhard Wolff - @ewolff
So? • Adopt Lean Startup in Enterprises • Lean Startup is not just for Startups • Quicker innovation • Gain a competitive edge
• Business strategy • Outside IT
Eberhard Wolff - @ewolff
Software Becomes the Product! • Example: Automotive • Cars: Auto pilot (Tesla, Audi) • Car sharing instead of buying cars • DriveNow (BMW), Car2Go (Daimler) • Uber • MyTaxi (Daimler) • Enterprise = Start Up?
Eberhard Wolff - @ewolff
Continuous Delivery is
faster deployments
Eberhard Wolff - @ewolff
Traditional Enterprise Approach
• Low frequency of releases • Each release scheduled • …extensively managed • …precautions if it fails • Weekends, nights …
• Enterprises can only deploy slowly
Eberhard Wolff - @ewolff
Enterprises can deploy quickly!
Eberhard Wolff - @ewolff
Quick Deployment in Enterprises
Severe production problem • Hot fix • Deployed in minutes / hours
How? • Only limited tests, high risk (?) • Small batch, small risk
Eberhard Wolff - @ewolff
Lessons Learned from Hot Fixes
• Speed of deployment: no good reason for Continuous Delivery
• Continuous Delivery = Hot Fix + automated tests
• Different way to handle risk • Smaller and faster deployments
Eberhard Wolff - @ewolff
Continuous Delivery Minimizes Risk
• Risk depends on size of change
• More frequent deployments less risk
Eberhard Wolff - @ewolff
Traditional Deployments: Risk
Developer Build
1h
Continuous Integration
Development Environment
1d
Staging
30d
>30d
Production
Eberhard Wolff - @ewolff
Continuous Delivery: Risk
Developer Build
1h
Continuous Integration
Acceptance Tests
Capacity Tests
Production
Eberhard Wolff - @ewolff
Traditional Enterprise Approach
Difference to Continuous Delivery? • No automation • Not reproducible • Too infrequent to establish best
practices
Eberhard Wolff - @ewolff
Full Continuous Delivery Pipeline?
Commit Stage
Automated Acceptance
Testing
Automated Capacity Testing
Manual Explorative
Testing
Release
Dev Ops
Eberhard Wolff - @ewolff
Continuous Delivery & Separated Ops
• Need buy-in from Ops • Separate organizational unit • Mistrust • Used to their ways • …and tools
• Solution: DevOps (later)
Eberhard Wolff - @ewolff
Dev-only pipeline useful?
Eberhard Wolff - @ewolff
Dev-only Pipeline • Much higher quality • A lot more tests • Automated infrastructure • Pays off for testing systems
• Sensible alternative
Eberhard Wolff - @ewolff
Not just productivity gain
automation vs. manual
Eberhard Wolff - @ewolff
Continuous Delivery Pipeline
More frequent
tests
Higher quality
Faster feedback Faster
Time- to-market
Automation
Higher productivity
Reproducible environments
Eberhard Wolff - @ewolff
Continuous Delivery Pipeline
More frequent
tests
Higher quality
Faster feedback Faster
Time- to-market
Automation
Higher productivity
Reproducible environments
Eberhard Wolff - @ewolff
Continuous Delivery Pipeline
More frequent
tests
Higher quality
Faster feedback Faster
Time- to-market
Automation
Higher productivity
Reproducible environments
Eberhard Wolff - @ewolff
Continuous Delivery in Enterprises: Sum Up
Dev+Ops+Business • Time to market • Lean Startup / fast OODA loop • Best Pay Off Dev + Ops • Avoid deployment problems • All the weekends spend on releases
Eberhard Wolff - @ewolff
Continuous Delivery in Enterprises: Sum Up
Dev • Faster feedback • More tests • Easier to set up test environments
Can be introduced with little Buy-In • Just do it!
Eberhard Wolff - @ewolff
Continuous Delivery DevOps
Adoption
Eberhard Wolff - @ewolff
Continuous Delivery DevOps
Adoption
Eberhard Wolff - @ewolff
DevOps • Dev: Development • Ops: Operations
• DevOps = close collaboration between Dev and Ops
• Teams have Ops and Dev people
Eberhard Wolff - @ewolff
DevOps in Startups
Eberhard Wolff - @ewolff
DevOps in Startups • You build it – you run it • Smaller organizational units • At the beginning: No clear roles • DevOps teams by feature • From the start
Eberhard Wolff - @ewolff
DevOps in Enterprises
Eberhard Wolff - @ewolff
Dev – features Ops – cost
Eberhard Wolff - @ewolff
Dev builds it Ops runs it
Eberhard Wolff - @ewolff
Why??
Eberhard Wolff - @ewolff
Costs
Eberhard Wolff - @ewolff
Why Separate Dev and Ops?
• Adam Smith • Separation of labor • Standardization • Industrialization • Cost • Productivity
Eberhard Wolff - @ewolff
Lower Costs Differently • Basic tasks automated by software • See Continuous Delivery
• IT = automating tasks
Eberhard Wolff - @ewolff
Goals Might Be Different • Flexible IT to support business • See Lean Startup etc • Separate Dev/Ops: not be the best
option for Enterprises?
Eberhard Wolff - @ewolff
Let’s introduce DevOps in
Enterprises!
Eberhard Wolff - @ewolff
DevOps in Enterprises • Dev and Ops separated directly
below CIO • Need to change the organization • Fundamentally • Changing the organization is hard
Eberhard Wolff - @ewolff L
Eberhard Wolff - @ewolff
DevOps =
Culture
Eberhard Wolff - @ewolff
Do you need to change the
organization?
Eberhard Wolff - @ewolff
DevOps = Culture • Let Ops and Dev sit together • Direct communication between Ops
and Dev engineers emerges • Associate Ops with Dev teams
• Share tools… • …and knowledge
Eberhard Wolff - @ewolff
What if you change the
organization?
Eberhard Wolff - @ewolff
Traditional Organization
CRM Order Inventory
Dev
Ops Hardware, Operating System etc
Eberhard Wolff - @ewolff
Problem with Traditional Organization
• Customer only cares about applications
• Not infrastructure • So: Ops not important? • Different goals • Dev: Bring out new features quickly • Ops: Stable platform and applications
Eberhard Wolff - @ewolff
Problem with Traditional Organization
• At the end Ops and Dev both serve the customer
• Both own stability and new features
• But not represented in organization • …or incentives
Eberhard Wolff - @ewolff
DevOps Organization
CRM Order Inventory
Dev
Ops Hardware, Operating System etc Hardware etc
Eberhard Wolff - @ewolff
Dev Ops = Customer Oriented
• Team owns feature • …and stability • i.e. value of the application to the
customer • Clearly responsibility • Competitive edge for in-house IT
Eberhard Wolff - @ewolff
Continuous Delivery DevOps
Adoption
Eberhard Wolff - @ewolff
Continuous Delivery DevOps
Adoption
Eberhard Wolff - @ewolff
DevOps & Continuous
Delivery will be adopted like
Agile
Eberhard Wolff - @ewolff
DevOps & CD vs. Agile • Similar issues • Culture • Values • Time to market
• E.g. DevOps & CD are the next step after agile
Eberhard Wolff - @ewolff
Step 1: Resistance & Doubt • Agile about 2000 • eXtreme Programming
• Management doesn’t want it
• Doubts whether it can work at all
Eberhard Wolff - @ewolff
DevOps & Continuous
Delivery cannot possibly work for
me!
Eberhard Wolff - @ewolff
My IT is more complex than
Amazon!
Eberhard Wolff - @ewolff
Adoption • Orthodox to leave the old ways • Bottom up by IT
• Problem: Buy-In from Management
• Current state of DevOps / Continuous Delivery
Eberhard Wolff - @ewolff
Step 2: Mainstream • Developers & technical managers
agree • No need to discuss the need • Project start implementing it en
masse • Agile after 2005
Eberhard Wolff - @ewolff
Step 2: Mainstream • Adoption: Just get a coach • …but hard to make it truly work • Values & organization – hard to
change
Eberhard Wolff - @ewolff
Step 3: Everyone Is Doing It • …or at least claims so • Core values often still not
understood • …or shared by the organization • Management Buy-In • Agile now • Disillusion
Eberhard Wolff - @ewolff
How can DevOps and Continuous
Delivery avoid this?
Eberhard Wolff - @ewolff
Customize Continuous Delivery & DevOps for Enterprises
Eberhard Wolff - @ewolff
TL;DR
Eberhard Wolff - @ewolff
Continuous Delivery in Enterprises
• Faster time to market • Useful if business changes
accordingly
• Otherwise: Lower risk • Automation & reproducibility • Smaller batches for releases
Eberhard Wolff - @ewolff
DevOps in Enterprises • DevOps = Culture • Encourage communication • …and sharing tools
• Optional: DevOps = Organization • Customer Oriented IT • Optimization for flexibility instead of
cost
Eberhard Wolff - @ewolff
Thanks!