PaaS Is Cool. You DO Want To Be Cool Don’t You?
We love Platform as a Service. All of our projects start (and so far stay) on Heroku. This is a pretty easy decision up front since Heroku (and most other PaaS providers) offer free trials that are likely to get most apps through the development phase without costing a cent. Why would you choose something you have to pay for? Now I know what you’re thinking, free development hosting is all well and good, but aren’t these PaaS services more expensive than what it would cost to run my application directly on Amazon Web Services (AWS)? Why pay all that extra money? Well here’s why.
DevOps is Expensive
If you’re going to be on vanilla AWS, you’re going to need someone to do systems administration. In our situation, that ends up being the developer(s) on the project. Saves a lot of money, but if there’s any hiccup with the hosting, it can mean hours or even days of lost development time. In that case, lost time is the same as lost money. Your other option is to hire a full or part time DevOps-type person. Expect to pay at least $80k/yr for someone who won’t leave your architecture a mess. PaaS basically solves all the DevOps questions for you. Scale your application by clicking on a web page. No more worrying about paying someone to manage complex systems to manage your infrastructure. Your PaaS provider has already figured out all the hard infrastructure problems for you. Add a variety of monitoring services to your application in 5 simple steps. Using redis? Yep, done already. All for far less than the cost of even a part time DevOps engineer.
AWS is an open playground strewn with toys that may be used in any which way the user desires. This results in an ecosystem that provides extreme flexibility for rock bottom prices, but flexibility can be a double edged sword. Developers are a creative and clever bunch, but when left with the keys to the castle, they can make a clever and creative mess. I’ve seen it first hand. PaaS offers a ‘One True Way’ to build your infrastructure. This feels limiting to some developers, but what you get in return is priceless. If your app runs on PaaS you can move it to pretty much any other hosting environment and have a tried and true, expert-developed, reproducible, and scalable infrastructure. Heroku hires the highly talented and experienced DevOps engineers so you don’t have to.
These hosted PaaS platforms are great, they save time, money, and headaches for everyone, but of course if your startup is a runaway success, you may find that the price starts to go up quickly once you start growing to Twitter-scale. There are some new self-hosted PaaS systems like Openstack (developed by Rackspace and used in their own PaaS) and CloudFoundry (Pivotal offers a hosted CloudFoundry PaaS) that can help you keep the PaaS feel you grew accustomed to on a hosted service with a lower service cost. You trade off that savings with needing still more expensive DevOps engineers, but at least there are plenty options from moving off an expensive hosted PaaS that no longer meets your needs well enough.