I have been delving into AWS Cloud for the past few months and I have been personally comparing my experience in AWS with that of Azure, so I thought I would write about my opinion on why I would bet an Azure as my Cloud Provider.
So, just to set some context, this post is not about AWS versus Azure, as I think you could derive some strong conclusions by reading this article from Microsoft. Rather, my opinion to choose Azure is by taking into account the following constraints:
- Your organization runs fully on Microsoft Products. That is, the servers in your data center belong to the Windows Server family. Your workforce runs Windows 10 and Office 365, and if you were to ask your IT folks what kind of 'shop' they are, they would tell you without hesitation that they are a "Windows Shop".
- You or your company develops software products or you have developers that work on line of business applications that target web browsers or the Windows OS and they are developing solely on Visual Studio 2017, .NET (Classic 4.6+ or Core 2.1).
- Your customers main operating system is Windows, or they use your application(s) via one of the major browsers that are supported in Windows (Chrome, Edge, IE11, Firefox).
- Your organization has a partnership agreement, at any level, with Microsoft.
So essentially if you are in an environment that is using purely Microsoft technologies, then the case for choosing Azure becomes a compelling one. Thus, here are some of my reasons for choosing Azure.
If you are thinking of migrating your current data center load into the cloud, and you have a virtualized infrastructure, then Microsoft has a strategy with a step by step recipe for getting your Windows Server loads into the Azure Cloud through the use of the Azure Site Recovery service. Note that Azure Site Recovery's main objective is to offer a Disaster Recovery service in the Azure cloud, but because of how the service is designed, the nice side effect of using this service is that you can migrate on-prem workloads to the Azure Cloud. You can even migrate existing AWS workloads into the Azure Cloud using this same service, as this tutorial shows here. Granted, that your organization's needs may be unique and a more ellaborate solution may be warranted, nevertheless, the fact that Microsoft is leveraging PaaS to accomplish a migration and provide DR, should tell you that they are thinking strategically on how to make their customers lives easier when migrating to the Azure Cloud.
The VM migration documents mentioned above, are pretty much the standard you will see on most, if not all, of the Azure documentation. Do you need to find out more about Virtual Machine Scale Sets? Just read the documentation here which contains overviews, quick starts and tutorials. And the same goes for all of the services that Azure offers.
For the architects in your organization, that usually need more targeted documentation to validate their cloud native solutions, Azure provides a compelling set of resources in the Azure Architecture Center. In there you will find useful topics such as the Azure Architecture Application Guide, Azure Reference Architectures and Cloud Design Patterns. All of which are tremendously useful resources for your architects and senior engineers to get an idea of how their designs and implementations can be validated with known cloud patterns.
Open Source Code Samples
The developers in your organization may want to kick the tires with Azure and see what it's really like to code for Azure in the trenches. And while reading the documentation is a must, and super helpful to know how to utilize a specific Azure service, nothing beats taking Azure out on the track for an actual developer test drive. And for that Azure has their own public space in Azure GitHub. Your developers will find everything in there from tutorials code samples to actual implementation of Microsoft's open source security libraries such as MSAL and even the inner workings of the C# compiler among many others. In essence, there is plenty of examples on how to do things in Azure and that is a good thing if you are a developer just getting started in Azure.
CI/CD in a Box
I live and work in Portland-OR, which is known for its variety of excellent food cart options. One thing I really like about some of my favorite food carts, when I'm in a rush, is the ability to order the "lunch special" and get my food to go in under a minute. That is because the savvy food cart owners have prepared, before hand, a good meal that can be quickly packaged and delivered without much hassle. It is a win-win for both, the customer and the food cart owner, because the owners can sell more meals quickly, reliably and in a predictable amount of time and I get to eat my lunch faster. If this sounds like what you would want out of a CI/CD pipeline, that is, a reliable and predictable system for delivering software in the hands of your customers, then you should really take a good look at Visual Studio Team Services (VSTS). VSTS is, in my opinion, one of the best solutions out there for deploying software using a reliable and enterprise grade CI/CD pipeline. Not only that, but if you leverage VSTS' Release Management capabilities then you can create a state of the art CI/CD pipeline that automates the entire release flow to include gated approvals by stakeholders, out of the box (like a lunch special!).
In the last few years Microsoft has made the developer experience even more streamlined than ever before. With the release of Visual Studio 2017 and Visual Studio Code, the tooling has never been better and the integration with Azure is seamless and is being constantly improved. Offering unrivaled features such as Visual Studio Live Share, in which you can collaborate with other developers remotely from your IDE, with unmatched productivity is a superb winner.
In today's Cloud environment security is a default must have. And like the majority of organizations out there, yours is most likely running Active Directory for securing its users and assets. This is why Azure has services that are highly integrated with Active Directory such as Azure AD. Which extends your organization's security perimiter safely into the cloud without exposing your assets to security risks. But not only that, because once your organization's on-prem AD is integrated with Azure AD and you have an Office 365 account, you can start taking advantage of the Microsoft Graph. Which gives you a broad reach into applications that leverage Office, so you can integrate the power of Office 365 into your applications and offer more features for your customers such as onboarding external users and managing documents submitted to your application. What is more, Azure AD can be integrated with third party services such as Auth0 for maximum productivity gains and higher ROI on your organization's identity management initiatives.
Even though Microsoft has spent a lot of its resources in documentation, they also have another venue for the eager technologist, developers and even decision makers who want to dive into a specific training about a technology that they are using or want to use in Azure. For instances like this one, there is Microsoft Virtual Academy. This is a free resource from Microsoft that offers courses such as Migrating SQL Server Databases to Azure and many more.
So far I have reviewed many of the technical reasons why your organization should choose Azure as their Cloud provider. However, it is also interesting to see that if you are betting on a Cloud that is Enterprise Ready, then Azure might just be the ticket for you. As Bob Evans states in his article in Forbes: "And as the IaaS business continues to be waged on ever-declining prices and brute-force computing, the PaaS and SaaS layers of the cloud are all about enterprise software, and play very directly into Microsoft's 45-year history in that space." I believe he hits the nail in the head about the advantage of leveraging the Azure Cloud: Enterprise Integration using PaaS and Saas. And this is where Azure shines, because it smartly threads together the entire Microsoft Ecosystem of Windows, Office and Azure into a strategy to create a seamless Cloud Operating System that maximizes productivity while reducing friction amongst integrated components. If you are interested in more compelling business reasons why Azure is pushing ahead of the competition, then read the Forbes article above, and in it you will find many other links to related articles that will give you a better picture of why Azure is ahead of the competion.
Ultimately whatever Cloud you choose, it will be important for you to be able to back up your reasoning and present a compelling story. Perhaps you may have already latched on, however lightly, to a current Cloud provider but you may have not committed to it fully, and that is OK. It is the equivalent of going to a camper dealer and hitching your truck to a brand new wagon then taking it out for a test drive. At this point, you are still trying to see if you want to commit yourself to this specific wagon for years to come. But once you decide to fully fund your purchase, you hitch that wagon and take off on your journey...going back will be that much more difficult. And the last thing you want is to drive halfway to your destination and regret not buying the other wagon.
However, if you have done your due dilligence and have chosen a Cloud provider, by evaluating some if not more of the points I make here, then by all means commit your organization to that Cloud provider, gain deep expertise and make it successful.
Microsoft's mission is simple: "Our mission is to empower every person and every organization on the planet to achieve more." However, executing on that mission is a tall order for any organization and let alone one of the magnitude of Microsoft. However, this is where looking at the leadership of the Cloud provider makes sense, because you can look at their track record and see if it aligns with your organizational goals. With Satya Nadella at the helm, Microsoft's stock price has soared, which indicates that Microsoft's leadership is doing a number of things right. At the end of the day, Microsoft's strength in the Enterprise is being able to carefully connect the pieces of the technology puzzle in such a way that integration amongst its products becomes more seamless.
To the Cloud and Beyond, Always Forward
In any case, if the constraints I outlined at the beginning of this article hold true for your organization, then I would suggest you take a closer look on the Azure Cloud when making your decisions. For I am confident that hitching your wagon to a powerful IaaS, SaaS and PaaS Cloud provider with an eye for Enterprise Integration is a good bet on your journey into the Cloud.