Continuous delivery is groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers, and operations, delivery teams can get changes released in a matter of hours— sometimes even minutes–no matter what the size of a project or the complexity of its code base.
Jez Humble and David Farley begin by presenting the foundations of a rapid, reliable, low-risk delivery process. Next, they introduce the “deployment pipeline,” an automated process for managing all changes, from check-in to release. Finally, they discuss the “ecosystem” needed to support continuous delivery, from infrastructure, data and configuration management to governance.
The authors introduce state-of-the-art techniques, including automated infrastructure management and data migration, and the use of virtualization. For each, they review key issues, identify best practices, and demonstrate how to mitigate risks. Coverage includes
• Automating all facets of building, integrating, testing, and deploying software
• Implementing deployment pipelines at team and organizational levels
• Improving collaboration between developers, testers, and operations
• Developing features incrementally on large and distributed teams
• Implementing an effective configuration management strategy
• Automating acceptance testing, from analysis to implementation
• Testing capacity and other non-functional requirements
• Implementing continuous deployment and zero-downtime releases
• Managing infrastructure, data, components and dependencies
• Navigating risk management, compliance, and auditing
Whether you’re a developer, systems administrator, tester, or manager, this book will help your organization move from idea to release faster than ever—so you can deliver value to your business rapidly and reliably.
ThoughtWorks Continuous Delivery
A new perspective – the release process as a business advantage.
Release software on-demand, not on Red Alert.
ThoughtWorks Continuous Delivery transforms manual, disconnected and error-prone processes to make enterprise software releases so fast and assured they are a non-event rather than a Big Event; so well-controlled and automated that release timing can be placed in the hands of business stakeholders. ThoughtWorks Continuous Delivery is a new vision of how systems should be delivered into production: making delivery so responsive, fast and reliable that the deployment pipeline becomes a competitive advantage for the business.
It optimizes at all deployment pipeline elements – code integration, environment configuration, testing, performance analysis, security vetting, compliance checks, staging, and final release – in an integrated manner, so that all fixes and features can make their way from development to release in a near-continuous flow. At any point, you have an accurate view of the deployment pipeline: what’s tested, approved and ready to go; and what’s at any other stage. Releasing what’s ready to go is as straightforward and automated as pressing a button.
Operational, cost and reliability improvements within IT…
- Faster, safer delivery – removal of waste, risk and bottlenecks. Releases are reliable, routine “non-events”.
- Increased automation – speed the whole process while improving quality.
- Exceptional visibility – at all times you know where each individual feature is in the pipeline, and its status.
- Improved compliance – support for standard frameworks such as ITIL.
- Collaboration – Test, support, development, operations work with each other as one delivery team.
…Bring new strategic capabilities to the business:
- Release on demand – The ability to push releases to customers on demand places you first to market when new opportunities arise. Make competitors react to your moves.
- Build the right thing – Explore new ideas and market test them quickly with much less effort and cost.
- Continuous connection to customers – Faster releases show your customers you hear them.
Thoughtworks have the expertise and experience within the enterprise to help you make the journey.
Assessments start with your goals and current situation. Through a series of highly collaborative workshops and deep-dives we evaluate your needs, identify gaps and determine the best course of action. The outcome is a roadmap of immediately actionable recommendations. Assessments are conducted onsite and take 1-3 weeks.
Implementations focus on executing a roadmap of technical, process and organizational changes needed. it work side-by-side with you, providing both technical and coaching expertise, evolving you toward integrated Continuous Delivery practices.
its services are customized to your specific needs, but typically include:
- Automating code, database and configuration deployment to make a reliable, rapid process. Use the same deployment mechanism for all environments.
- Introducing Continuous Integration to support early testing and feedback on development.
- Transforming development and operations teams into one delivery team, giving operations a seat at the table throughout the process to ensure operational needs are met.
- Automating infrastructure and configuration management, along with use of cloud/virtualization to reduce the pain and cost of managing environments, keeping them in consistent and desired states.
- Building a metrics dashboard and alerts to give automated feedback on the production readiness of your applications every time there is a change – to code, infrastructure, configuration or database.
Continuous Delivery by ThoughtWorker Jez Humble and alumnus Dave Farley sets out the principles and practices that enable rapid, incremental delivery of high quality, valuable new functionality.
The pattern that is central to the continuous delivery is deployment pipeline. Deployment pipeline is automated implementation of applications build, deploy, test, and release process. Automated deployment process shall be used by everybody and it should be the only way to deploy software. This ensures the deploy scripts works when needed. Same scripts shall be used in every environment