release automation: better quality, faster deployment, amazing roi
Post on 16-Aug-2015
62 Views
Preview:
TRANSCRIPT
4/23/15
1
Release Automation
Better Quality Faster Deployment
Amazing ROI
Overview METHODOLOGY PROCESS TOOLS
4/23/15
2
DevOps = Release Automation
DevOps is Methodology It’s a way of doing
things, not what things to do.
DevOps with Agile
DEVELOPMENT
EXECUTIVES
BUSINESS
IT OPERATIONS
AGILE
DEVOPS
4/23/15
3
HP Case Study > 3 year transformaFon Fme (2008 to 2011) > Overall dev costs reduced by ~40% > AcFve programs in development up ~140% > Dev costs per program down 78% > Resources freed up to work on innovaFon up 500%
They went from
Build cycle =me: 1 week TO 3 hours (10–15 builds per day) Commits: 1 code commit/day TO 100 commits/day Regression test cycle =me: 6 weeks TO 24 hours
How? • Architecture DirecFon
• All LaserJet code in main trunk • Design to fight impediments mid-‐sprint (put out fires/phoenixes)
• Full system in Dev • Acceptance test in non-‐integrated environment
• IntegraFon uses “test doubles” • CI to CD to CD • Test AutomaFon and Process AutomaFon
• Planning Process (Agile and DevOps)
4/23/15
4
Economics Puppet Labs 2014 DevOps Survey
DevOps Users
30X more frequent deployments
8,000X faster lead Fmes than their peers
50% fewer failures
Automation Maturity
Con=nuous Deployment
CD
CI
Test AutomaFon
CD
CDel
CI
Test Automa=on EFFORT
MATURITY
4/23/15
5
CI Roadmap • “Keep a single place where all the source code lives and
where anyone can obtain the current sources from (and previous versions)
• Automate the build process so that anyone can use a single command to build the system from the sources
• Automate the tes6ng so that you can run a good suite of tests on the system at any ;me with a single command
• Make sure anyone can get a current executable which you are confident is the best executable so far.”
-‐Mar;n Fowler “Con;nuous Integra;on” (Essay)
September 2000
CI Process Plan IteraFon • Review and EsFmate
Code • Unit Test
Build • Unit Test • Unit IntegraFon Test
Deliver • Acceptance Test
Deploy • Acceptance Test
Performance and Security TesFng too!
Performance and Security TesFng too!
Performance and Security TesFng too!
Performance and Security TesFng too!
4/23/15
6
CI in Action
Code
Unit Test
Build
Integrate
Unit IntegraFon
Test
Deliver to ENV
IntegraFon is just pugng units of code together and tesFng them that way. ConFnuous IntegraFon is doing this on every change. Example: 3 team members code new components and unit test them. They pass. Then you put them together in Dev with the rest of the system and something’s broken (Unit IntegraFon Test fails).
CI in Action
Code
Unit Test
Build
Integrate
Unit IntegraFon
Test
Deliver to ENV
STOP!
OK, so the new code didn’t work with the rest of the system. Then what? ROLLBACK. Revert your exisFng environment to the previous code base – preferably automaFcally -‐ and go fix the problem(s) right then and there. Once fixed, THEN you can try again, and if it works move on to bigger and bener builds.
4/23/15
7
Why use CI? • MarFn Fowler, in his September 2000 essay on CI explained that integraFng once per week doesn’t take 5x as long as once per day… it takes 25x as long.
• Why? Risk calculus: • Maciej Zawatzki, Director of the Deploy and Release Product Line at IBM Urban Code explains in his video
• YouTube: hnps://www.youtube.com/watch?v=f9NAZmtxYJg
• IBM: hnps://developer.ibm.com/urbancode/videos/urbancode-‐video-‐blog-‐1-‐term-‐devops/urbancode-‐video-‐blog-‐4-‐risk-‐calculus-‐release-‐management/
Automate Everything • “Automate the build process” • “Automate the tesFng”… and all that supports it • Make it truly automaFc. Saved a client 75% execuFon Fme doing this last year.
4/23/15
8
Code Change Demo
CD… and CD
• ConFnuous Delivery (CD) • ConFnuous Deployment (CD) • Both processes • Both keystone pieces of Release AutomaFon
DELIVERY
DEPLOYMENT Absolutely required for successful DevOps projects!
Not for everyone.
4/23/15
9
Delivery vs. Deployment
Unit Tests Unit
IntegraFon Tests
Deliver to <Your Pre-‐Prod ENV>
Acceptance Tests
Unit Tests Unit
IntegraFon Tests
Delivery to <Your Pre-‐Prod ENV>
Acceptance Tests
Deploy to Prod
Post-‐Deploy Tests
DELIVERY
DEPLOYMENT
“Con6nuous Delivery doesn't mean every change is deployed to produc;on ASAP. It means every change is proven to be deployable at any 6me.” -‐Carl Caum
Compile Code Run Unit Tests Run Unit IntegraFon
Tests
Deliver to Pre-‐Prod
Environments
Run Acceptance
Tests Deploy to Prod
Run Acceptance
Tests
Run AddiFonal Post-‐Deploy
Tests
Massive Speed = Massive ROI
top related