AppHarbor vs AWS Elastic Beanstalk: What are the differences?
What is AppHarbor? Instantly deploy and scale .NET applications. AppHarbor is a fully hosted .NET Platform as a Service. AppHarbor can deploy and scale any standard .NET application to the cloud.
What is AWS Elastic Beanstalk? Quickly deploy and manage applications in the AWS cloud. Once you upload your application, Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring.
AppHarbor and AWS Elastic Beanstalk belong to "Platform as a Service" category of the tech stack.
Some of the features offered by AppHarbor are:
- You push .NET and Windows code to AppHarbor using Git, Mercurial, Subversion or Team Foundation Server with the complimentary Git service or through integrations offered in collaboration with Bitbucket, CodePlex and GitHub.
- When AppHarbor receives your code it will be built by a build server. If the code compiles all unit tests contained in the compiled assemblies will be run. The result and progress of the build and unit test status can be monitored on the application dashboard. AppHarbor will call any service hooks that you add to notify you of the build result.
- If everything checks out the application is deployed and configured on AppHarbor application servers. AppHarbor can scale an application vertically and horizontally within seconds for better request throughout, performance and failover. AppHarbor balance load across all instances running that application. Scaling an application gives higher request thoughput, redundancy in case of instance failure and better performance.
On the other hand, AWS Elastic Beanstalk provides the following key features:
- Elastic Beanstalk is built using familiar software stacks such as the Apache HTTP Server for Node.js, PHP and Python, Passenger for Ruby, IIS 7.5 for .NET, and Apache Tomcat for Java
- There is no additional charge for Elastic Beanstalk - you pay only for the AWS resources needed to store and run your applications.
- Easy to begin – Elastic Beanstalk is a quick and simple way to deploy your application to AWS. You simply use the AWS Management Console, Git deployment, or an integrated development environment (IDE) such as Eclipse or Visual Studio to upload your application
"Has a totally free account option" is the primary reason why developers consider AppHarbor over the competitors, whereas "Integrates with other aws services" was stated as the key factor in picking AWS Elastic Beanstalk.
What is AppHarbor?
What is AWS Elastic Beanstalk?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using AppHarbor?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
When creating the web infrastructure for our start-up, I wanted to host our app on a PaaS to get started quickly.
A very popular one for Rails is Heroku, which I love for free hobby side projects, but never used professionally. On the other hand, I was very familiar with the AWS ecosystem, and since I was going to use some of its services anyways, I thought: why not go all in on it?
It turns out that Amazon offers a PaaS called AWS Elastic Beanstalk, which is basically like an “AWS Heroku”. It even comes with a similar command-line utility, called "eb”. While edge-case Rails problems are not as well documented as with Heroku, it was very satisfying to manage all our cloud services under the same AWS account. There are auto-scaling options for web and worker instances, which is a nice touch. Overall, it was reliable, and I would recommend it to anyone planning on heavily using AWS.
We initially started out with Heroku as our PaaS provider due to a desire to use it by our original developer for our Ruby on Rails application/website at the time. We were finding response times slow, it was painfully slow, sometimes taking 10 seconds to start loading the main page. Moving up to the next "compute" level was going to be very expensive.
We moved our site over to AWS Elastic Beanstalk , not only did response times on the site practically become instant, our cloud bill for the application was cut in half.
In database world we are currently using Amazon RDS for PostgreSQL also, we have both MariaDB and Microsoft SQL Server both hosted on Amazon RDS. The plan is to migrate to AWS Aurora Serverless for all 3 of those database systems.
Additional services we use for our public applications: AWS Lambda, Python, Redis, Memcached, AWS Elastic Load Balancing (ELB), Amazon Elasticsearch Service, Amazon ElastiCache
I use Gunicorn because does one thing - it’s a WSGI HTTP server - and it does it well. Deploy it quickly and easily, and let the rest of your stack do what the rest of your stack does well, wherever that may be.
uWSGI “aims at developing a full stack for building hosting services” - if that’s a thing you need then ok, but I like the principle of doing one thing well, and I deploy to platforms like Heroku and AWS Elastic Beanstalk where the rest of the “hosting service” is provided and managed for me.
AppHarbor is an amazing tool for indie developers or startups that are just getting on their feet. To put it short, AppHarbor is the Heroku of .NET, being developer friendly, cost effective and performant.
Their platform has some nice features including the plugins (integrations with different services such as shared or dedicated RDBMS instances, document repositories, messaging queues, logging and monitoring services, etc.) that are extremely easy to use, and especially integrations with BitBucket and GitHub.
It's such a pleasure to work with the integrations mentioned, that whenever a developer pushes commits to the selected branch, AppHarbor automatically pulls, updates, builds, runs the unit tests and deploys. The cream of the crop is the fact that even the free tier supports this workflow which is practically a continuous delivery approach. And this makes AppHarbor perfect for startups and independent developers.
And, for established companies, I have to add the fact that their customer support is quite good.
Elastic Beanstalk gives us a managed platform for our front end servers to make sure that traffic is never overloading our servers and that deployments are always successful.
Elastic Beanstalk manages our environments. We rely on it to manage rolling out new versions of services.
Easy to get started. Essentially a package of several AWS products integrated for you.
For convenience I use Elastic Beanstalk to host all my sites.