15 DevOps Expert's Opinions on CI and CD
There are tons of software development organizations out there implementing DevOps. What do DevOps experts have to say about this growing methodology?
Join the DZone community and get the full member experience.Join For Free
I did some research in which I approached some DevOps experts and asked them what they think about Continuous Integration and Continuous Delivery. This might help a lot of organizations, whether they are already practicing or have yet to adopt CI and CD in their organization.
1. Chris Nwamba
Chris Nwamba is a self-described code beast who works with scotch.io. According to him, "Continuous integration is simply 'building big and shipping small.' The developer or engineer is not expected to produce a complete result; the project is divided into milestones and he or she can produce the expected output for each milestone which is reviewed and pushed. Continuous Delivery, on the other hand, involves delivering and deploying a tested and usable feature to the end user as soon as it is available from the engineer. No constraints such as milestones or daily reports are placed on the engineer; rather, the product is delivered when it is ready and tested within a reasonable amount of time."
2. David Bernstein
David Bernstein is the author of Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software. He says, "I've written a lot about CI and CD. It's one of the nine core practices in my new book. The first principle of the Agile Manifesto is, 'Our highest priority is to satisfy the customer through the early and continuous delivery of valuable software.' The practice of Continuous Delivery is the only way I know to achieve this principle and is at the very core of Agile software development."
3. Tomohiro Iizuka
Tomohiro Iizuka is a full stack web application developer. He says, "Continuous Integration and Delivery are still at the frontier of IT technology, like NoSQL. It will change the business style of freelance engineers. Businesses using cloud servers will especially change. However, there are some issues to solve in order to execute it. An IT system consists of some subsystems that affect how teams work together on development and management after the first release. If an engineer can provide a subsystem that's comprehensive to end-users, freelance engineers can have their own product and they can concentrate on maintaining their own product continuously. That will make use of cloud platform more popular, and they can have opportunities to gain profit continuously in addition to development fees. Open-source products like Eclipse, Firefox, Wordpress are some examples. However, in general, that is not done. I think that the platform for making independent software components is necessary for freelance engineers to make new businesses with Continuous Integration and Delivery."
4. Anubhava Srivastava
Anubhava Srivastava is a lead engineer-architect at AOL, Inc. According to him, some of the advantages of CI and CD are:
"DevOps and CI/CD give more power to developers. Developers have greater control over the application stack and require access to production servers. The exact same repeatable deployment process is used across different environments like dev, QA, staging, and production. Everything is automated right after code is checked in. There's fast and quick resolution time for emergencies. Due to code coverage reports being monitored and shared widely, developers are forced to write test cases for every line and every condition in the code. Due to stress on TDD, developers are producing higher quality applications with significantly fewer bugs. It has definitely helped the organization, as they don't need the same headcount for QA and Ops teams anymore."
5. Erik Dietrich
Erik Dietrich is the founder and principal of DaedTech, LLC. He says, "In short, both of those [CI and CD] are practices that I endorse and help people move towards. On the whole, I'm a huge fan of automating the automatable to avoid mistakes and save time."
6. Tom Zorde
Tom Zorde is an enterprise architect at Monadelphous. He says, "There is an inevitable need for CI, no doubt. But developers need to have autonomy to self-elect to skip a check in if they don't feel their code contribution is ready. This will reduce the wasted effort of dealing with failed integrations and keep developers focus in the zone."
7. Ian Robertson
Ian Robertson is a product owner at River Island. He says, "I work in retail (fast fashion). While we do build core ranges to meet the seasons, it is our quick response to rapidly changing trends that generates the excitement that drives our brand values. An emerging style cue seen on the catwalks one Friday can be in our stores and online by the following weekend. Those same customers expecting the latest fashion will be interacting on our app and website, so we need to be as Agile in development and deployment as we are in apparel design and production to keep up with customer expectations. It’s not just the front end; our supply chain, logistics, and merchandising systems need to be able to respond rapidly to real world changes. Adopting CI and CD allows us to reduce the time to market, reduce risk, deliver better customer experiences, and drive value for the business."
8. The Folks at Browser Up
Browser Up is a performance and load testing tool. The folks there say, "Using CI and CD is a force multiplier that amplifies the speed at which software can be developed and delivered. To be effective, a CI and CD pipeline must include a robust test suite that include continual performance and functional testing."
9. Georg von Sperling
Georg von Sperling is a practitioner, evangelist, and general geek on software development methodologies, technology, patterns, systems, delivery practices, and DevOps. He says, "CI and Continuous Deployment are very technical in nature and benefit the technical teams. They are crucial to address. They do not, however, define Continuous Delivery. CI could be defined as an early detection system at the code and build level. Early detection at those levels have been proven beneficial as these are types of bugs that are exponentially more costly to remediate at later stages. Continuous deployment is an ability to promote code technically down the pipe into production at velocity, allowing consumption faster. There are facets of Continuous Deployment that must be considered: rollback, A/B testing, and metrics gathering. Many fail here very quickly. Continuous Delivery (of which I am an avid advocate for) is a business subject; although, in software powered organizations and/or digital business models, it has a fairly large technical component. It is very difficult, if not impossible, to translate CI and Continuous Deployment into direct business benefits. Continuous Delivery, however, is business metrics-driven and defensible at the CxO level to stakeholders and shareholders."
10. Endi Sukaj
Endi Sukaj is a full stack developer who specializes in backend development. He's currently a community team member at Slant.co. He says, "CI is a crucial part in the development and deployment process of projects of a certain size especially if two or more people are working on it. The most valuable resource is time, and a good CI service and implementation helps developers in saving as much time as possible by avoiding 'integration hell' and by running all unit tests in the same environment as in production."
11. Jordi Mozcode
Jordi Mozcode is a software developer focused on .NET Core, MVC, TDD, SOLID, clean, software quality, best practices, secure coding, and pentesting. He says, "In my professional experience, the adoption of Continuous Integration and Continuous Delivery improves three basic facts: quality, flexibility, and speed. Quality because CI guarantees a much lower rate of development bugs and CD provides a robust and secure system throughout the development cycle. Flexibility because at every step of the development cycle you have the control of continue to next step or going backward easily. Speed because in an idyllic case with no development bugs the release can be deployed in production almost instantly."
12. Dave Kerr
Dave Kerr is a software developer for everything from device drivers to full enterprise applications. He says, "If the org is building tech services or products, CI and CD are critical. Deployment doesn't need to be continuous but the team needs to be confident that what they are building is shippable."
13. Matt Kurleto
Matt Kurelto is a serial entrepreneur and CEO at Neoteric. He says, "I think it's a necessity if you are thinking seriously about cloud services. I think that microservices architecture can only be well-leveraged with automated CI, CD, and QA flow, and for me, this setup is a must if you want to take advantage of lean business and agile project management."
14. Sean Handley
Sean Handley is the lead cloud applications engineer at . He says, "CI and CD are things we practice on our tech team. They allow us to ship production changes many times per day in confidence. My view is that any software team not using CI and CD needs to seriously reconsider their methods!"
15. Manisha Sahasrabudhe
Manisha Sahasrabudhe is the co-founder at CMO at Shippable. She says, "All companies are software companies today, and faster innovation is the key to winning against your competitors. Continuous Integration and Delivery are crucial in helping you accelerate your release cycles and innovate faster than anyone else. This will become especially important as microservices become ubiquitous and your application is composed of hundreds of services that need to be deployed, scaled, and monitored independently. CI and CD automation is the only way to bring some method to the madness."
Hope these opinions are enough to prove that CIand CD have a long way and bright future in the software development field.
Opinions expressed by DZone contributors are their own.
Constructing Real-Time Analytics: Fundamental Components and Architectural Framework — Part 2
Alpha Testing Tutorial: A Comprehensive Guide With Best Practices
Top Six React Development Tools
A React Frontend With Go/Gin/Gorm Backend in One Project