Over the last few months I have been working with a client to help move them to Azure, and from that I have gotten my first immersion into Microsoft Azure. Azure is Microsoft’s Cloud platform, the future of the company as Windows becomes less and less profitable. My client’s project primarily consists of setting up a Virtual Machine (VM) out there, and essentially moving the whole environment out there. Thats the simpler approach, however IT is still on the hook for managing the VM, applying updates, etc. so its not the optimum long term plan. It also isn’t cheap – the monthly costs are not much less than buying the hardware yourself, but you do offload the headache of dealing with hardware.
The process of migrating to a VM, while still complicated, is no where near as complicated as using Azure’s Platform as a Service (PAAS) or Software as a Service (SAAS) offerings. As a side project, I have been working on a personal project to migrate some batch tasks I run every night on my home computer to run the process out at Azure. This will allow me to manage these jobs even when I am not home, and free up my home computer in the evening.
I am surprised that something as simple as this is amazingly hard to get started with. After attempting to find help in the Azure portal, I get nowhere, so I go out to Google and search for help. Lots of results here, all different, with many results for features that no longer exist with Azure. OK, so I limit my Google search to only articles posted within 90 days, and settle in using WebJobs. First, I guess I have to set up an App Service Plan, then I have to set up an App Service inside the App Service Plan, then I get to setting up WebJobsin that app service. I set up a webjob, but its still not clear how to hook a webjob up to any code.
So back out to Google, and I end up finding a WebJobs SDK, which is a Visual Studio Solution made up of 17 projects. Hopefully after understanding how this thing works, I will find out that WebJobs is the answer. I may find out this is for something else, and that Azure functions are the way to go. So many options, so many dependencies, and so many changes, I dont know how anybody can really understand the whole Azure world.
Here is a screenshot of all the services available:
This picture has the compute options expanded, but each of the other sections expand also. By my count, over 200 different services available, each with it’s own set of dependencies and concepts to understand. To use these, you pretty much have to think like the developer who wrote these. And it seems like each developer thinks about each service a little differently. I just don’t get a cohesive feeling about all this yet.
I am not an Azure hater, and I think it has all (and more) of the features I need, but the discoverability of it all is lacking in my opinion. Granted it is still an immature platform, and Amazon’s AWS has its share of oddities. But it is hard to know where to get started and how to do basic things. Perhaps that is by design, as the cloud displaces the need for IT staff, perhaps this is the plan to start a whole new industry of Azure consultants. Seems like it could be a booming business.
So I am sticking with it, and I hope to have some of my processing on Azure in the near future. If I can do that, and retain my sanity, I will feel like I have made a big leap to the cloud.