Deploying with Heroku - Setup on GitHub

Automating on-demand deployment

In this lesson, we’ll learn how to automate on-demand deployment. For this we need to manage lots of seemingly tedious details, such as making sure the application is deployed using the right hardware platform, the correct version of the host operating system, the proper web framework, the library dependencies, and so on. It can be a very daunting task to get that all correct, especially for developers who don’t already know this level of detail on their own systems, let alone the systems running in production.

Luckily, thousands of developers and systems operators before us have boiled the process of continuous delivery down to a stable set of tasks to perform for each deployment. Even better for us, we can take advantage of this accumulated knowledge by using tools and platforms purposefully built for solving this problem. The one we’ll be using in this course is the Heroku cloud platform.

The Heroku platform

Heroku is a cloud-based Platform-as-a-Service (PaaS). It’s designed to host internet-based applications and has lots of tools and services to make that kind of work safe, easy, and reliable. Started in 2007 by a handful of enterprising Ruby language developers, Heroku has transformed into a company that supports most of the major web programming languages and frameworks.

One of the key elements of Heroku’s technology is its use of what it calls dynos. These dynos are small operating-system units based on Linux. They’re meant to mimic a full-blown instance of Linux, but they do it in a very cost-effective and resource-efficient way. Each application we deploy on Heroku runs on one or more dynos. Our application is contained within these dynos, which are easy to build, start, stop, and even duplicate in real time.

Get hands-on with 1200+ tech skills courses.