Whether you’re building a website for your business, need an API’s to power your app or you’re simulating stock market crashes, the world of web service platforms (known as PaaS - Platform as a Service) can be daunting to wrap your head around. So I’ve rounded up the major PaaS contenders, will delve into the features and pricing of each and provide a synopsis why you would choose a given platform for your particular situation. There are countless PaaS options out there so when hand picking these providers, I tried to select services that are both exceptional and offer something unique from the others.

Heroku

Heroku has been around for about a decade now and has a strong legacy of providing a stable PaaS to ten of thousands of sites. Heroku’s sales pitch is squarely targeted at the hip, creative, startup coder scene and as such is highly supportive of several different programming languages and technologies. Since backed by SalesForce after the acquisition of 2010, Heroku is here for the long haul.

 

All pricing accurate as of Feb 7, 2017.

Heroku Features

  • A streamlined deployment model based on source control. So push your code to a repository to have it deployed to Heroku.

  • Isolated containers called Dynos for running your app on. These are essentially managed virtual machines. Dynos can be added to scale up the app.

  • Support of a plethora of languages to build your app with: Node, Python, PHP, Ruby, Java, Go, Gradle, Scala, Clojure

  • Intuitive slick design that makes it quite easy to manage and monitor apps.

  • Database support with PostGres, Redis and Apache Kafka

  • Heroku Teams; a facility to assist teams with collaboration.

  • Extensive service Add-ons: monitoring, caching, logging, etc.

  • Can provide dedicated support where a Heroku consultant is literally working for you.

  • Advanced SalesForce Synchronisation, as you'd expect.

 

Heroku Price Tiers

  • Free to get started. Without payment they'll give you one container for your first app.

  • Hobby: 512 MB RAM │ 10 Process Types - $7/month

  • Professional: Infinite process types. $25/month up to $500

  • Support ranging from $1000 to $2000/month

  • Database: free to $10,000/month for large clusters


 

Google Cloud Platform

GCP is Google’s answer to Amazon AWS’s. It’s a series of cloud services that were built by Google to leverage their own excess capacity. It provides way more that what the average person of even company requires from Paas but since it’s backed by the juggernaut that is Google, there are several innovative features that make it stand out from the crowd, specifically around providing advanced data processing and machine learning capability, if things like that interest you. The other more relevant (for most) benefits of resting on Google’s shoulders is the competitive pricing and scalability.

Google Cloud Platform Features

  • Several compute solutions, for hosting sites or APIs.

  • Advanced networking capability: load balancing, content delivery.

  • File storage: persist on virtual machine or edge cached cloud storage.

  • Database: MySQL and NoSQL options.

  • Several advanced features around machine learning and big data services.

  • Comprehensive management tools and features for monitoring apps. Most of these tools and an API and can ba managed from an app or command line tool.

  • Integration and support for developer tools and an SDK.

  • Security services.

  • Identity management features for managing access.

Google Cloud Platform Pricing

Pricing with Google Cloud Platform is not as straightforward as services like heroku that provide tiered solutions. What it will end up costing you is very much based on your usage.

GCP has a pricing calculator that will allow you to get a pretty good estimate if you know what you want but, I'll provide at least a few examples here to give an indication of GCP pricing.

  • Free to try: will give you an account and

  • App Engine instance low to high capacity - $36 to $216/month

  • Storage: $0.026 / GB / month

  • SQL database low to high capacity - $7.56 to $1014.048/month

  • NoSQL database: Free to depending on usage: Example: 10 GB of data with about 100k read/writes per day would cost about $60/month - a database of under 1GB and less that 100k read writes/day would fall under the free limit.

 

Digital Ocean

Digital Ocean is another large contender in the PaaS space. Based in New York City but with data centers dotted all over the world.

DigitalOcean Features

  • Fast deployment of virtual server instance, known as Droplets on the DO platform. Claims of being able to deploy in 55 seconds.

  • Compute instances run off SSD by default and claim high performance.

  • Support for deploying a multitude of Linux based operating systems as Droplets.

  • Deploy Droplets that are platform or application specific, such as Node.js, Ruby on Rails, Wordpress, GitLab. There is support for over 100 apps.

  • Deploy Droplets that specialise in data such as Redis and MongoDB.

  • Base locations spread globally, although notably missing from Japan and China.

  • Networking features such as DNS, load balancing and private networks.

  • Monitoring.

  • Packaged solutions for website, apps, hosting, big data and developer tools.

DigitalOcean Pricing

  • Being more of a mid sized PaaS provider compared with Google and Amazon, Digital Ocean has simpler to grasp pricing model, although still pretty comprehensive. Still it's easier to figure out what it's going to cost you upfront since you can reason about cost in terms of their deployment units - Droplets.

  • DO doesn't provide a free tier unlike most PaaS options. You could look at that as a positive in that DO are so confident of the quality of the platform that they don't need to lure newcomers with a freebie. That said, getting started at $5/month for an entry level Droplet of 512Mb RAM, 1 processor and 20GB of disk.

  • Each subsequent tier of Droplets pretty much double in price and capacity from here, topping out at $640/month for 64GB RAM, 20 processors and 640GB SSD. Simple linear pricing.

  • There are also Droplets that have additional memory capacity going from $120 to $1680/month.

  • SSD block storage is also priced in an extremely simple way with 100 GB for $10/month scaling up linearly. No discount for the higher end but at least you can reason about your costs without spending hours on a spreadsheet and fiddling around with web based price calculators.


 

Linode

Linode is not really a PaaS like the others on this list. It’s more of a traditional hosting company. That said, it’s a ridiculously good hosting company with a lot of slick features that means it’s competing with some of the big boys.

Linode Features

  • SSD Storage.

  • 40Gbps throughput with multiple levels of redundancy.

  • Fast processing capabilities on services with Intel E5 Processors.

  • Nine data centers, in three international regions, including Japan. Watch out DigitalOcean.

  • Simple to use management console - Linode manager.

  • 99.9% guaranteed uptime.

  • Linode API allowing access to many management features. Also manage fromt the command line.

  • Support for multiple Linux distributions.

  • Availability of various add-ons: Backups, NodeBalancers, Longview, Managed, Professional Services, DNS Manager.

  • Tools for scaling, easily deploying servers.

Linode Pricing

Linode's pricing is a simple tiered model with 4 server types labelled:

  • 2GB - $10/month

  • 4GB - $20/month

  • 8GB - $40/month

  • 12GB - $80/month

You pay a fixed price for a server and billing is monthly. Very easy and predictable.

Firebase

Firebase is a true provider of a platform that is very specific to providing authentication and data services to apps and website. It’s easy to get up and running, code against and manage. They were acquired by Google last year so expect to see full interoperability with Google Cloud Platform in the future.

Firebase Features

  • Cloud messaging allowing easy transmission notifications to mobile and desktop clients.

  • Good API Support for iOS, Android and Web

  • Authentication against major providers like Google, Twitter, Facebook, GitHub and email.

  • Real Time database accessible through the API from your app or web application.

  • Storage which is again accessed through the Firebase API.

  • Very easy to setup and use hosting for the web with automatic provisioning of SSL certificates.

  • Test Lab, to assist with streamlined testing of Android apps

  • Crash Reporting

  • Various features for scaling and growing you app: app indexing, dynamic links, invites

  • Integration with ads and analytics.

Firebase Pricing

  • Pricing on Firebase is both tiered and scalable, although isn't overly complex.

  • Tiered pricing starts at the Spark packages which is free giving you enough resources to prototype up an app or even get it out to a small user base, under 100.

  • The Flame package is $25 a month is would be adequate to serve a relatively popular app or site.

  • Blaze (I love these names) is everything beyond that and pricing scales according to your your needs. Fiddling around with their price calculator I was able to ascertain:

  • Real Time Database: $5/GB for both storage and transfer.

  • Hosting: 100GB storage = $2.60 -> 100GB transferred = $12 -> 100k ops = $0.19

  • Hosting: 100GB storage = $2.60 -> 100GB transferred = $15

  • TestLab: $5/hour

 

So basically everything is relatively cheap except if you're making use of the real time database feature, which to be fair is the main reason you'd use firebase over other options. I'm guessing that's where Firebase makes it's real money.

Amazon AWS

In many ways AWS scares me. They’re no so slowly taking over the internet. I heard one figure that 45% of content on the internet is now coming from Amazon server. Are they Skynet. Maybe. But one thing is for sure; if you can get over the scale and complexity of AWS, then it’s a vastly powerful platform on which to build your service.

AWS Features

Where do I start. AWS provides over a hundred different services each with it's own set of features. I'll go over the main services.

A range of compute services:

  • EC2: virtual servers. Pretty much any operating system can be deployed.

  • Elastic Beanstalk: ability to deploy scalable container applications on a range of different platforms like Java, Node.js, C#, PHP, Python, etc.

  • Lambda: a service that allows you to deploy code to the cloud as a micro service. Highly scalable and lightweight. No dealing with operating systems or platform implementations. Some claim this is the future.

  • File storage provided by Amazon S3.

  • Scalable database storage for SQL and NoSQL. Amazon also recently added it's own implementation of MySQL which it claims is 5 times faster and 10 times cheaper than vanilla MySQL.

  • Extensive developer tools: source control, build, deploy.

  • DNS service in Amazon Route53.

  • Content Delivery service provided by CloudFront. You can pretty much cache your content in most major population centers of the world.

  • A huge range of security, management and migration facilities. Too many to go into here. You can do everything from setup automatics deployments, manage certificates, encrypt data, etc.

  • A range of analytics services.

  • Mobile device platform management.

  • Messaging, notifications, email sending service.

  • Internet of things support.

  • A game engine called lumberyard that integrates with AWS and Twitch. I know right, this list is ridiculous.

  • Their documentation is like the library of congress. The help forums are not that good but since so many developers are working with AWS it's easy to find solutions to problems on third party sites like StackOverflow.

AWS Pricing

AWS is highly competitive when it comes to pricing and is probably the main driver of their success. Most of the services have a free tier up to a point and many of the services are free.

As competitive as the pricing is, it's highly complex. There is a price estimation calculator that must have been invented by an engineer from NASA. Having used AWS extensively myself, the approach I've taken when signing up for a service it to first check that I'm not going to go broke suddenly if my app goes viral. You can actually set rate limits on most services when you dive into the configuration. AWS is complex, but it is powerful and you only pay for what use to a very fine degree. It's a good thing that their billing reporting is simple and helpful.

 

To give you an idea I've rounded up some of the pricing for the major services you likely to use.

Compute/hosting - ECS

  • Starts at about $4.23/month for a t2.micro instance. This could host a low traffic website quite easily.

  • You can keep on scaling up the size of the instance from there. There are over 100 options and each has a set of variables associated with it such as region and whether it’s an "on demand" instance (can launch any time) or a "spot instance" (reserved).

  • Instance types are broken up into specialisations like speed, storage, memory, GPU. For example:

    • Memory optimised: r3.4xlarge = 16 cores, 320GB SSD, 122 GB RAM, $40/month

    • Storage optimised: d2.2xlarge = 8 cores, 12,000GB SSD, 61GB RAM, $38/month

    • Storage optimised: c4.8xlarge = 36 cores, 60GB SSD, 62GB RAM, $45/month

 

Scalable platform - Elastic BeanStalk

With Elastic Beanstalk is priced according to EC2 since it runs as a service that makes use of EC2. That means there is no additional charge for all the nice auto scaling stuff.

 

Storage - S3

S3 uses scaled pricing but on the order of 50TB, 450 TB and 950 TB tiers, which is a ridiculous amount of data. To simplify 100GB would cost you $2.30/month.

 

Database

A basic SQL database will cost you about $15/month. Scales to crazy levels beyond that.

Which platform should you pick?

Everyone's needs are different, and any of the above platforms can be chosen given a specific application or set of circumstances. So have a scan through the list and see if you match any of these profiles:

 

Use Heroku when:

  • Ease of deployment is important.

  • You’ve got a developer centric culture. Geeks love Heroku.

  • You like functional programming and you want to look cool.

 

Use Google Cloud Platform when:

  • You’ve got a large application with high computational and throughput demands.

  • You want to make use of data mining and machine learning.

  • You’re trying to cure cancer.

 

Use Digital Ocean when:

  • You want to provide services for a small to large apps.

  • Need highly scalable hosting with predictable and reasonable pricing.

 

Use Linode when:

  • You want cheap servers and willing to do everything yourself in terms of setting up the platform.

  • You don’t expect to scale dramatically.

 

Use Firebase when:

  • You want to have a backend for your app or website in almost no time at all.

  • You’re a startup.

 

Use AWS when:

  • You want a cheaper option than all the others.

  • Scaling matters, like really matters.

  • You’re willing to learn the complexities of the platform or hire someone who does.

Overall Winner

It’s hard to ignore the juggernaut that is Amazon AWS as it ploughs through the internet, assimilating websites as they move into the AWS fold. Even companies like Rackspace are now chucking in the data center gig and going with AWS as their platform. AWS is large enough now where economy of scale is a force of nature. So I would, despite it’s lack of coolness, have to say AWS is the clear option for most. That said, DigitalOcean is pretty rad.

Notable Mentions

Of course there are many more options to choose from in the PaaS space. I’ve added a few of the other major contenders here that I didn’t go into in full detail because I felt they didn’t offer anything extra or unique.

 

  • SoftLayer: IBM’s cloud offering. Supposedly very performant. Targeted to enterprise.

  • Azure: PaaS provided by Microsoft. Actually pretty good and probably the best choice if you want to go with a Microsoft stack. Not featured here because it’s similar to GCP and AWS but lacks their catalogue of features.

 

And if you’re blown away by all the highfalutin tech in this article and just want a website:

  • SquareSpace: A great option if you just want a website without much fuss and one you could probably do it all yourself. Has a lot of easily added features like social media and shopping carts.

  • Wordpress.com: Another great option if you just want a website and not much else. Wordpress has come a long way since being just a blogging platform and now incorporates many features like e-commerce, advanced ability to theme and customise and literally thousands of plugins available.