I continue to be both amazed and confused by the Cloud Market. On the one hand there is a good selection of vendors and features available. On the other, a few big players, notably Amazon, Microsoft and Google, seem to hoover up all the business. Having used AWS in a commercial environment on a number of occasions, I thought I’d run through a quick comparison of features and options as compared to what I perceive to be one of the slightly smaller players, Digital Ocean. Some of the explanations I’ve heard in the past include;
- The web interface provided by the big guys is better and easier to use …
I think this might be a difficult case to make as the Digital Ocean user interface is probably the most modern, cleanest, and easiest to use User Interface I’ve seen for any online application. Some other user interfaces might be more expansive, and need to be in order to cope with the huge feature-set. Lots of options, however, doesn’t necessarily equate to ‘better’.
- The big guys are more reliable and suffer fewer faults …
Well I guess this is a little subjective and personal experiences may vary. I know all of my cloud infrastructure runs on Digital Ocean and I’ve not seen any outages in the last few years (as far as my services are concerned). By the same token, I’m aware that the larger players do suffer very large outages on occasion, so the resilience of one’s application might actually be more relevant than how reliable one’s cloud provider is. - The big guys offer more features …
Ok, I do have to agree with this one, AWS in particular has a feature-set that seems to be ever-expanding and almost never-ending. That said, how many of those features fall into the category of ‘must have’ verses ‘will never use’? Only a few years ago DO was focused primarily on Virtual Machines (or ‘droplets’ as they call them) and they simply didn’t have the range provided by some of the larger players. Today however it’s a very different story.
Their Databases feature gives you access to managed databases, much like the database services you might find elsewhere. The Spaces service provides cheap S3 type storage which for the most part seems to be compatible with S3 services which means you can make use of pre-existing S3 tools and libraries. There’s a relatively new managed Kubernetes service, much like the ones provided elsewhere which means you can deploy your own highly scale-able Kubernetes clusters.
And to cap it off there’s even a new application “Apps” facility which runs along the same sort of lines as GCP Serverless or AWS lambda. So although I’d say technically, yes the big guys offer a wider range of services, in the context of what you might want to use in the real world, for many use-cases I might still add “but do they?”.
- The big guys have more Data Centres and more global coverage …
I think this is probably true, but I would point out that size is generally irrelevant so long as you have sufficient resource and resilience to satisfy the client’s requirements. From my perspective I can deploy servers literally all over the world from one easy-to-use UI and no perceived limits on how much resource I can get access to. So for many users I’m not sure this should be an issue.
- The big guys provide better performing hardware …
Erm, not necessarily. Over the years I have had lots of problems with AWS within the context of IO performance, specifically disk transfer speeds. My expectation generally is that at the equivalent product level, certainly on the lower end of the pricing scale, Digital Ocean instances outperform on IO by a notable amount. I don’t want to say “by two or three times” because I’m sure in many instances I’ve just been unlucky or tested something at the wrong time. However just to give an example, I’ve literally just logged into a 2G Digital Ocean Droplet for which I’m paying $10 a month, and run ‘hdparm’. If you’re using one of the big guys you can get a more accurate comparison by trying this on one of your virtual machines.
# sync; echo 3 > /proc/sys/vm/drop_caches
# hdparm -tT /dev/vda1
/dev/vda1:
Timing cached reads: 13748 MB in 1.99 seconds = 6915.36 MB/sec
Timing buffered disk reads: 2352 MB in 3.00 seconds = 783.36 MB/sec
# uptime
22:49:56 up 207 days, 8:38, 1 user, load average: 0.17, 0.20, 0.26
- The big guys buy in bulk so they must be a lot cheaper …
Mmm… nope. Again I wouldn’t like to says specifically how many times cheaper or more expensive one is than another, because each service does have many attributes and options and in some cases you’re comparing apples to Oranges. It is my expectation however that should I switch all my current services to one of the larger providers, my costs would go up substantially. Again, you can take a look at the respective pricing to form your own opinion. - The big guys produce images to make the deployment of third party systems easier …
Yes, and indeed you can also create your own images, but then the same applies to DO. Take a peek at the respective UI’s and see who really deserves the tick box for this one.
- The big guys produce more and better tools and API’s for automation…
Mmm .. I’m not entirely sure this is true, DO documentation is generally outstanding, take a look at their developer libraries. In the past I’ve done quite a bit with Ansible and complete CI/CD deployment pipelines and they’ve worked very well. I didn’t perceive it to be any more difficult than performing the same tasks on for example AWS.
So, this is the source of my confusion – what criteria are people using to choose a cloud hosting provider that’s giving a few very large companies the Lion’s share of the market? If you have any ideas or insights, I’d love to hear!
(* Screenshots from my test DO account)