DevOps with Microsoft Azure
Last week, the mighty Zeus of the tech world hit the open source world with a lightning bolt. Yes, you guessed it right, I am talking about the GitHub acquisition by Microsoft. The deal, which is worth US$ 7.5 billion, saw Microsoft taking over the distributed version-control platform with more than 28 million active users and 57 million repositories. But why have I become an M&A enthusiast all sudden?
If you observe carefully, recent acquisitions by Microsoft are around container management (Deis), cloud monitoring, security, data protection, and release management. DevOps is usually associated with open source platforms and applications. Microsoft is working hard to change that perception and has been pushing itself as a viable option in the Continuous Delivery/Workflows space with its offerings of the Azure cloud platform and its Visual Studio Online products as Linux/Open source alternatives. Microsoft has also been making advances in the container space with the announcement of native support for Docker containers in addition to their own containerization option called Drawbridge. Competing with configuration management services like Puppet, Microsoft has its own configuration management solution SCCM.
The open sourcing of the .Net platform in 2014 has made it more accessible on other platforms, and there has been growth around open source tools built with .Net. Microsoft has also announced that the SQL server will now be available on Linux. The further growth and continuing expansion of Powershell capabilities mean that Windows admins now have a very powerful way of managing windows machines.
Why choose Microsoft Azure as your DevOps partner?
So, why should one go for Microsoft Azure? There are lots of alternatives available and while most of them are open source not all of them exhibit what Microsoft does.
- Microsoft ecosystem familiarity - Almost everyone has worked with the Windows domain, and the administrators are familiar with the Windows ecosystem. Microsoft is considered as a technology to create other technologies. This makes it easy to build, deploy, and ship products with Microsoft.
- Degree of flexibility - Lately, Microsoft Azure has been putting in lots of effort to provide support for traditional automation platforms and tools such as Chef, Puppet, Terraform, Ansible (for Windows and Linux distributors), Jenkins, Travis CI, Spinnaker, etc., which makes it easy to automate and manage containers and VMs.
- Security - Microsoft was the first Cloud vendor to be approved by the European Union’s data protection authorities and the Article 29 Working Party. Microsoft guarantees the best in terms of safety for all operations and data on the Azure Cloud. The same is supposed to be reflected in DevOps practices and tools.
Microsoft Azure DevOps Services
Microsoft has developed an integrated set of services and tools to speed up the development and delivery of software. These tools let you target and build apps for any platform, including Linux or Windows, iOS, Android, and Java. Some of these services include:
- Azure DevOps Projects specifically to build Azure applications using Azure services
- DevOps Tool Integration to integrate external/third-party DevOps tools of your choice
- Visual Studio App Centre for application lifecycle automation
- Application Insights for a 360-degree view of the application’s health
- Azure Lab Services and DevTest Labs to create dev-test environments using templates, trials, and testing.
But these are just the pawns in the DevOps game for Microsoft Azure. The real deal is Microsoft Azure’s Visual Studio Team Services (VSTS) and its tools which are expandable with integrations for other services and tools through service hooks with provided extensions. For example, you can use Spinnaker to start Azure Virtual Machine images with Packer for Continuous Integration or deploy to Virtual Machine scale sets for Continuous Deployment.
VSTS is available in two different forms: on-premises and online. The on-premise version is called Team Foundation Server (TFS) while the latter form is called Visual Studio Team Services (formerly Visual Studio Online), which is a cloud offering for more scalability. The cloud service is backed by Microsoft’s cloud platform, Microsoft Azure. It uses the same code as the on-premises version, with minor modifications, and implements the most recent features. Apart from this, there is no additional setup required. A user signs in using a Microsoft account to set up an environment, create projects and add team members. New features developed in short development cycles are added to the cloud version first. These features migrate to the on-premises version as updates at approximately three-month intervals.
I will be talking about VSTS, TFS, and tools from Microsoft Azure to support their claim to the DevOps throne in detail in my upcoming blogs. So, stay tuned!