A compound of development (Dev) and operations (Ops), DevOps is the union of people, process, and technology to continually provide value to customers. That increase the efficiency, speed, and security of software development and delivery compared to traditional processes. A more nimble software development lifecycle results in a competitive advantage for businesses and their customers.
DevOps is an evolving philosophy and framework that encourages faster, better application development and faster release of new or revised software features or products to customers. The practice of DevOps encourages smoother, continuous communication, collaboration, integration, visibility, and transparency between application development teams (Dev) and their IT operations team (Ops) counterparts.
DevOps encourages faster, better, more secure delivery of business value to an organization’s end customers. This value might take the form of more frequent product releases, features, or updates. It can involve how quickly a product release or new feature gets into customers’ hands all with the proper levels of quality and security. Or, it might focus on how quickly an issue or bug is identified, and then resolved and re-released.
Process:
Continuous development: This process spans the planning and coding phases of the DevOps lifecycle. Version-control mechanisms might be involved.
• Continuous testing: This process incorporates automated, prescheduled, continued code tests as application code is being written or updated. Such tests can speed the delivery of code to production.
• Continuous integration (CI): This process brings configuration management (CM) tools together with other test and development tools to track how much of the code being developed is ready for production. It involves rapid feedback between testing and development to quickly identify and resolve code issues.
• Continuous delivery: This process automates the delivery of code changes, after testing, to a preproduction or staging environment. An staff member might then decide to promote such code changes into production.
• Continuous deployment (CD): Similar to continuous delivery, this practice automates the release of new or changed code into production. A company doing continuous deployment might release code or feature changes several times per day. The use of container technologies, such as Docker and Kubernetes, can enable continuous deployment by helping to maintain consistency of the code across different deployment platforms and environments.
• Continuous monitoring: This process involves ongoing monitoring of both the code in operation and the underlying infrastructure that supports it. A feedback loop that reports on bugs or issues then makes its way back to development.
• Infrastructure as code: This process can be used during various DevOps phases to automate the provisioning of infrastructure required for a software release. Developers add infrastructure code from within their existing development tools.
Benefits :
- Faster, better product delivery
- Faster issue resolution and reduced complexity
- Greater scalability and availability
- More stable operating environments
- Better resource utilization
- Greater automation
- Greater visibility into system outcomes
- Greater innovation