From Zero to Heroku in Three Posts, Part 1
With Twitter, Facebook, Tumbler, LinkedIn, Instagram, GitHub, StackExchange, MySpace (is MySpace still a thing?) there is a lot of places to put your personal brand. You, dear reader, probably have a few of these yourself. Have you ever wanted a central location you could direct people to, one that linked to all your various identities? Luckily there are solutions, free ones in fact. The one I will be talking about in this series is Heroku, a web host with a unique way to do things.
First off, let’s figure out what Heroku does before we try to harness its awesome power. Something Heroku has no shortage of is the languages it supports. Most hosts support PHP, Python, and Ruby with a few supporting Java. Heroku on the other hand officially supports eight different languages (as of writing) and unofficially supports many more using its buildpack system.
If you want to run a server in LISP, who am I to stop you?
Then there are the computational resources, the driving force for your site or app. Instead of having one monolithic app, Heroku encourages you to break your app into compartmentalized processes that it calls dynos. These dynos are split into two categories: web and worker dynos. The web dynos handle incoming requests and are generally what you think of with a webserver. The worker dynos are for performing asynchronous or long running tasks. You see, web dynos are supposed to respond swiftly, taking no longer than 30 seconds to respond to a request. To work around this, heavy lifting should be offloaded to the worker dynos, which have no qualm chewing away at a task for as long as it takes. If you are feeling the strain of a lot of traffic, simply move a slider to gain additional dynos. This is great for a surge after a targeted marketing effort.
Finally are all the rest of the services that make a server tick. There are a simply dizzying number of add-ons to choose from. Would you like your app to access static documents, cached in memory? Covered! How about send emails and push notifications? Clear to go! Send messages between closely monitored processes for a wildly scalable app? Sure thing! All of these add-ons mean that you and your team can work in the technology that is more comfortable and better suited for the task at hand.
Just because you can have MySQL and PostgreSQL doesn’t mean you should.
Phew! So after that advertisement, how in the world does that help you? Well, Heroku sells its services based on the amount of time that you leave your dynos running. You are given 750 free hours a month. Hmm, 31 days in a month max, times 24 hours in a day comes out to 744 hours. What luck, that is just enough to leave one dyno running full time for a month. With that dyno at your disposal, the prospect of a no cost personal site is starting to become clear.
Part II of this series requires git to be installed on your computer and a working knowledge of HTML & CSS.