A short introduction
This post is built from a developer perspective where the main task we do daily is, well, development. So if you are a sysadmin guy, Heroku will like it at the beginning but soon you will have your hands tied since flexibility is not the main feature.
It’s not a complete guide and probably won’t be enough to take a decision but sure will be useful to start to investigate a bit more about this great platform.
What is Heroku?
Heroku is a platform as a service (PaaS) acquired by Salesforce in 2011.
Let’s say it’s a smart hosting for your web apps (*)
(*) Even you can deploy a daemon (a.k.a Heroku worker), I would bet that most of the software deployed on Heroku are web applications
You developed your web application and then what?
Yo created a beautiful web application and now you want to publish it under your own domain http://www.myawesomeapp.com. You have a couple of options. One option is to hire a Virtual Private Server (VPS). Another option is to hire a dedicated server. Both of them require some sysadmin knowledge because most of the time you get a (literally) an OS with enough software to boot. For sure that has some advantages such as total control of security and performance. The main disadvantage I see is you lost focus on development to pay attention to backups, security, deployments, etc.
Concentrate on development, not in deployment
Even if you build your own blog where you document your experiences, you need a 99% uptime so you will have these main tasks:
- Configure the production environment
- Scale. Ok, only if you write lots and interesting articles 🙂
Seems lots of tasks just for a personal blog, right? (**)
Most of those tasks you can delegate to Heroku and concentrate more on development.
(**) That was just an example. For a personal blog, I really recommend WordPress
- Great support
- Nice uptime
- Large list of Add-ons
- A free plan to start learning and to have your testing environment (unless you do stress testing).
- Flexibility. Is not like a VPS where you are able to customize lots of things such as web server configuration and even the OS.
But wait… is not too expensive?
The answer depends on the value you add to your time and headaches.
Since most of the time we don’t have a sysadmin guy on our team, we will have to that work, taking time from our main task: development our cool app.
My experience with Java and Heroku
I’m involved in the Java world for 9 years and even more if I count years from the university. However, I started to use Heroku less than two years ago. In the past, I used to configure a server from scratch, install Tomcat, Glassfish, MySql, Iptables, Mail server (very painful), Apache, PHP, JRE, etc. Even it’s hard, it’s also fun to learn and see how sysadmin guys suffer 🙂
Currently, I’m involved in some projects with Java plus Heroku and It feels very comfortable do deployments just with one command without configuring so much stuff.
If you deal with sensitive data such as Salesforce org data, Heroku offers private spaces that have (among other things) special configuration for those cases.
Do you think I did not mention an important feature?
Probably there are lots of things I did not mention in this post, so now it’s your turn.