Overview#DevOps is a term used to refer to a set of practices that emphasizes the collaboration and communication of both software developers and other Information Technology (IT) professionals while automating the process of software delivery and infrastructure changes.
DevOps aims at establishing a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably.
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 – Code development and review, version control tools, code merging
- Build – Continuous integration tools, build status
- Test – Test and results determine performance
- Package – Artifact repository, application pre-deployment staging
- Release – Change management, release approvals, release automation
- Configure – Infrastructure configuration and management, Infrastructure as Code tools
- Metric Analysis - Application Monitoring and end 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.