There is a common misconception that DevOps relies on the use of Open Source software and tools, and that to be successful in implementing DevOps practices you need to know to use those tools. The truth is Microsoft provide a number services for building successful DevOps practices, enabling IT departments to utilise their existing skills sets and get applications into production faster. So let’s take a look at some of those tools.
Azure is Microsoft’s public cloud computing platform. It’s a set of services and tools that development and operations teams can use to quickly and easily build and manage applications and infrastructure. If a developer needs a Virtual Machine or an application environment to code or test in, it can be up and running within minutes. Infrastructure-as-code can be easily implemented using Azure Resource Manager templates, and Microsoft provide a raft of these on GitHub to get you started – https://github.com/Azure/azure-quickstart-templates. Azure supports a range of operating systems, programming languages, and frameworks, and provides advanced services for container management and serverless computing.
Azure Container Service
Containers are a key part of the DevOps tools set, enabling you to distribute your applications into a microservices architecture and providing the portability that ensures the applications will run in different environments. Azure Container Service provides a fully managed container orchestration service using Kubernetes. Azure takes care of hosting the platform, automatic upgrades, and scaling so you can get the benefits of using Kubernetes without the operational overhead and complexity of managing the platform. In addition you can manage container registries using Azure Container Registry, which allows you to manage a single registry replicated across multiple regions.
.NET and Visual Studio Code
.NET is a developer platform that provides the framework for building Web, Mobile and Desktop applications. It’s cross-platform (Windows, Linux and macOS), open source and supports multiple programming languages.
Visual Studio Team Services
Visual Studio Team Services (VSTS) is a cloud service for sharing code, tracking work and releasing software in any language – all in a single end-to-end package. It provides free and unlimited private Git repositories for version control of your code; the ability to build CI/CD Pipelines and automate the build, test and deployment of code; and a plethora of Agile tools to support planning, track work, and share progress via dashboards.
PowerShell Desired State Configuration
DSC is a configuration management platform in PowerShell for managing your IT Infrastructure. DSC Configurations are easy to read documents that detail a server(s) configuration in code. That configuration can range from enabling a specific service to a full security hardening of the server. Once deployed, DSC will monitor the configuration, if it finds anything out of compliance it will raise an alert and/or automate a corrective procedure to bring the server back into compliance.
Azure Log Analytics and Application Insights
To build high performance DevOps practices it’s vital that you monitor at every stage of build, testing and deployment, right the way through to production. Azure Log Analytics collects and correlates data from multiple sources using machine learning methodologies, giving you actionable insights into infrastructure and application performance. Azure Application Insights is an Application Performance Management (APM) services providing rich and detailed performance monitoring information for your application. You can create alerts and dashboards to quickly detect problems, perform root cause analysis and ultimately improve Mean Team to Resolution (MTTR).
If you’re already using your own tools, you can incorporate those as well. There are integrations with GitHub, Jenkins, Chef and a whole raft of other DevOps tools. Microsoft have embraced the DevOps culture and tool set and now they’ve made it easier than ever to build your own successful DevOps practice.