Upload
doanque
View
213
Download
1
Embed Size (px)
Citation preview
Whitepaper Continuous Delivery Maturity Model 30 September 2014
WHITEPAPER
Whitepaper Continuous Delivery Maturity Model �1
Continuous Delivery Maturity Model Releasing software is often a long, difficult and risky process. Defects and integration issues pop-up at the very last moment and cause dissatisfaction to end users. Furthermore, lack of collaboration between the software development and IT operations teams generally results in deployment errors and finger-pointing.
Continuous Delivery can solve all of that and even more. Continuous Delivery can help IT organisations to become lean
and agile. It can help them to continuously adapt software according to user feedback and to stay ahead of changing market conditions, while improving the quality and speed of delivery. Continuous Delivery makes the delivery of software, from the hands of the developers to production a repeatable, reliable, visible and largely automated process
with well understood quantifiable risks. Continuous Delivery creates an organised evolution of the software development
process.
How to Achieve This Saying that it is all about practices, tools and people would not be saying anything new. Practices such as Version Control and Continuous Integration have been in existence for quite some time. New practices such as Test Automation, Infrastructure Automation and Automated Deployment and Monitoring have developed significantly over the last few years. The complete set of these practices, fully integrated, we call Continuous Delivery.
Source code and configuration changes are checked-in to a Version Control system and each check-in (potentially) triggers a Continuous Integration build. Each integration is performed by an automated build and verified by unit tests to detect integration errors as quickly as possible. This approach leads to a reduced number of integration problems, and allows the teams to develop software more rapidly. If the build is broken, all ongoing activities stop until the problem is solved and the build becomes releasable again.
Our highest priority is to satisfy the customer
through early and continuous delivery of
valuable software. Principle #1, Agile Manifesto
Whitepaper Continuous Delivery Maturity Model 30 September 2014
Whitepaper Continuous Delivery Maturity Model �2
Test Automation as a practice enables automated execution of test scripts and comparison of actual with expected results. Test Automation encompasses unit, integration, functional, performance and security tests and reduces the need for manual tests to a minimum. This requires skills from both testers as well as developers and their continuous teamwork. Infrastructure Automation enables automated provisioning and configuration of hosting environments and forms the bridge between Continuous Integration and Test Automation. Finally, the so called “last mile” of the deployment pipeline is covered by Automated Deployment. This part of the process can be fully automated, by provisioning a virtual test environment to run automated tests, but it can also be semi-automated in the case of one-click deployment, where an operator selects the application version and the deployment environment. System and Application Monitoring enables a quick response to outages and decreases time to recover.
Most importantly, to make Continuous Delivery a success, the development, test and IT-operations teams need to work together as one delivery team from the very start.
Adopting Continuous Delivery We have established a Continuous Delivery Maturity Model allowing our customers to adopt Continuous Delivery practices in a pragmatic and incremental approach.
The initial step is an assessment of the current status. This step is quantifiable, to show to what extent you have already adopted the various Continuous Delivery practices. The second step is to decide what goals and benefits you would like to achieve, both in the short and long term. This must be done realistically and pragmatically, higher is not always better or cost-effective. Based on the assessment and the pragmatic ambition, a concrete plan is created (step 3) where improvements are prioritised and evaluations are planned for re-assessing the value achieved by the improvements as compared with the set goals. Our approach is to introduce elements of Continuous Delivery in an agile manner, by measuring the benefits of each step and re-evaluating the goals.
The approach we take, not only affects the software development process (in its widest sense) but may also result in recommendations for architecture and the organisational setup. The aim will always be to reduce time to market, and take the risk out of the release process.
Whitepaper Continuous Delivery Maturity Model 30 September 2014
The Continuous Delivery Maturity Model
Whitepaper Continuous Delivery Maturity Model �3
Continuous Delivery
Initial Novice Intermediate Advanced
Version control Source code Unit tests Application Configuration code
Database Schema Infrastructure configuration code Main branch always deployable Automated release notes
Integration Manual or scripted builds
Scheduled (nightly) automatic builds Dependency management
Continuous integration of source code and unit tests (commit based) Artifact repository
CI Build Cluster CI orchestrated infrastructure provisioning Continuous integration of acceptance tests
Quality Manual testing Test management Automated unit and integration tests
Automated functional tests Static code analysis Facilitated peer reviews
Automated acceptance tests Automated non-functional tests (performance, security) Test cluster
Deployment Manual Manual database schema changes
Scripted Same process across different environments
Automated Deployment pipeline Gated automated promotions
Orchestrated deployments One click deployments Continuous deployments to production
Infrastructure Physical Manual provisioning and configuration
Virtual Cloud Automated provisioning Infrastructure as code
Self-service for experimentation Container based infrastructure Network automation
Monitoring No monitoring System level monitoring
Application level monitoring Log management Real-time centralised log monitoring
Application performance monitoring Anomaly detection Dynamic scaling
Architecture Tightly coupled De-coupled Covered with unit tests
Service oriented Fit for purpose frameworks Testable end-to-end Enables monitoring
Component based Scalable
Organisation Waterfall approach Silo structure
Iterative approach Direct collaboration Requirements management
Agile Lean
Multi-functional teams DevOps Technical debt addresses regularly
Whitepaper Continuous Delivery Maturity Model 30 September 2014
Recommended Tooling Based on our extensive experience, we have compiled an integrated toolset that enables us to establish Continuous Delivery end-to-end. This toolset is supported by real-life examples, knowledge and experience with installation, configuration and use in various projects.
The value of Continuous Delivery in your organisation In its very essence, Continuous Delivery is the implementation of lean principles. It defines “Done” as released into production and reaping business benefits. It enables organisations to become truly agile. It provides fast feedback and requires a prompt response from the whole team. This increases quality since the defects are found early in the process, while they are still easy to fix.
Continuous Delivery automates, accelerates and integrates all of the processes needed to develop software. This shortens release cycle times, reduces the defect rate and increases the frequency of delivery. This results in better customer focus, faster time to market and improved reliability of the delivered solution.
For further information please contact us via e-mail: [email protected]
Category Java, PHP, Android .Net
Version control system Git Git, TFS
Continuous integration Jenkins, Bamboo, Nexus, Maven, Gradle
TeamCity, TFS, NuGet
Test Automation and Code Quality
Selenium, TestNG, FitNesse, soapUI, JMeter, SonarQube, Phabricator
Selenium, TestNG, ReSharper, FxCop, Review Assistant
Automated deployment Capistrano, RunDeck, Liquibase Octopus Deploy, RedGate
Infrastructure Automation and Configuration Management
Puppet, VMWare, Amazon, OpenStack, Azure
VMWare, Amazon, OpenStack, Azure, Puppet, PowerShell DSC
Monitoring Zabbix, AppDynamics, Logstash SCOM, Zabbix
Collaboration Jira, Confluence Jira, Confluence, TFS
Whitepaper Continuous Delivery Maturity Model �4
About the author
Damir Solajic is the Delivery Director and Continuous Delivery Evangelist within Levi9 IT Services. He has worked as a Software Developer, Service Line Manager and Teaching Assistant across a variety of technologies. His focus is on automating and optimising end-to-end software delivery by implementing effective software engineering principles.
Whitepaper Continuous Delivery Maturity Model 30 September 2014
Levi9 IT Services, a Dutch nearshore IT services company Levi9 Global Sourcing is a Dutch nearshore IT service company with headquarters in Amsterdam. Levi9 has 4 delivery centres in central and Eastern Europe, with over 500 highly skilled and committed IT specialists. Founded in 2005, Levi9 is currently one of the best performing near-shore IT service providers in the Dutch market, with exceptional client satisfaction.
Clients Levi9 is the technology partner for businesses where IT has a strategic value. Over 80% of our work is performed on software systems that generate revenue for our clients.
ServicesOur service portfolio covers all aspects of the software development lifecycle: from architecture, technical design to development, testing and IT operations.
Whitepaper Continuous Delivery Maturity Model �5
Continuous Deployment
Infrastructure Automation
Cloud Management
System Management
IT"Operations
Agile"Testing
Manual"Testing
Automated Testing
Mobile
UX
PHP
Microsoft
Agile"Software"
Development
Java
Performance Review
“Second Opinion”
Architectural"Concept and
Design
Architectural"Assessment
Architectural"Service
Whitepaper Continuous Delivery Maturity Model 30 September 2014
Delivery models We provide our services through 3 delivery models:
Team as a Service (TaaS) This is a remote secondment model that provides add-on capacity for the IT departments of our clients. Our IT professionals become part of our client's R&D, and as such become fully integrated into the processes and teams of our clients. Levi9 provides more than just capacity: we take responsibility for the staffing and quality of the team, we provide continuity and reliability of delivery, and we pro-actively manage the satisfaction of both our clients and our team members. Furthermore, we provide added value through process and technology innovation, for instance in the areas of Test Automation, Continuous Delivery and Distributed Scrum.
Projects We execute projects, either based on Scrum, or according to detailed upfront requirements. We accept projects based either on fixed price-fixed date, or on time & material.
Maintenance and Support We perform application maintenance and support of individual systems or complete application landscapes, based on Service Level Agreements. We use ASL and ITL as our standard methods.
Our Clients About Us
Donald Leckie, Director Web Engineering TomTom: “Levi9 is involved in the vast majority of TomTom's core development programs, including doing active work on a number of TomTom's strategic platforms. Levi9 has helped in the maintenance work of fairly complex systems in TomTom's landscape. It's that depth of domain knowledge and transferable skills that play an important part in TomTom's sourcing strategy.
Jurrie van Rooijen, IT Director Bol.com: “The Levi9 team members are pro-active, take initiative in the technical area and are profoundly interested in our shop. They are very dedicated and, like us, work to achieve a better shop. That is very valuable for us.”
Janneke Niessen, CIO Improve Digital: “Levi9 is a great partner, that provides us with a motivated and dedicated technical team that maintains a high pace of delivery while retaining the flexibility our business demands. Across software development, quality assurance and technical operations teams, Levi9 helps us build the quality solutions our clients demand.”
Whitepaper Continuous Delivery Maturity Model �6