In one of the many memorable scenes in the 1987 film The Princess Bride, the disguised hero, Westley (played by Cary Elwes) rescues the captured princess (Robin Wright) from the evil Vizzini (Wallace Shawn) by challenging Vizzini to a battle of wits involving a bottle of wine, two goblets, and the deadly poison iocane. Westley takes the goblets, administers the poison out of Vizzini’s sight, and challenges Vizzini to drink from one. Vizzini spends several minutes overintellectualizing to decide which one is poisoned, and even switches the goblets while Westley is distracted. Finally, he chooses one and they both drink. Vizinni gloats over his superior intellect until he keels over dead.
When the now-rescued princess asks Westley how he prevailed, he explains: “They were both poisoned. I’ve spent the last few years building an immunity to iocane powder.”
In a weird way, successful software development is a bit like that. Often you have to choose from two cups—Windows or Mac, iOS or Android, Xamarin or React Native, to cite some examples. It’s best that the development team (if not individual developers) are familiar with either technology choice, so as to provide their customers with the best possible solution.
AndPlus is no exception, which is why we’ve developed immunity—er, expertise—in many different technologies. One of the most recent pairs of cups we’ve dealt with is Amazon Web Services (AWS) and Microsoft Azure.
What Is Microsoft Azure?
Azure is Microsoft’s suite of cloud-based services. Like AWS, Azure provides compute, storage, and database services, in addition to specialized solutions for big-data search, machine learning, content delivery network (CDN), and internet of things (IoT), among others.
Unsurprisingly, Microsoft Azure plays well with other Microsoft products—Microsoft Windows Server, of course, but also products such as SQL Server, Active Directory, SharePoint, and System Center, not to mention the Visual Studio and .NET friendly developer tools. Experienced Windows Server system administrators and developers feel right at home with Azure. What may be surprising, however, is Azure’s extensive support for Linux; a customer can spin up a Linux virtual server with the same ease and speed as that of a Windows Server instance.
Azure vs. AWS
How do Microsoft Azure and AWS stack up against each other? For the most part, services available on one have equivalents on the other. Like AWS, Microsoft operates a global network of data centers, soon to include two in Africa (where AWS has no presence), and thus Azure can offer similar high-availability, CDN, and disaster recovery services. Therefore, from a service offering perspective, the two are quite similar.
The support offerings are similar as well, with multiple tiers of support and a variety of service level agreements (SLAs). Service reliability is also similar between the two—both have had outages of various kinds and durations in their history, but overall they both are extremely reliable.
So how do they differ?
- Cost: Like AWS, Azure offers a price structure that includes “pay only for what you use” (i.e., per-minute pricing), as well as all-inclusive subscriptions. And individually, each service is not terribly expensive. However, when you combine different services, as you must do, for instance, when setting up a web application with a database backend, backup services, a load balancer, and so on, they start to add up. Some analyses comparing the costs for similar applications on each service have found Microsoft Azure to be much more expensive than AWS, although it depends on what services you need and how much you need them.
- Performance: Some observers have found that Microsoft Azure’s performance (data-processing throughput, search, network speed, and other metrics) lags behind that of AWS and other competitors, such as Google and Rackspace.
- Ease of management: Because Azure is built on Windows Server, many of the server and virtualization administrative tasks can be performed with familiar GUI tools, rather than the command-line and scripting interfaces that AWS relies on. That said, some Azure tasks require the use of Power Shell scripting, which adds a layer of skills required to effectively administer virtual servers.
Choosing Your Poison
At AndPlus, we have had success deploying client projects with both AWS and Microsoft Azure. We have enough experience with each to tell which choice is best for a given project, accounting for service offerings, support, total cost, and performance. We can guide you to the right solution and the right cloud platform, too. Bring us your ideas and we’ll recommend the right cloud goblet. No immunity required.