Posted 3/22/2016 3:02:52 PM by LUBOS PAROBEK, Sauce Labs
The need to ship code faster continues to be priority for software development teams everywhere. In fact, a recent survey report shows 46 percent of developers and testing professionals say they want to deploy software even faster than they currently can.
DevOps has emerged as a modern approach in driving more frequent, higher quality releases. What makes DevOps different from traditional approaches to development is its focus on people first. It takes people to build a strong software development engine.
But only when teams are communicating deliberately can organizations embrace the modern practices of continuous integration, continuous delivery, and continuous deployment.
These processes and tools all share the component of taking code automatically upon a developer’s commit and moving it into an environment for testing, integration, staging, or production. Together, they are at the heart of what is called the DevOps practice.
Continuous Integration (CI) offers a valuable and necessary component for development teams to pave the way to DevOps.
For the sake of our purposes, CI above all is a process. It takes code and deploys it upon every commit to what is called an integration environment - a set of infrastructure where the entire application stack is running. It is a place where all automated unit and functional testing can be run that is non-production and has no impact on the user base.
The “Integration” portion of CI means that all components of the application come together in one location: a build. “Continuous” means that these builds happen both regularly and automatically. A build acts as the process of putting source code together and verifying that the software works as a cohesive unit.
Not only can CI fit into organizations with minimal disruption, it also offers immense value, by virtue of the fact that it does not pose threat to production. CI offers the safe environment and processes needed to test even unstable versions of an application as part of a larger unit.
After feature creation, CI is truly the most opportunistic element of software development. It empowers testing teams to go beyond the standard test suite of typical, common functionality, and grows their test cases to include very recent functionality, as well as exploratory testing.
This is a process of simultaneous testing, and test design, testing that evolves with the application, and results in expanded test coverage. It also gives the opportunity for developers to implement features they’ve always wanted, but have been afraid to try due to the risk of failure. Now developers can quickly try functionality against the entire stack without worrying about it slowing down releases, or creating issues that impact production.
The benefits to CI are huge: increased release volume, room for innovation, and positive impact on the development pipeline via enhanced software quality and efficiency. When you are able to test and ensure that all pieces of your software puzzle fit with each other, you can more realistically speed more quickly to a solid, cohesive and quality product.
In this way, CI serves as a natural, necessary step in developing a true DevOps practice. And it must be executed correctly before any other aspect of DevOps can be implemented.
Read More https://saucelabs.com/resources/white-papers/sauce...