Blippex.org published a blog post yesterday why they moved away from AWS. In the blogpost and HN discussion we recognized a couple of important points were missing in favor of AWS or cloud services in general.
Full Disclosure: We know the guys from Blippex very well as they are also from Vienna.
Blippex’s blog post didn’t mention that the team behind blippex has been working on their former company, Archify, for a few years. The technology behind Archify evolved into what is currently blippex. At this point they know and understand their infrastructure needs. Thus a self managed hosting became an option but would probably have been hard to do before when building the infrastructure.
AWS helped them a lot in the past to be able to experiment and build the infrastructure they need, as they mention themselves.
From the ensuing discussion on the blippex blog and Hacker News two main points were missing.
Speed of innovation is how you win
For a startup speed of innovation trumps everything else. Getting your MVP out the door as quickly as possible has to be priority number one. And building on top of that MVP until there is product market fit needs to happen quickly.
With this in mind being able to create, destroy and change servers at will is not just nice to have. It becomes essential to spend the least amount of time on maintaining and building servers and the most on building the product, marketing and everything else necessary to build the company.
Being able to focus on the growth of your business early on is way more important than infrastructure cost optimisations. We made the cost optimisation mistake ourselves a couple of times and lost lots of time that we could have invested in our growth.
AWS or other cloud hosting providers might be more expensive when only compared on raw power. The flexibility they give your team to focus on what is important for your business is way more important and will determine the success of your product and company.
AWS is great with Automation, stupid without it
We rebuild our complete infrastructure nearly every day. Cloud infrastructure and good automation give you these abilities. As Max mentioned himself:
The biggest downside is not to be able to start new servers just with a mouse click
This is one of the major upsides of AWS and not just a side note. And it’s not just about scaling to 10x traffic, although that can be helpful. Cloud servers are not 24/7 machines. They are building blocks that should be treated as immutable and volatile.
Considering an EC2 instance as a normal server that you ssh into and
apt-get update/upgrade is plain wrong. Even Amazon says so. Building servers through automation is key. Everything can be and should be automated.
Take for example one comment made on Hacker News:
It really does not if you do it the right way. Start by automating every step necessary to get a server up and running from a barebone OS. You can then store those images as EC2 AMIs. Now whenever a server starts to misbehave you simply destroy and replace it.
While it is technically possible to get there with netboot on self managed servers you have to sacrifice a part of your current infrastructure if you want to rebuild a server. With the cloud there is no sacrifice, as you simply launch new instances. This is a very different world.
Recently new tools have come up to help manage cloud infrastructure. We started looking into Packer over the weekend and will be switching to it for our test server deployment over the next couple of days.
And Packer is just one of a number of tools that make managing modern cloud infrastructure a lot easier. We will talk about some other tools we use like Vagrant or Ansible in the future.
AWS is expensive when you compare only the raw server costs and do not use reserved instances. But that premium lets you focus on building your product far more than going with a self managed machine. Especially for early stage startups or projects this makes all the difference in the world.
As this was a big discussion yesterday on Hacker News we’d be interested to know what you think. Feel free to add your thoughts in the comments.
A step-by-step guide to this revolutionary approach to hosting and managing your web applications!
Cloud computing gives you the tools you need to prepare and cope with a traffic onslaught. You'll have the confidence to withstand a traffic surge without melting your servers or sending you into bankruptcy. There are a number of different ways to use the cloud to host existing applications, build creative new ones, and improve the cost-effectiveness and efficiency of organizations large and small.