DevOps technology overview
Automate software delivery to provide continuous value to users
The promise of DevOps
DevOps automates and speeds software delivery. It makes your process and your products more reliable. When you implement DevOps technologies and practice, you’ll provide value to your customers faster—in the form of new and innovative products, or enhancements to existing ones.
What is the definition of DevOps?
DevOps is a practice that unifies people, process, and technology across development and IT in five core practices: planning and tracking, development, build and test, delivery, and monitoring and operations. When practicing DevOps, development, IT operations, quality engineering, and security teams work closely together—breaking down practices that were once siloed. Improved coordination and collaboration across these disciplines reduces the time between when a change is committed to a system and when the change being placed into production. And, it ensures that standards for security and reliability are met as part of the process. The result: better products, delivered faster, to happier customers.
So how do I practice a DevOps model?
Cross-discipline teams follow these phases of DevOps through their delivery pipeline to get products to market quickly.
Plan and track
Identify and track work using practices and processes like Kanban boards and agile. When work is tracked visually, stakeholders have clear insight into the development team’s capacity and can better plan and prioritize tasks—and avoid fire drills.
Write code using modern version control systems like Git to integrate continuously and safely to the master branch. When a feature is complete, the developer submits a pull request and once approved, changes are merged to master and the old branch is deleted.
Build and test
Checking in code to Git or another version control system kicks off an automated build process. The code is tested and validated, ensuring that bugs are caught early in development—when they’re fresh in the developer’s mind and less costly to fix. This process of automating build and test is called continuous integration (CI). A production-deployable artifact is the result of successful build and integration, enabling continuous delivery (CD)—the ability to deploy to production at any time.
Once tested and validated, each change is deployable to the production environment. Using continuous delivery practices, final deployment to production is a manually controlled business decision.
With continuous deployment, the entire process from code commit to production is automated. When your code is automatically deployed, your customers get access to new features as soon as they’re ready.
Monitor and operate
Once live in production, monitoring delivers information about your app’s performance and usage patterns. Achieve high availability by getting immediate, rich diagnostic data that your team can act on quickly. Mitigate issues for users and gather data to make informed business decisions about future development. And, with automated compliance policies using infrastructure as code and policy as code, you’ll ensure that the apps you deploy to production use desired-state configurations that align to security best practices.Learn more
Start doing DevOps with Azure
Azure offers an end-to-end, automated solution for DevOps that includes integrated security and monitoring. Take a simple path to developing and operating your apps in the cloud. The developer experience of Azure DevOps integrates with the tools of your choice. If you’re a Java developer—great—Azure provides native integrations with Eclipse. If you build with Jenkins, use it to easily deploy directly to Azure. Bring your development, IT operations, and quality engineering teams together to build, test, deploy, monitor and manage applications in the cloud. For apps and workloads with latency, regulatory, or other custom requirements, Azure, combined with Azure Stack, provides a consistent hybrid DevOps experience. Use your skills, processes, and tools in the environment in which your app needs to run.
Deliver continuous innovation
Simplify and speed cloud development
Spend less time building delivery pipelines and more time developing software. Use an end-to-end DevOps solution to develop and operate apps in the cloud—whether you’re enhancing an existing delivery pipeline or starting from scratch. Use Node.js or .NET, Azure DevOps, or Jenkins. Azure is the simplest way to develop and operate applications in the cloud.
Increase reliability and repeatability
Spend less time managing infrastructure and security and more time developing innovative solutions. With Azure, you’ll deploy continuously with integrated, enterprise-grade security and monitoring. Take advantage of infrastructure as code tools like Azure Resource manager or Terraform—to create repeatable, reliable deployments than meet compliance standards.
Develop and deploy your way
Use the tools you want. An open, end-to-end DevOps process accommodates any toolchain, including open source tools, across your entire workflow. Use Ansible, Docker, Kubernetes—or any other tools you love—with Azure.
Customers are doing great things with DevOps and Azure
Explore Azure for DevOps
Continue using the open source and third-party tools you love, within your pipeline. Or, take advantage of Azure DevOps to orchestrate and supplement your end-to-end DevOps toolchain.
Simplify the development experience through the native integrations of Azure with Visual Studio and Visual Studio Code. If you’re a Java developer, take advantage of rich Azure experiences in third-party IDEs like Eclipse and IntelliJ using the Azure Toolkit.
Build and test
Ship on time with high quality by using DevTest Labs to set up and manage your test environments. Build, test, and ship iOS, macOS, Android, and Windows apps faster and more confidently by automating their lifecycles with the Visual Studio App Center. Test on thousands of real devices, distribute to beta testers and app stores, and monitor usage with crash and analytics data.
Infrastructure as code captures environment definitions as declarative code, such as JSON or YAML, for automated provisioning and configuration. Use Azure Resource Manager or Terraform to reliably provision duplicate environments. Azure Automation and tools such as Ansible, Chef, or Puppet offer automation and configuration management.
Automate testing and delivery of your software in multiple environments, all the way to production with approval gates—with Azure DevOps Release Management. You can also deploy directly from your Jenkins pipelines to Virtual Machines, Web Apps, or Azure Container Service.
Monitor and operate
Monitor infrastructure health and integrate into existing dashboards in Grafana, Kibana, or the Azure portal with Azure Monitor. Quickly connect, collect, and transform log data from multiple locations into insights and action with Log Analytics. Diagnose issues and optimize your application with Application Insights.
Ensure that your provisioned infrastructure and applications are in compliance with Azure Policy or Chef Automate. Used in combination with Security Center, you’ll limit threat exposure and find and remediate vulnerabilities quickly.
Get consistent DevOps across hybrid cloud
Azure Stack is an extension of Azure, bringing cloud capabilities to on-premises environments. Deliver Azure services from your datacenter while balancing flexibility and control—for truly-consistent hybrid cloud deployments.
Use Team Foundation Server to get the same full suite of DevOps services and capabilities as Team Services—but with the ability to run these on-premise.
Get started with DevOps on your own terms
It’s simple to get started implementing your DevOps solution in Azure. Automatically integrate your pipeline, deploy to any platform, and start monitoring with Azure DevOps Projects.
If you’re using open source and third-party tools, try Azure DevOps solutions. Explore proven practices and solution architecture for implementing your DevOps solutions in Azure.