Heroku is a cloud platform as a service that allows you to upload your code for testing and production. Heroku does most of the deployment task for you, so you can forget (at least in the beginnings) about setting up Linux machines, web servers, load balancers, and so on. Also scalability is pretty simple to do as long as your app is not very complex; its more about how much money you can spend. You need to specify some dependencies and basic BBDD config and you can deploy your code everytime you need just pushing it to Heroku using Git.
Even though Heroku is easy to integrate with your project, it is very important to understand how Heroku is working inside and its structure if you want to know how exactly what this could platform is doing with your app. In this post we explain the most basic concepts to give you an overview of the platform. We will rely on a diagram we have for chattyhive but 95% of its content is valid for any other app that could be using Heroku, even if it is not developed with the Django framework.