Continuous Deployment JEFFREY KNAPP 8/6/14. Introduction Why is it valuable How to achieve What to...
-
Upload
charlene-brooks -
Category
Documents
-
view
225 -
download
1
Transcript of Continuous Deployment JEFFREY KNAPP 8/6/14. Introduction Why is it valuable How to achieve What to...
Continuous DeploymentJEFFREY KNAPP
8/6/14
Introduction Why is it valuable How to achieve What to consider
Why? - Value To the end client
◦ Rapid delivery, less time from idea to production To the company
◦ Less software inventory◦ Consistent deployment process
To the team◦ Less effort to deploy◦ More frequent system testing feedback
Why? - Consistency Consistent process Consistent testing Reproducibility
Why? - Quality Testing strategy and design are taken into account up front Consistent testing methods and execution Quality checks in deployment process ensure quality releases
Implementation – Continuous Integration
Continuous Integration
Continuous Delivery
Continuous Deployment
SourceControl
Readyto Run
Ready forProduction
InProduction
Implementation – Continuous Delivery
Continuous Integration
Continuous Delivery
Continuous Deployment
SourceControl
Readyto Run
Ready forProduction
InProduction
Implementation – Continuous Deployment
Continuous Integration
Continuous Delivery
Continuous Deployment
SourceControl
Readyto Run
Ready forProduction
InProduction
Implementation – Building a Deployment Pipeline Pros
◦ Efficient◦ Easy to implement◦ Quick to deploy
Cons◦ Low confidence level◦ Inconsistent quality
Source Control
Production
Implementation - Testing Benefits
◦Confidence◦Consistent quality
Types◦Unit◦ Integration◦Acceptance
Implementation – Building a Deployment Pipeline Pros
◦ Higher confidence level◦ Consistent quality
Cons◦ More difficult to implement◦ Takes longer to deploy
Source Control
Unit Tests
Integration Tests
Acceptance Tests
Production
Implementation – Deployment Pipeline
Implementation – Putting it all together
ContinuousIntegration
ContinuousDelivery
ContinuousDeployment
Considerations Business considerations between delivery and deployment◦Up to engineering to achieve continuous delivery◦Continuous deployment may be affected by business processes◦ Segregated networks◦ Controlled release dates
Considerations Amount of testing (Time vs. Confidence)
◦Generally, higher confidence requires more testing which requires more time to implement and deployment process takes longer
◦How much confidence is required?◦ Defined by the team◦ Defined by the company◦ Defined by the client◦ Defined by the market
Considerations Automated vs. manual testing◦Anything repetitive should be automated
◦ Humans are poor at repetitive tasks◦ Computers are good at repetitive tasks
◦More efficient◦ QA can focus on designing tests and implementing automated
testing (which is an investment with an ROI that increases over time)◦ Manual testing does not scale well
Considerations Single tenant vs. multi tenant systems
◦Single tenant = one production environment per client◦Multi tenant = one production environment for all clients◦Don’t forget about demo and sales environments
Conclusion By implementing continuous deployment, value can be delivered to the client quicker, more consistently, and with higher quality.
Q&A