A comprehensive guide to help you build, deploy, and troubleshoot cloud applications seamlessly using Heroku.
Heroku is one of the leading cloud platforms supported by several programming languages. It lets you develop applications without worrying about the infrastructure. You can instantly build, deploy, and troubleshoot the most advanced and robust cloud applications using a rich set of available tools. Just write your application and leave the rest to Heroku. Heroku helps you build the most feature-rich web applications using add-ons and multiple data sources that can be easily configured.
This book is about Heroku, but more importantly, it is about the ease with which a developer with limited availability or knowledge of deployment infrastructure can run and manage a cloud app 24/7/365. It will show how Heroku is language independent and does not lock the user to a particular operating environment.
What this book covers
Chapter 1, Hello Heroku, introduces you to the world of Heroku. It also provides a historical background on how Heroku evolved to what it is today followed by a basic understanding of Heroku's architecture. Finally, it takes you on a test drive to get a firsthand experience with the Heroku cloud platform.
Chapter 2, Inside Heroku, covers the foundational aspects of the Heroku platform. It covers the details of various components of the Heroku architecture, including the Heroku platform stack, the request routing system, the Logplex logging framework, the add-ons, the dyno (process), and the platform API.
Chapter 3, Building Heroku Applications, covers the principles governing building web apps on the Heroku platform. It also illustrates the process of building and configuring web apps besides covering the steps involved in preparing a production-ready app from your code using language-specific buildpacks.
Chapter 4, Deploying Heroku Applications, describes the application deployment process on the Heroku platform. It covers the basics of the Git distributed version control system and illustrates the most common source management operations. It also covers the concept of forking and cloning apps besides ways to optimize your app deployment. It also showcases various aspects of Heroku app release management process through illustrative examples.
Chapter 5, Running Heroku Applications, illustrates the process of running a Heroku cloud app in detail. It covers the Heroku command-line interface (CLI) used to perform Heroku operations such as creating or updating apps. It also explains how to use the Foreman tool to troubleshoot the apps locally before deploying them to the Heroku cloud. Additionally, it describes the key features of the Heroku dashboard related to running Heroku apps.
Chapter 6, Putting It All Together, sums up the learning about the foundations of the Heroku platform and illustrates the whole process of building, deploying, and managing Heroku apps using Java on the Eclipse app development platform.
Chapter 7, Heroku Best Practices, covers the details of best practices that developers can use not only to deploy but also to write apps on the cloud using the Cloud 9 cloud-based integrated development environment. This chapter also provides detailed coverage of best practices such as setting up the Heroku PostgreSQL database, configuring DNS for your web app, and optimizing applications to use higher end services provided by the Heroku platform.
Chapter 8, Heroku Security, covers two parts of the Heroku security puzzle—the developer communication with the Heroku platform and securing the Heroku platform from malicious attacks from the external world.
Chapter 9, Troubleshooting Heroku Applications, describes the techniques developers can employ to fix problems encountered while developing apps for the Heroku platform. It covers how to troubleshoot application downtimes, isolates HTTP request issues, debugs database problems, and runs production checks to warn you about potential issues. It also shows how you can use the maintenance windows to gracefully handle app upgrades.
Chapter 10, Advanced Heroku Usage, introduces the advanced features of Heroku. It covers the Heroku Labs feature, including Websockets, illustrates the Heroku Platform API through practical examples, and shows how developers can do social coding using the collaborative features of the Heroku dashboard.
Author: Anubhav Hanjura