Just an anecdote, but I recently launched a little side project and DigitalOcean crushed EC2 and Rackspace Cloud when I did some benchmarking. The low cost is appreciated but was NOT a factor in my decision.
EC2 and Rackspace have a greater range of service than all the other guys (storage on demand, snapshots, private networks etc...), but at a very significant price difference.
NewsBlur is mentioned in the article, but I cannot overstate how positive my experience with DigitalOcean has been. I'm stressing their biggest machines and spinning up dozens of differently configured boxes and they've handled it swimmingly well. Between the price and the performance differences, I'm glad I switched.
I also have a shadow site running in parallel on EC2, so I get to compare dollar for dollar. EC2 is strictly an apocalypse host at this point.
Network performance is fine, network reliability is the one you need to watch out for. I'm still working on getting some automated script to detect longer than expected timeouts through HAProxy and then issue a VM reboot through DO's API. It happens often enough that if I experience intermittent downtime, I turn to HAProxy's stats before looking at my munin graphs. But these things will resolve and ease in time. Bleeding edge is well named.
We are using a Cisco based network and working closely with them to build a resilient network architecture. We've already encountered a number of bugs within Cisco's platform that have surfaced and are working closely with their TAC to escalate and resolve them permanently not only for DigitalOcean but all providers world wide.
I switched my personal projects from linode to digital ocean, for pricing but the performance is out of this world. The pricing allows me to run 4-5 of my projects for the same cost where I was at times maxing out the low-grade linode box that I had.
I later switched all my office's projects there from AWS and cut costs by over 85%. I also saw a significant performance bump allowing me to reduce the number of machines that I had active.
I cannot overstate how pleased I have been, their APIs compete with EC2, their performance is better than what I have seen on any competitor.
I am one very pleased customer. My _only_ complaint is that they aren't delivering on features at the rate they previously were. Though, after reading this article, I can understand a little better as to why.
The growth has been fantastic and we are super excited. Unfortunately managing it requires as much work as engineering new features. The good news is we've been hiring and growing the team and we're hopeful we'll get back to our regular development schedule in the next 2 months after we've gotten everyone up to speed and worked out some of the speed bumps. =]
Recently tried out DigitalOcean for a couple of small projects and already noticed some network reliability issues. My droplet was un-accessible for a couple of hours (at least) yesterday. Fortunately, it was for a non-production project and they were able to restore it within about a 1/2 hour. Verdict is still out for me, although I suspect that reliability will improve with time. I'm keeping production at Linode.
I noticed the same thing when I initially switched. I actually had them lose the box I was on, and the backups associated with it. They apologized and indicated it was an issue at the datacenter that they didn't have much control over. They gave me a really nice bit of credit on my account and I've since had no problems. I'm a fan of the pricing as well as their support.
I'm amazed you stuck with a host that lost your data. That would be a complete deal breaker for me; I've never lost so much as a byte with Linode over six years.
To be a bit more specific, I was moving some sites over from linode as a test to see if they would perform the same on DO. So effectively they only lost some test stuff. Still data loss though, like you said.
I first found digital ocean on lowendbox when they were opening and even though I only host side projects on there, I've never had a problem with them.
I was never aware of their performance when compared to Linode and Rackspace until that one comparison on HN several months ago. With that being said, from their expansion from 10,000 instances when I first signed up to over 200,000 today, I have been, thoroughly, impressed with their servers and overall operation.
I lose connectivity all the time. Tried to contact their support, they could not do anything. One solution for me is just to use cron job and reboot the VM once the problem is detected.
Support is quick to reply but often there is nothing they can do. I've tried contacting regarding both technical problems and billing issues and in both occasions they couldn't do nothing to help.
I moved everything I had at Linode over to DigitalOcean as well and performance has been excellent. I loved Linode's stability but their response to the recent security incident really pissed me off. On DigitalOcean, I have seen briefly the network issues mentioned by others, but things have been more stable the last month or so.
That said, one production server I work with on RackSpace was completely unavailable yesterday for nearly 5 hours, so paying more money doesn't necessarily give you better uptime. Just that one outage put DigitalOcean ahead in availability for my systems over the last 6 months.
Is there any reasonably simple framework for replicating across cloud providers?
I've switched all my stuff from Linode and previous other hosting providers all to DIgitalOcean about 6 months ago and haven't been happier. Great group of guys there too.
There were three images that didn't like to regenerate host keys on their own when they were missing on the initial boot and we've update them today so it should all be cleared up now.
About 4 months ago I moved a mail server from a 2GB Linode instance (london) to a 4GB DO instance (amsterdam) and overall I've been very happy with them. No major outages, the cost saving is huge and I/O performance is great.
The only negative so far is network reliability. Every once in a while my monitoring stuff fails to establish a connection to the DO box. It's transient though and usually connectivity comes back within 2 to 5 minutes. The box is running a low traffic mail server so it hasn't been a big enough issue for me to worry about yet. Other than that, I'm a happy bunny.
I've played with DigitalOcean some. But I've kept my main VPS on Linode, and also recently recommended Linode for a group that I'm peripherally involved with.
Using SSDs for multi-tenant virtualized servers seems like a good idea to me. My intuition on this may be wrong, but it seems to me that the lack of variable seek time ought to lessen the variability in I/O performance that one hears so much about.
However, I have the following reservations about DigitalOcean:
1. No IPv6 yet AFAIK. I figured that would be a priority given the scarcity of IPv4 addresses, particularly in Amsterdam.
2. Not all resource allocations are proportional to the price or amount of RAM. On Linode, a 4 GB VPS is 4 times as much as a 1 GB VPS in every way. On DigitalOcean, a 2 GB VPS only has 2x as much CPU, 2x as much storage, and 3x as much bandwidth as a 512 MB VPS. Don't get me wrong; the prices are great. It just doesn't seem like a logical way to allocate resources from a pool.
> My intuition on this may be wrong, but it seems to me that the lack of variable seek time ought to lessen the variability in I/O performance that one hears so much about.
Take this with a grain of salt, as I'm limited in my experience, but I believe that's not entirely the case. Modern SAN controllers are optimized for very consistent latency on spinning platter disks, even under heavy load. The big benefit that I see in SSD-backed SANs is increased I/O bandwidth.
I tried to make the switch, but found the network to be too unstable.
I have several servers on Linode, that communicates over the internal network (PostgreSQL, Redis, Memcache, Beanstalk etc.) and a bunch of app-servers. If their line of communication is broken, nothing works.
Now I only use my server at DigitalOcean as routing traffic when I am travelling.
The performance/price is good but the server is not reliable at all. Pingdom tracks many 1-minute downtime during the week. I think they have problems in the network, maybe because of the growth? Their support is very good though, I once got $50 credit because the machine/cluster that hosts my VPS was broken...
I've also had the pingdom monitoring on a droplet for the last 2 months and the only downtime I've been alerted to was my fault. Maybe it's on your end?
I'm using a 1gb droplet, ubuntu 12.10 with a LEMP stack, PHP5 and MySQL 5 for a low traffic site (Xenforo-based forum) as well. Maybe the difference is nginx vs Apache?
edit: I also added an additional 1gb as swap space, which helped prevent my mysql instance from falling over with low memory at times.
Mine is in New York. Pingdom is configured to 1 minute resolution and I had 54 minutes of downtime in the last 30 days. Maybe I need to take a snapshot and spin up another instance. Thanks for your reference point.
No problem. I've been quite happy with them so far. I was using BuyVM for my side projects, but was getting annoyed with dealing with constant downtime, and other issues. I was starting to consider Linode, but ended up going with DigitalOcean due to the price. I really hope they can keep up the reliability that I've been experiencing.
Basically you put your DO api key in your Vagrant file, and then running "vagrant up --provider=digital_ocean" spins up a new ubuntu VM and runs your chef/puppet provisioner code on them. It's awesome!
It uses rsync to mirror your vagrant project directory to /vagrant, which is a actually better workflow for some use cases (eg hosting) than virtualbox shared folders.
Do you not have a domain of any sort? It would seem trivial to point TESTAPP.degachevdomain.com to the IP address of the server. Else, just go to the IP.
I have a bunch of domains, but I'm using DO for temporary apps, and would like the DNS records to be automatically created/destroyed along with the droplets.
I think this is a great idea. In many ways they're positioned to become a more flexible/performant version of Heroku. On the complexity scale from Heroku to AWS, they definitely sit right in the middle. It will be interesting to see which direction they tend towards as they add features. Personally I want a version of Heroku with the price/performance of digital ocean. In other words, by default you could use it like Heroku but it would allow you to SSH into machines and customize your software/configuration when you ran into problems. Maybe DO could offer a load balancer that would make it easy to deploy horizontally scaled application servers really easily. A nice DSL to describe the node configuration would go a long way... I suppose this is kind of what Vagrant is solving but they're approaching it from the development perspective, not deployment.
I like the idea and concept of DO, but they don't support non-Linux which is pretty lame considering they are using KVM which can run a bunch of different stuff. I'm also curious how they do volume management, but these are just technical details :)
I'll also point out that a regular FreeBSD/NetBSD network install can be done in under 55 seconds, so thats not really a major feat to do when you're just copying images around.
But, they've productized it all very well so I'm happy to see someone taking a chunk out of EC2.
Given how cheap the price is, I don't think they have a sustainable business model. As far as I can see, there is nothing technically different from their model that allows their service to benefit from any type of economies (of scale/scope) in order to stay competitive. So then my overall question is - how can they offer better service and better hardware (i.e. more expensive) at a cheaper rate? I'm genuinely curious.
I'll stick with Linode until the company is more established.
Modern machines is my guess. Many other cloud providers and hosting companies are running machines from a few years ago. I don't believe the price has stayed competitive to the power, so DO is effectively arbitraging the price difference between 2010 machines and 2013 machines. That and their API makes it really easy to spin up more machines than you need, leading to some dead weight that doesn't harm your neighbors.
DigitalOcean is my fourth host in four years. I just spent two years with a company inexplicably named Reliable Hosting Services before I switched. Switching hosting providers is surprisingly easy, since I just replicate out my DBs and then eventually switch the primaries over to the new host.
My gut tells me that DigitalOcean has at least a couple years until I have to even think about comparing to other hosts again.
They offer the same amount of RAM for less than Linode, but they offer fewer cores, which makes me suspect they're putting more VPS's on a single host. I haven't yet run any benchmarks, but I think Linode gives you more CPU and Digital Ocean gives you more memory. It's a little more complicated than "better service and better hardware at a cheaper rate."
To add a little bit of anecdata, I recently move from Linode to DigitalOcean.
On Linode I was getting jammed on I/O; on DigitalOcean I am jammed on CPU.
I'd be happy to give up half my RAM to get twice the cores, actually. I run a modest Wordpress network (http://ozblogistan.com.au). Once MySQL is humming, most of the CPU time is spent on various copies of PHP running the increasingly bloated Wordpress codebase.
(Yes, I've used opcode caching. I've never had good experiences with any of the major ones).
>(Yes, I've used opcode caching. I've never had good experiences with any of the major ones).
Just wondering, what were your experiences? Installing apc is basically apt-get install php-apc (if you're on Debian/Ubuntu), and that's about it unless you want to increase the memory limit. This will greatly reduce CPU usage.
Hi, I'm the CEO of DigitalOcean and we are not operating on a fantasy revenue model. All of our unit economics are positive and we are certainly here for the long haul with a sustainable business model.
To answer your question directly, and without knowing the exact cost structure of our competitors, I would have say that we are generating less margin per unit but we are overall sustainable and growing healthy.
I think the trick is (as it is with most vps providers), that most users, don't always use full memory and or full CPU usage, or even disk space. The full usage, if it ever happens usually happens in small bursts.
Most vps providers have a rule that you are not alowed to use 100% 24/7/365 or they can cancel your account (I don't know if this is true with DO). The trick is that if you have a lot of customers you can spread the cost on users who are not using full resources (which happens to be most users), at large scale you can make decent profit in this kind of setup, even if your revenue per account is low.
I didn't mention bandwidth because at DC level, BW is the least expensive component, but it is also true that most users will not use up 1TB per month.
Most of it is speculation from my part, and a bit from experience.
I don't think "overselling" is the right word in this, it implies degradation of performance because of too many VMs. My understanding, is that all VMs allow sharing resources, even KVM. But to my understanding, you can share memory on KVM, but not diskspace (at least not easily), which is why every single KVM offers out there have very small disk allocation. This works great for DO, because they are offering SSD, and SSD VPS (regardless the type of VM) are small in size, so it fits perfectly.
I think the whole idea with VPS, is that you can share resources, so there is nothing wrong with that, its the overselling part that should be of concern and I have no reason to believe that DO is overselling. Their performance is pretty good.
The point I was trying to make referring to the OP, that VPS like DO can be profitable even at such a low price, because of the way VPS work. Even with very small revenue, if you have enough customer you can make good money. That's why the math works. Most other KVM offerings are so expensive because they don't have that tipping point scale to make them profitable with the same price. But other hosts like Linode gets away with charging more, because of reputation. They already have a good thing going, unless they starts losing customers drastically, they don't have to change their pricing model.
1 core/512MB/20GB ssd => $5. They state that they are running hexcore hardware. That translates to 6*$5 = $30 per month per server. So that's probably not making much money for them.
But then it looks better if they manage to sell the higher plans. 4cores/8GB/80GB ssd = $80, 2cores/4GB/60GB ssd = $40. These fit easily to single server and that's then $120 per month per server. Compare this to for example some of cheaper dedicated hardware providers like Hetzner [1] who are selling similar dedicated hardware for something like $60-70 per month.
Based on this it could be a sustainable business model, at least if they have enough volume (which seems to be the case, considering the Netcraft article).
(I assumed they are providing dedicated cores and using single socket servers. But it might make more sense to use some relatively cheap multi-cpu servers since with these plans the bottle neck seems to be on the numbers of cores side and not with the memory).
It isn't a dedicated core. Linode offers a $20/mo 8-core instance. That doesn't mean there aren't others sharing those cores. If Linode were offering 8-core Sandy Bridge E5-2670 servers with all 8 of those cores dedicated to you for $20, that would be quite a steal.
The RAM is guaranteed and the processor is shared. Amazon has been working a fixed-compute model on all except their Micro instances. Other providers are sharing cores.
Right now, DigitalOcean is limiting the number of cores exposed to smaller instances. They may change that in the future (there have been hints on their feedback site that they're looking into changing this so that smaller instances could have better burst capabilities).
I am curious if there are any IOPS comparisons between DigitalOcean and real hardware (spinning disks)? Currently we run our Postgres instances on EC2, but are looking to move to get better IOPS. The question is: SSD-based VMs or real hardware? Cost is also a factor which is why DigitalOcean is a contender.
Thanks but those are not what I am looking for. Linode and AWS run on VMs just like DO. The question is not SSD VM vs disk VM. It is SSD VM vs disk non-VM (real hardware).
I believe "meteoric" implies a quick fall. A light that burns brightly, but disappears quickly. Not sure the data warrants the use of that adjective in this context.
I've been on DO for several months now and love them. And as far as reliability, I've had binarycanary pointed at my sites for about a month now with one outage that lasted about a minute and then resolved itself. To me, for the price/benefits, that's amazing.
One other thing people rarely mention with hosting, that's SUPER important to me, are the FAQs/Docs, and DO really comes through in that area imo.
Thank so much for the shoutout about the docs. We are very focused on building up our developer community (with our IRC channel #digitalocean, forum, and tutorials) and growing as an educational resource. If you ever have any additional article requests, please feel free to send them to etel@digitalocean.com
163 comments
[ 3.3 ms ] story [ 168 ms ] threadEC2 and Rackspace have a greater range of service than all the other guys (storage on demand, snapshots, private networks etc...), but at a very significant price difference.
I also have a shadow site running in parallel on EC2, so I get to compare dollar for dollar. EC2 is strictly an apocalypse host at this point.
I later switched all my office's projects there from AWS and cut costs by over 85%. I also saw a significant performance bump allowing me to reduce the number of machines that I had active.
I cannot overstate how pleased I have been, their APIs compete with EC2, their performance is better than what I have seen on any competitor.
I am one very pleased customer. My _only_ complaint is that they aren't delivering on features at the rate they previously were. Though, after reading this article, I can understand a little better as to why.
The growth has been fantastic and we are super excited. Unfortunately managing it requires as much work as engineering new features. The good news is we've been hiring and growing the team and we're hopeful we'll get back to our regular development schedule in the next 2 months after we've gotten everyone up to speed and worked out some of the speed bumps. =]
And they did credit me for their fault so I think it's fair enough.
They lost that as well in this case.
I was never aware of their performance when compared to Linode and Rackspace until that one comparison on HN several months ago. With that being said, from their expansion from 10,000 instances when I first signed up to over 200,000 today, I have been, thoroughly, impressed with their servers and overall operation.
How is their reliability? I noticed once or twice it I would lose connectivity.
I have quite a few boxes on linode and thinking about switching over production infrastructure.
EDIT --- And today damn linode decides to go down.
That said, one production server I work with on RackSpace was completely unavailable yesterday for nearly 5 hours, so paying more money doesn't necessarily give you better uptime. Just that one outage put DigitalOcean ahead in availability for my systems over the last 6 months.
Is there any reasonably simple framework for replicating across cloud providers?
Also we launched two factor auth recently.
We take security very seriously.
Thanks
ECDSA key fingerprint is 97:d7:21:81:9b:77:34:bb:f1:8e:86:25:b0:47:6b:ff.
Also: -rw------- 1 root root 227 Apr 25 2012 ssh_host_ecdsa_key
Thanks!
Meteors usually fall down (relative to Earth)
I love etymology: http://www.worldwidewords.org/qa/qa-met1.htm
The only negative so far is network reliability. Every once in a while my monitoring stuff fails to establish a connection to the DO box. It's transient though and usually connectivity comes back within 2 to 5 minutes. The box is running a low traffic mail server so it hasn't been a big enough issue for me to worry about yet. Other than that, I'm a happy bunny.
Using SSDs for multi-tenant virtualized servers seems like a good idea to me. My intuition on this may be wrong, but it seems to me that the lack of variable seek time ought to lessen the variability in I/O performance that one hears so much about.
However, I have the following reservations about DigitalOcean:
1. No IPv6 yet AFAIK. I figured that would be a priority given the scarcity of IPv4 addresses, particularly in Amsterdam.
2. Not all resource allocations are proportional to the price or amount of RAM. On Linode, a 4 GB VPS is 4 times as much as a 1 GB VPS in every way. On DigitalOcean, a 2 GB VPS only has 2x as much CPU, 2x as much storage, and 3x as much bandwidth as a 512 MB VPS. Don't get me wrong; the prices are great. It just doesn't seem like a logical way to allocate resources from a pool.
Take this with a grain of salt, as I'm limited in my experience, but I believe that's not entirely the case. Modern SAN controllers are optimized for very consistent latency on spinning platter disks, even under heavy load. The big benefit that I see in SSD-backed SANs is increased I/O bandwidth.
I have several servers on Linode, that communicates over the internal network (PostgreSQL, Redis, Memcache, Beanstalk etc.) and a bunch of app-servers. If their line of communication is broken, nothing works.
Now I only use my server at DigitalOcean as routing traffic when I am travelling.
edit: I also added an additional 1gb as swap space, which helped prevent my mysql instance from falling over with low memory at times.
Prefork is pretty much Apache-speak for "please munch all my memory and then lock up if more than a handful of people turn up at once".
Nginx or Lighttpd + PHP-FPM behave almost as badly if you choose dynamic mode and don't pick the right values.
Basically you put your DO api key in your Vagrant file, and then running "vagrant up --provider=digital_ocean" spins up a new ubuntu VM and runs your chef/puppet provisioner code on them. It's awesome!
It uses rsync to mirror your vagrant project directory to /vagrant, which is a actually better workflow for some use cases (eg hosting) than virtualbox shared folders.
I'm just testing them now, and I'm not ready to point a real domain at them yet.
I'll also point out that a regular FreeBSD/NetBSD network install can be done in under 55 seconds, so thats not really a major feat to do when you're just copying images around.
But, they've productized it all very well so I'm happy to see someone taking a chunk out of EC2.
I'll stick with Linode until the company is more established.
(Google Compute Engine is in the same position because right now they only run on Sandy Bridge.)
My gut tells me that DigitalOcean has at least a couple years until I have to even think about comparing to other hosts again.
On Linode I was getting jammed on I/O; on DigitalOcean I am jammed on CPU.
I'd be happy to give up half my RAM to get twice the cores, actually. I run a modest Wordpress network (http://ozblogistan.com.au). Once MySQL is humming, most of the CPU time is spent on various copies of PHP running the increasingly bloated Wordpress codebase.
(Yes, I've used opcode caching. I've never had good experiences with any of the major ones).
Just wondering, what were your experiences? Installing apc is basically apt-get install php-apc (if you're on Debian/Ubuntu), and that's about it unless you want to increase the memory limit. This will greatly reduce CPU usage.
I periodically try again.
By the way: Starting with PHP 5.5, Zend's own opcode cache will be included by default.
To answer your question directly, and without knowing the exact cost structure of our competitors, I would have say that we are generating less margin per unit but we are overall sustainable and growing healthy.
Most vps providers have a rule that you are not alowed to use 100% 24/7/365 or they can cancel your account (I don't know if this is true with DO). The trick is that if you have a lot of customers you can spread the cost on users who are not using full resources (which happens to be most users), at large scale you can make decent profit in this kind of setup, even if your revenue per account is low.
I didn't mention bandwidth because at DC level, BW is the least expensive component, but it is also true that most users will not use up 1TB per month.
Most of it is speculation from my part, and a bit from experience.
I think the whole idea with VPS, is that you can share resources, so there is nothing wrong with that, its the overselling part that should be of concern and I have no reason to believe that DO is overselling. Their performance is pretty good.
The point I was trying to make referring to the OP, that VPS like DO can be profitable even at such a low price, because of the way VPS work. Even with very small revenue, if you have enough customer you can make good money. That's why the math works. Most other KVM offerings are so expensive because they don't have that tipping point scale to make them profitable with the same price. But other hosts like Linode gets away with charging more, because of reputation. They already have a good thing going, unless they starts losing customers drastically, they don't have to change their pricing model.
Yes, most users won't use all the allocated resources. They probably do oversell, but they do deliver the resources if you use them.
But then it looks better if they manage to sell the higher plans. 4cores/8GB/80GB ssd = $80, 2cores/4GB/60GB ssd = $40. These fit easily to single server and that's then $120 per month per server. Compare this to for example some of cheaper dedicated hardware providers like Hetzner [1] who are selling similar dedicated hardware for something like $60-70 per month.
Based on this it could be a sustainable business model, at least if they have enough volume (which seems to be the case, considering the Netcraft article).
(I assumed they are providing dedicated cores and using single socket servers. But it might make more sense to use some relatively cheap multi-cpu servers since with these plans the bottle neck seems to be on the numbers of cores side and not with the memory).
[1] http://www.hetzner.de/en/hosting/produkte_rootserver/ex4
The RAM is guaranteed and the processor is shared. Amazon has been working a fixed-compute model on all except their Micro instances. Other providers are sharing cores.
Right now, DigitalOcean is limiting the number of cores exposed to smaller instances. They may change that in the future (there have been hints on their feedback site that they're looking into changing this so that smaller instances could have better burst capabilities).
http://stevenyue.com/2013/04/15/linode-vs-digital-ocean-perf...
http://bigjocker.com/wordpress/?p=121
Because it's hourly you can spin up and test and if it doesn't suit your needs will be a minimal charge.
We also made a promo code : NEWSYC10 - so you can get a $10 credit to test with before incurring any charges.
One other thing people rarely mention with hosting, that's SUPER important to me, are the FAQs/Docs, and DO really comes through in that area imo.
Thank so much for the shoutout about the docs. We are very focused on building up our developer community (with our IRC channel #digitalocean, forum, and tutorials) and growing as an educational resource. If you ever have any additional article requests, please feel free to send them to etel@digitalocean.com