Overview#DevOps is a software management culture and practice that aims at unifying Development Team (Dev) and software Operations Team (Ops)
- Continuous Development
- Continuous testing
- Continuous Delivery
- Continuous integration
- Infrastructure As Code (IAC)
DevOps aims at establishing a culture and environment where:
- shorter development cycles (Sprints)
- increased deployment frequency (Velocity)
- more dependable releases
- close alignment with Business value
DevOps toolchain#DevOps is a cultural shift and collaboration between development, operations and testing, there is no single DevOps tool, rather a set or “DevOps toolchain” consisting of multiple tools.
- Code – Continuous Development and review, version control tools, code merging
- Build – Continuous integration tools, build status
- Test – Continuous testing and results determine performance
- Package – Artifact repository, application pre-deployment staging (Containerization)
- Release – Change management, release approvals, Continuous Delivery
- Configure – Infrastructure configuration and management, Infrastructure as Code tools (Container Orchestration)
- Metric Analysis - Application Monitoring and User Experience monitoring
DevOps and Responsive Organizations#Responsive Organizations employ Agile techniques and use Continuous Improvement/Continuous Development tools to meld application development, testing, refreshes and quality assurance into an integrated framework
Most of those Responsive Organizations also have simultaneously discovered the power of Containerization methods such as Docker. A Docker container consists of a complete file system that contains everything, including the code, runtime, system tools and system libraries, which an application needs to run.
These capabilities not only makes it easier to package application code to make it more portable, but it also enables Information Technology organizations to adopt a microservices approach to Information Technology that makes applications more robust and flexible.