The cloud: come for the cost savings (that would be hardware, physical security, cooling, operations personnel) stay for the agility. Given a few minutes and a credit card, your team can spin up a new environment. But what cloud model best meets your application’s needs in terms of technology and price?
Typically applications are hosted on the public cloud in an Infrastructure as a Service (IaaS) or Platform as a Service (PaaS) model. For IaaS, providers like Amazon and Microsoft rent you cloud-scale infrastructure with core features including bare metal and virtual machines, host operating systems, networks, firewalls, security and load balancing.
In the case of PaaS, in addition to infrastructure the provider rents you the operating system, the runtime environment, databases, middleware and web servers. Unless you have a nonstandard database or complex security issues, there are good reasons to deploy your application using a PaaS model. Your cloud provider is responsible for applying database and OS patches, and your database is replicated across geographical regions, with failover in case of data center outages. There are a variety of cloud options — like private and hybrid cloud — that make it easier for organizations to benefit from cloud infrastructure, whether they are startups or established enterprises, or anything in between.
There are also benefits to building new applications in the cloud. You can provision databases and development environments quickly, and when you need to, you can scale up temporarily to stress test your application.
Right now, of course, the two big players are Amazon and Microsoft. As the first provider of IaaS, Amazon is bigger, currently at 62% of market share. At 20% of market share, Azure is trailing, but Microsoft is pushing hard to close that gap. And there are some other big name competitors on the field as well – we’ll cover them in a minute.
These vendors all offer a variety of cloud databases, including standard relational, columnar and NoSQL. And they are not restricted to their own proprietary offerings. For example, besides Azure SQL and Cosmos DB, Microsoft also offers MySQL and PostgreSQL in the cloud. Amazon offers Oracle, SQL Server, MySQL, PostgreSQL and MariaDB.
Both AWS and Azure provide SLAs that commit them to uptime over 99.9% of the time. Can they deliver on that? Pretty much, even given some newsworthy outages last year. On the bright side, at least for software companies, an outage is (for a change) somebody else’s problem. Of course, when AWS goes down, the internet goes down. But even in the case of an Azure outage, you won’t be alone. And since IaaS and PaaS are designed with multiple systems for failover, recovery is likely faster than for on premise failures.
Any company can probably do the same things on both platforms, so how do you decide whether to choose AWS or Azure?
Ease of use is one deciding factor. AWS is like the Costco of web hosting – you can see it in their list-heavy user interface. We’ve found that AWS users more often than not encounter some problems interacting with the UI. Even our own brilliant solutions architects have to contact support at times when using AWS.
Azure has a simpler user interface, with a tiled graphical layout and easily accessed charts and graphs. A novice to Azure will still need to read some supplementary material to get started, but users of Microsoft products will find the UI/UX familiar and easy to use (perhaps too easy, as this article explains.) Another plus for Azure: you can see your resources across deployments, while AWS requires you select a region to view each one.
Another factor is pricing. This is a competitive market; prices are volatile, although decreasing overall. Pricing has moved from by hour to per minute to per second. It helps to spend a few minutes with an online cloud pricing calculator to decide what works for you. Right now, AWS is slightly more expensive. Microsoft, which cultivates strong partnerships with ISVs to promote their products, incentivizes the move to Azure with significant discounts, like reduced rates for Visual Studio.
These platforms are designed for use by startups, but increasingly, organizations are moving their legacy applications to the cloud. Both Amazon and Microsoft offer support for this.
Microsoft’s “lift and shift” process is a path to rehosting legacy apps in the cloud without altering the underlying code and architecture. Once your application is rehosted on a VM, you can upgrade to additional cloud functionality like containers that will lower costs, increase availability and improve the deployment process. As Microsoft-heavy enterprises find success with “lift and shift” it will continue to narrow the gap between Azure and AWS adoption. A recent survey found that in the past year Azure adoption increased from 34 to 45 percent.
Amazon offers AWS Server Migration Service to rehost on premise servers to VMs, and Database Migration Service promises you can cheaply migrate databases to the cloud, although your only options for relational databases are Oracle and MySQL.
Most companies don’t just want to play catch-up when they move to the cloud, they want to exploit its strengths in other ways. There are some interesting opportunities here. Both Amazon (AWS Lambda) and Microsoft (Azure Functions) offer serverless computing, which doesn’t require provisioning a VM and which charges by execution time, not servers.
Another high-growth area, one that addresses current limitations with cloud computing, is edge computing. Gartner forecasts over 20 billion IoT devices will be in use by 2020, and there is no way to send all the data they generate to the cloud. Microsoft’s solution is Azure IoT Edge, which collects and pre-processes data flows from IoT devices. Amazon’s counterpart is AWS Greengrass. Both platforms allow you to perform machine learning on the data collected by edge devices.
Others in the space
The cloud computing we know today began twelve years ago when Amazon started selling their extra infrastructure as EC2. Microsoft followed in 2010 with Azure. Since then, other big tech vendors with infrastructure to spare have debuted their own IaaS/PaaS products. These include Google, IBM, Alibaba and Oracle.
Cloud computing is one place where Google is a small player. Although more Big Data-oriented, their PaaS offering, App Engine (Compute Engine is their IaaS) supports MySQL and PostgreSQL in addition to NoSQL databases like MongoDB and Cassandra, and Big Query, their proprietary data warehouse. Google is more expensive than both AWS and Azure, but the standard Google UI may make App Engine easier to use than other platforms. Google also offers a serverless computing option, Cloud Functions, currently in beta.
Surprisingly, for a company we associate with 1970’s mainframes, IBM is a growing cloud presence. IBM Cloud, which combines IaaS and PaaS, actually finished Q4 2017 ahead of all other cloud providers in revenue. Like Microsoft and Oracle, IBM may appeal most to enterprises with legacy investments in their stack.
Amazon’s Chinese counterpart, Alibaba, is also an IaaS and PaaS provider. Alibaba may eventually dominate the cloud in Asia (although they do have data centers in US and Europe.) However US- and Europe-based enterprises may shy away from because of security and compliance concerns.
Which leads us to Oracle, and the question of why this tech giant has gained little traction in cloud computing. Oracle wants to keep its customers in its stack and so has created a cloud platform that supports Oracle and MySQL (also an Oracle property), but not SQL Server or PostgreSQL. While many enterprises have deep investments in Oracle databases (see our blog post Can Amazon and Salesforce Really Ditch Oracle?), the company has stumbled in cloud computing. Compared with Satya Nadella’s pivot to support non Microsoft products like Linux, it is a cautionary lesson of how success in the cloud is one part innovation, and one part pragmatism.