What is DevOps?
By Sam Guckenheimer
DevOps is the union of people, process, and products to enable continuous delivery of value to our end users. The contraction of “Dev” and “Ops” refers to replacing siloed Development and Operations to create multidisciplinary teams that now work together with shared and efficient practices and tools. Essential DevOps practices include agile planning, continuous integration, continuous delivery, and monitoring of applications.
Why implement DevOps?
DevOps enables teams to deliver more secure, higher quality solutions faster and cheaper. Customers expect a dynamic and reliable experience when consuming software and services. Teams must rapidly iterate on software updates, measure the impact of the updates, and respond quickly with new development iterations to address issues or provide more value. Cloud platforms such as Microsoft Azure have removed traditional bottlenecks and helped commoditize infrastructure. Software reigns in every business as the key differentiator and factor in business outcomes. No organization, developer or IT worker can or should avoid the DevOps movement.
How to implement DevOps?
Mature DevOps practitioners adopt several of the following practices. These practices involve people to form strategies based on the business scenarios. Tooling can help automate the various practices.
- Agile planning and project management techniques are used to plan and isolate work into sprints, manage team capacity, and help teams quickly adapt to changing business needs.
- Version control, usually with Git, enables teams located anywhere in the world to share source and integrate with software development tools to automate the release pipeline.
- Continuous Integration drives the ongoing merging and testing of code, which leads to finding defects early. Other benefits include less time wasted on fighting merge issues and rapid feedback for development teams.
- Continuous Delivery of software solutions to production and testing environments help organizations quickly fix bugs and respond to ever-changing business requirements.
- Monitoring of running applications including production environments for application health as well as customer usage help organizations form a hypothesis and quickly validate or disprove strategies. Rich data is captured and stored in various logging formats.
- Infrastructure as Code (IaC) is a practice which enables the automation and validation of creation and teardown of networks and virtual machines to help with delivering secure, stable application hosting platforms.
- Microservices architecture is leveraged to isolate business use cases into small reusable services. This architecture enables scalability and efficiency.
Read more about the DevOps capabilities of Visual Studio Team Services.