To gather insights for DZone's Continuous Delivery Research Guide, scheduled for release on January 26, 2016, we spoke to 24 executives who are implementing continuous delivery in their own company or helping clients do so.
Specifically we spoke to:
Casey Kindiger, CEO, Avik Partners | Ez Natarajan, Vice President Cloud, Beyondsoft | Tom Cabanski, Director of Software Development, Blinds.com | Kurt Collins, Director of Technology Evangleism and Partnerships, Built.io | Chris Madsen, CEO, Circonus | Steven Anderson, CEO, Clutch | Yaniv Yehuda, Co-Founder and CTO, DBmaestro | Andreas Grabner, Technology Strategist, Dynatrace | Elaina Shekhter, CMO, EPAM Systems | Charles Kendrick, CTO and Chief Architect, Isomorphic Software| Baruch Sadogursky, Developer Advocate, JFrog | Topher Marie, CTO, JumpCloud | Edith Harbaugh, CEO and Co-Founder, Launch Darkly | Jessica Rusin, Senior Director of Development, MobileDay | Stevan Arychuk, Strategic Marketing, New Relic | Arvind Mehrotra, President and Global Business Head, NIIT Technologies | Zeev Avidan, Vice President Product Management, OpenLegacy | Richard Dominguez, DevOps Engineer, Prep Sportswear | Prashanth Chandrasekar, General Manager of DevOps and Head of Operations, Rackspace | Steven Hazel, CTO, Sauce Labs | Bob Brodie, CTO, Sumo Heavy | Dr. Chenxi Wang, Chief Strategy Officer, Twistlock | Scott Ferguson, Vice President of Engineering, Vokal Interactive | Adam Serediuk, Director of Operations, xMatters
When we asked, "How do you define Continuous Delivery?" here's what they said:
We’re a mobile agency that does full stack development. DevOps engineers run the platform with new code and are constantly pushed to update the apps. The next question is "How to automate to make this more efficient, how do we push code to different environments 400 to 500 times per week to AWS, to Hockey, whatever, as soon as code is reviewed and approved?". We’ve scaled from 10 engineers to 50 and we run two-week scrum sprints, so our clients can see all the iterations.
We don’t use the term here but I’m familiar with it. It is the concept that code is being delivered every day versus every six months. You can push code to production on a whim. Facebook does this every two weeks. They don’t wait for traditional deployment times, they push when it’s done.
Rearchitecting the site. We brought in agile developers to scale horizontally as well as vertically.
Continuous Integration/Continuous Delivery (CI/CD) is a component of DevOps along with Agile, microservice architectures, containerization, automated release tools (e.g. Chef and Puppet), and cloud (e.g. AWS and Google).
CI and CD is a small way of deploying code microservices in a rapid-fire manner into production.
We use CD and CI interchangeably. A lot of people are working on different parts of the site. Now CD can push out branches of code, someone loads Bamboo tests and if it passes tests, the code deploys automatically.
We adjust and tune production while in motion. This reduces the work required to reach the end of the delivery pipeline. We also use Grok as an automation tool to accelerate in the product development process.
Clients use our product in production as needed to scale billions of metrics per second for a higher level view of a continuous delivery model. Other orchestration tools like Ansible, Chef, and Puppet automate us through the process. We will send alerts to Chef servers and spin up EC2 instances to meet load demands, then spin up another event to turn off EC2 instances and save money on excess capacity. The ultimate goal is for all apps and servers to lead to SLAs perfectly with no over engineering. A lot of tools are being built into Amazon. A lot of companies are using hybrid cloud.
We’re on the road to continuous delivery, but we’re not there yet. Right now we deploy every two weeks at the end of a sprint. More independently deployable components are necessary.
We expanded into continuous development so we could get a lot of small changes out to customers. We deploy multiple times per day. Need to ensure the system and the architecture can absorb the deployments. That’s what DevOps is all about.
Practice of pushing features to customers as quickly as possible. No monolith. Small grain chunks of value.
Methodology to create and release software continuously.
Irrespective of dependencies or third parties, the ability to bring incremental changes to products continuously on a frequency of a week or less.
The continuous delivery pipeline is what all software goes through, and it’s released when it’s ready.
Continuous integration, deployment, and delivery is critical because of the demands of the digital landscape which must serve different backends.
Everything is in motion versus 10 to 15 years ago when going to production was a nightmare. Now we have a methodology, attention, and discipline. The best definition is deployment to production as fast as possible. Deliver a lot of features and capabilities on the go – like A/B testing procedures.
Continuous delivery enables companies to continuously deliver, distribute, and deploy code without human intervention.
Continuously deploy development code after testing. Being mobile we can’t be fully automated since must send to Apple manually. Strive for automation testing to prevent bugs. Apple has a manual review guide not like a web API environment.
When a developer checks in, if all tests are passed, the resulting build is available to our customers - with all of this fully automated.
Releasing new features and enhancements rapidly and with great confidence. This might mean being able to roll-back to a sane state quickly, or it might mean releasing small updates that you can fix and roll-forward if a problem occurs. Either way, it’s heavily reliant on automation, both in testing and in deployment.
Automate as many processes as you can. Push the entire lifecycle from requirements and agile development to continuous integration. As long as all of the steps are checked, everything is tested for security and new features. It’s like a drive belt in a factory passing through stations while checking off the boxes.
How do you define Continuous Delivery? Any different than what we've covered above? Let us know!