First off, let’s begin by pointing out that it’s impossible to get a true apples-to-apples comparison between cloud service providers. There is usually a huge array of products on offer and some may be more useful than others–in fact, sometimes the absence of features makes a provider more usable for small devs than a sprawling competitor. Next, comparing the performance of virtual instances is difficult because it is almost impossible to get perfectly identical instances on any two providers. Your configuration choices will ultimately play a larger role in the performance, stability, and security of your infrastructure than the vendor providing them. Moreover, throughput and performance are also affected by how physically close you are to the cloud vendor’s nearest data center; in fact research shows that “cloud-based applications will run as much as 20% more efficiently when data is located close by.” That said, there is still useful information to be gleaned by comparing different cloud providers; today we look at Microsoft’s Azure and DigitalOcean.
Launched in 2011, DigitalOcean could only be considered a newish contender compared to a company as venerable as Microsoft– it's practically ancient by web standards. The company differentiates its offering by catering to the infrastructure needs of today's developers. While DigitalOcean is known for it's Linux instances, called droplets, it has expanded in the same directions as the development community. In addition to Linux staples like FreeBSD, Ubuntu, CentOS, and Debian, the platform also offers instances of CoreOS and Docker, along with common development tools like MongoDB, Redis, and Rails. The company currently has 13 data centers located in Amsterdam, London, Bangalore, Frankfurt, Toronto, New York, San Francisco and Singapore. It has received significant media coverage following pop star Beyonce’s decision to host her album on their servers in 2013.
Azure is a Microsoft product, so of course it has excellent integration with other Windows and other Microsoft products like Active Directory, SQL Server, .NET and others. But Azure also offers an impressive array of non-Microsoft platforms such as Linux instances, Hadoop databases, Git, and Mercurial.
Amazon’s AWS and Microsoft’s Azure are the big boys of the cloud computing world, even though AWS is much bigger than Azure. How much bigger?
Before DigitalOcean built out their additional platform services, they made a splash with two things: their 55 second spin up time and their legendary pricing. They offer staggeringly low prices, even amid the pricing war between between Amazon, Microsoft, and Google. The prices are very affordable even for small developers. And they don’t sneak in hidden charges for add-ons like more traffic and fixed IP addresses. Pricing starts at $0.007/hour or $5/month and the DigitalOcean website provides a refreshingly straightforward pricing structure, complete with a nifty slider for conversion between hourly and monthly pricing. Their most popular droplet (1GB memory, 1 core processor, 30GB SSD disk, 2TB transfer) costs $0.015/hour or $10/month. A high-end server instance (8GB memory, 4 cores, 80GB SSD disk) will cost $80/month.
Azure’s pricing is also competitive, thanks to the aforementioned price war. An Azure A0 Linux instance (0.75GB, 1 core, 20GB non-SSD disk) costs $0.02/hour or about $15/month, and a high-end D2 instance (7GB RAM, 2 cores, 100GB SSD disk) will run to $0.188/hour or $140/month. DigitalOcean can offer some significant price savings, especially for higher-end instances.
In the recent past, DigitalOcean merely offered an IaaS environment for Linux servers, but times have changed.Aftering winning the hearts of developers, DigitalOcean is now seeking to become a bigger player by offering the kinds of features that growing technology companies have at the top of their wish list. Clustering, scalability, networking, and monitoring are among the additional features of today's DigitalOcean. In addition to deepening their product to support more than the side projects of their legion of users, DigitalOcean has also continued to develop the convenience-through-technology features that built their reputation:
- One-click setup for various integrated applications such as Docker, Django, Cassandra, LAMP, Node.js, and Ghost.
- A control panel to manage features like two-factor authentication, a good API, auto-backups and DNS management
- SSD-only disks in all instances. This is a major selling point and helps boost performance
- A 55-second provisioning limit for a new instance. Other cloud vendors do it in about 1-3 minutes
Azure on the other hand, is a full-featured cloud offering. In addition to Linux support, Azure also offers excellent integration with other Microsoft products. For example SQL Server 2012 and 2014 have the ability for you to deploy, save and backup your database directly to an Azure instance. It also boasts the large array of IaaS and PaaS features such as:
- Compute & Networking: VPN, dedicated Azure connectivity on fiber, traffic manager/ load balancing
- Data & Analytics: SQL database, Hadoop, cloud-based predictive analytics, a NoSQL database called DocumentDB
- Full cloud storage and backup
- Cloud-premises integration using BizTalk and Service Bus
- Active Directory integration
- SSD disk options for instances (which of course cost more)
We've tried to cover the most relevant differences, but given the range of features in both there is no generally "better" solutoin. Be sure to also read our cloud service provider roundup to get comparisons between other leading cloud service providers.
Performance of cloud vendors is done using a standard testsuite such as UnixBench to measure aspects like the CPU throughput, memory, disk performance and variability. This last one, variability, refers to the level of difference in performance of the same instance over a given sample period. It is important because high variability implies that the cloud vendor’s environment is highly, well, variable. This often results in annoying peaks and dips in observed performance of your cloud-based instance. Azure generally has a variability score of close to 0%, and DigitialOcean about 4-12%.
Azure performance is generally outstanding. With Unixbench scores usually in ranging from 1300-1500, it is consistently rated by independent testers as the best among the large cloud providers. DigitalOcean also boasts very good scores ranging between 800-1500 for various configurations, although with a higher variability rate. And the ultra-fast SSD disks of DigitalOcean instances are of course playing a significant role in achieving these high scores.
DigitalOcean isn’t really a true competitor to Azure. Even AWS offers Windows instances; DigitalOcean does not. At one end of the market the big three duke it out to be the Wal-Mart of cloud providers while DigitalOcean carries a smaller selection of goods selected to match the needs of developers using emergent technology that are stilling gaining momentum. Azure on the other hand is a broad offering catering to a wide array of cloud-based needs. With a slick shop-cart experience for selecting add-ons, including an Amazon-like "also purchase with" bar, Azure is geared to make sure you get everything you need, even if you didn't think about buying it yet.
If you are looking for an affordable Linux server with support only for a few well-known tools, then DigitalOcean may be a good fit. But if you are hosting your apps or environment on Windows, Unix or MacOS then it’s out of contention. Azure can give you excellent integration with Windows and other environments, and it also offers a plethora of many other tools and services to enhance your cloud hosting experience. Just be aware that it will probably cost you a bit more than DigitalOcean.
MySQL vs. MongoDB
MySQL and MongoDB represent two sides of an argument that has been raging recently concerning data storage – the tried and tested relational database vs. non-relational or NoSQL database.
Read Article >
So, Puppet or Chef? They both have evolved significantly since we covered them last—suffice to say, we’re long overdue in revisiting these two heavy-hitters.
Read Article >
Python and Ruby are two of the best examples of the new generation of high-level languages which focus on simplicity and giving the programmer the ability to get things done fast, rather than syntax correctness and strict hierarchy.
Read Article >