DevOps is a set of practices dedicated to building, delivering, and operating rapidly-evolving systems in close alignment with business objectives. Some key practices are prolific communication and collaboration among all participants in the software development life cycle (SDLC). DevOps focuses on creating an ongoing feedback loop of analyzing, building, and testing while leveraging automation to speed the entire software delivery process. To achieve this, you need to define a framework for your organization which are tools/technology agnostic and build governance around the framework
Here is my view on the DevOps
The collaborative software development style focuses on public availability and communication with beginnings in the open-source community.
- Enabler for Agile and DevOps
- Collaboration between stakeholders, developers, testers, and operations
- Visibility – features, releases, code, bugs
- Scalable/distributed workforce
- Promotes speed and Innovation
A modern version control system supports a distributed repository where each developer has a working copy of the system.
- Code centralized and secure
- Distributed working copies of the repository
- Faster operations – peer-to-peer
- Track content not files for more flexible reuse and collaboration
- Integrated with development and build tools – e.g. DevOps toolchain
- Transparent development activities
- Peer review
- Frequent release cycle with early feedback
Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Continuous testing (CT) is the process of executing automated tests as part of the software delivery pipeline.
- Automation of the lifecycle
- Shortens delivery cycle
- Integration problems are found early in the lifecycle
- Visibility to the lifecycle steps
- Promotes Collaboration, Agile, and DevOps