Application Development: DevOps and open source solutions
There’s been significant interest from partners about cloud application development, and we’ve decided to offer a practice-building community around the topic. Just as with the Azure Partner and Office 365 Partner communities, the new Application Development Partner community will include a monthly call, blog series, and Yammer group. Dedicating these assets to Application Development will let the Azure Partner community focus on infrastructure and management.
The first blog series for the Application Development Partner community is about DevOps. This post, about DevOps and open source solutions, is part 5 in the series.
- Part 1: Introduction to DevOps
- Part 2: Infrastructure as code
- Part 3: Continuous integration
- Part 4: Continuous delivery
- Watch the September 6 community call about DevOps on demand
Introduction
DevOps enables companies to achieve faster and higher quality software delivery and helps increase customer satisfaction. It focuses on building quality into the supply chain of customer value, and applies the lean/agile methodology into that supply chain, which includes developing, building, testing, deploying, and monitoring of software. DevOps is no longer just a trend – it’s a well-defined set of practices and organizational patterns that for many enterprises is providing a return on investment.
In this blog post, I’ll build on the DevOps information provided in the first four App Dev blog posts for this series (see the links above for Parts 1–4). There is a rich ecosystem of open source tooling and products that support the DevOps methodology. The Microsoft commitment to providing an open and extensible cloud platform extends to using popular open source DevOps tools, several of which I’ve described below and provided additional resources for.
DevOps tooling and services from Microsoft
Success with DevOps requires a change in an organization’s culture and processes. Visual Studio Team Services provides DevOps tooling and services that helps organizations achieve this, as you see in the image below.
Microsoft also supports popular open source application frameworks (e.g., node.js, Java, and Python), including SDKs and cross-platform tools and DevOps solutions like Chef, Puppet, Jenkins, and more, as seen in the image below.
Support for open source DevOps tools
Configuration management
To implement Configuration Management and automation, we need to express the infrastructure as code so that it can be managed with agile development practices: version control, automation, testing, and validation. Doing so makes infrastructure a flexible resource that accelerates delivery, increases deployment rate, and reduces mean time to remediation. At Microsoft, we define infrastructure as code through Azure Resource Management templates. Microsoft platforms also support open source solutions like Chef, Ansible, and Puppet.
Chef
Chef utilizes Ruby for writing system configuration "recipes” that describe your application/environment. Chef integrates with multiple cloud-based platforms to automatically provision and configure new machines.
- Learn more about Chef [Channel 9 video]
- Building modern cloud applications on Azure [Chef blog post]
- DevOps and the Cloud: Chef and Microsoft Azure [Chef white paper PDF]
Puppet
Puppet consists of a Ruby-based declarative language to describe system configuration. Puppet abstracts the configuration in high-level terms, such as users, services, and packages, removing the need to use OS-specific commands.
- How Puppet works [Puppet video]
- Managing Azure Virtual Machines with Puppet [Puppet blog]
- 2016 State of DevOps Report [Puppet website]
- State of DevOps with Puppet Labs [Channel 9 video]
Ansible
Ansible is platform for configuring and managing computers, providing multi-node software deployment, ad hoc task execution, and configuration management.
- Ansible on Red Hat on Microsoft Azure [Microsoft Developer blog]
Continuous integration
In the software development practice of Continuous Integration, each member of a development team integrates their code continuously with the rest of the team. A “check in” results in an integrated code base which automatically builds, conducts unit tests, and validates code. Microsoft Azure and Visual Studio Team Services support many open source continuous integration solutions.
Jenkins
Jenkins supports many popular source control systems such as TFS, CVS, Subversion, Git, Mercurial, and Clearcase. Jenkins executes Apache Ant and Apache Maven projects as well as shell scripts and PowerShell commands.
- Get started with Jenkins [Visual Studio documentation]
- Jenkins integration with Team Services [Visual Studio documentation]
Gradle
Gradle is a polyglot build automation system, integrating your build process with a flexible programming language.
- Visual Studio and Gradle [Visual Studio documentation]
Grunt
Grunt is an automation tool utilizing JavaScript, performing repetitive tasks like minification, compilation, unit testing, linting, etc.
- Visual Studio and Grunt [Visual Studio documentation]
Application Development Partner Community
- Watch the September 6 community call about DevOps on demand
- Sign up for community calls
- Join the Yammer group
- Application Development blog series
- Training and enablement
New! Open Source Solutions (OSS) Partner Community
- September 27 community call
- Sign up for monthly community calls
- Join the Yammer group
- OSS Partner blog series
- Training and enablement
Comments
- Anonymous
September 10, 2016
Good one, well explained. Thanks. - Anonymous
October 03, 2017
Thanks Tim! Excellent and Timely article.