# Tuesday, 09 June 2015

There is a myth that Microsoft Azure is only of use to people work primarily with Microsoft technologies. One can understand how this confusion occurs – the product has the word “Microsoft” in its name, after all. But this simply is not true.

Microsoft Azure is a cloud computing platform built by Microsoft. As you would expect, you can host in Azure Windows Virtual Machines, ASP.NET applications, back-end services written in C#. These are all Microsoft technologies, so it's not surprising that Microsoft Azure is built to handle them.

But what if you are not a Microsoft technologist? What if you work with Linux or write in Java or Python or PHP? What if you build applications that run on an iPhone, iPad or an Android device? Is Microsoft Azure relevant to you? are non-Microsoft operating systems, languages, and platforms supported on Microsoft Azure? You may be surprised that the answer is a definite "Yes".

Here is a list of some of the non-Microsoft technologies supported in Azure.

Virtual Machines

You can install any operating system or software you like onto an Azure Virtual Machine (provided you have the proper licensing, of course). There is a Gallery of images with pre-installed software that you can uses as a template for quickly creating a new Virtual Machine. Of course, you'd expect to find images with Microsoft Windows pre-installed (Fig 1).

NewVM-Microsoft
Fig 1

but you may be surprised to see a number of flavours of Linux (e.g., Ubuntu, Suse, and Oracle) represented in this gallery (Fig 2, 3).

NewVM-Ubuntu
Fig 2

NewVM-Ubuntu  
Fig 3

Web Apps

Web Apps (formerly known as "Azure Web Sites") are a simple way to build a web site or application on Azure. These applications typically run on Windows and on IIS, but IIS is a flexible web host capable of supporting many different languages and platforms. As a result, you can write your server-side code in Java, Python, PHP, or JavaScript (using node.js) and it will work on an Azure Web App. There are even pre-built templates in the Web App Gallery built on top of non-Microsoft technologies. With a few clicks, you can create a new site built on WordPress, Drupal, or Joomla (Fig 4, 5), even though these content management systems are built with PHP, Python, and MySQL.

NewWebAppGallery
Fig 4

NewWebAppGallery-2
Fig 5 

Web Apps also support automated deployment from a variety of source control systems. Click the Set up deployment from source control link on your web app's dashboard and select from GitHub, a local Git repository, BitBucket, or even Dropbox to configure automated deployments from your source control repository, as shown in Fig 6.

Deployment
Fig 6

Mobile Services

Azure Mobile Services provide a simple way to create a back-end data service for your mobile application. Reading and Writing capability to this data store is exposed via a REST interface, which is exposed through HTTP and JSON. Because HTTP and JSON are web standards, these services can be called by virtually any client. Mobile Services will even generate sample code to access a Mobile Service so you can use it as a starting point in your mobile application. Select the generated code for Windows (in C# or JavaScript); for iOS (in Objective-C or Swift); for Android (in Java); for a single-page application (in JavaScript); or for a Xamarin or PhoneGap application, as shown in Fig 7.

MobileServiceClients
Fig 7

Mobile Services also supports single-sign-on through a variety of Authentication Providers. Most of the work is done through configuration, meaning you don't need to write much code. Google, Facebook, and Twitter are among the authentication providers supported out of the box (Fig 8).

SingleSignOn
Fig 8

Cross-Platform Command-Line Tools

If you do a lot of work with Azure, you will find yourself wanting to automate some of tasks, such as creating and deploying virtual machines, configuring storage accounts, and setting security on services. For years, the best ways to do this were via a REST API or a set of Powershell commandlets that call those APIs. Now, a set of cross-platform command line tools allow you to write bash scripts on Mac or Linux to perform these same automation tasks.

Management Tools

Azure supports a number of management tools that are popular in the Linux world. Among these are Chef, Puppet, and Docker. VM Images and add-ins make it easier to use these tools.

Caching

A caching service was one of the first services built for Azure. But now that service has been deprecated in favor of the popular Open Source Redis Caching Service.
Marketplace

Azure supports a number of third-party offerings in the Azure Marketplace. Here, you can find tool, such as Mongo and Raven as a service; or data feeds, such as address or phone number verification services. Items listed in the Marketplace are offered by third party companies, so some are free; some cost money; and some offer a free version that you can upgrade to a paid version. This list is growing every month.

Finally…

Azure might or might not be the perfect solution for your application or data. But, if you are considering a cloud platform, do not exclude Azure simply because you aren't using any Microsoft technologies. Azure is flexible enough to support a wide range of technologies - even those that compete directly with Microsoft.