I was fortunate to publish my first book about Cloud application development using Heroku (http://www.heroku.com ). The book came out in April 2014 and is published by Packt Publishing (http://www.packtpub.com ).
This blog item was long overdue as being the author, it is my responsibility to apprise the readers of what they should expect from this book. The do’s and don’ts. In this blog item, I review the whole book and cite what you (as a reader) should look for.
First things first. Heroku is an AWESOME platform as a service (PaaS). It is rich in features, seamless in deployment and nimble in execution. As a developer of cloud based apps, you have an amazing resource pool to work with on Heroku besides having an extremely rich library set (add-ons in Heroku parlance) to work with. I started learning Heroku about four years back because it was so easy and quick to deploy web apps on Heroku. In the process, I gained experience in the full stack web development and deployment ecosystem. I became familiar with Heroku the platform, the toolset around it and a rich set of add-ons you can use on Heroku.
I am from a school of thought that believes in fast execution and guaranteed return on investment. Heroku is just that. You write your apps and leave the rest to this amazingly robust, scalable and highly available platform. Also, Learning Heroku comes naturally if you have a UNIX background, because most of the client side interface (CLI) Heroku provides uses common unix utility names. Take for example the command to check the status of your Heroku process:
$ heroku ps
This book is my attempt to share my understanding of the Heroku platform. The first two chapters introduce you to the concepts of Cloud computing and what problem Heroku solves for you in that context. You also get an inkling of the Heroku overall component architecture and finally you take it for a spin and play with it.
Chapter 3, 4 & 5 are meant to get you going with building, deploying (running) and managing your cloud apps. My attempt is to make you familiar with the tools before you start using them, so I have introduced all concepts, techniques and tools before providing examples of using them. You will master the underlying principles too as you start using the runtime environment provided with Heroku. By the end of chapter 5, you would have gained a reasonably good exposure to working with your Heroku based cloud app.
After this, you can straightaway do something completely different (and needed) than what you have been doing all along. You try building a cloud app on Heroku using Java as your programming language and Eclipse as your development environment. This surprise is intentional. This is done to show you how easy it is to move to a completely different programming environment and work with Heroku as seamlessly as before. Add a Eclipse plugin for Heroku on the go and you are ready to go. Not to mention that Java based app templates the Eclipse plugin has built-in that lets you start from somewhere rather than doing everything from scratch.
The seventh chapter is important in many ways. It introduces you to the Cloud 9 IDE (http://c9.io )– a code development tool (like Eclipse) on the cloud, which has built-in integration with Heroku. It supports multiple version control systems (git, bitlocker) and provides a very intuitive development environment. I call it the “Eclipse of the cloud”. And that is not all. How can someone leave database integration and DNS configuration behind? These are two important aspects of any web app and that is what I cover in detail in this chapter. To wrap up the seventh chapter, I provide you hints on how to scale your large scale apps to use the 2X/PX dynos provided by Heroku.
The last three chapters are the “Advanced” aspects of the Heroku platform including How security is managed for developers writing apps for deployment on Heroku and techniques to run maintenance on your Heroku app and ways to troubleshoot it using multiple approaches depending on the root cause of the problem.
I would like to single out chapter 10 here which gives you a heads up of what is coming next or is in the current pipeline of production features for Heroku. These include the Heroku labs feature, support for Websockets and the Heroku REST API that helps you program against Heroku robust platform services and build your own end to end web apps.
I have also written an appendix for the book which covers the mobile application development toolkit called Appery.io (www.appery.io). I also show a step by step procedure to build a sample production ready mobile app that can run on iOS, Android or Windows. Along the way, I introduce you to Appery.io itself providing hints on how to use the different features of this wonderful mobile app development platform for the cloud. And what makes me particularly happy is Appery.io’s out of the box integration for deploying your mobile app on Heroku. How easy is that? Try it.
In the end, I would like to thank Packt publishing for being patient with me and coming out with my book like I wanted it to be. The book is for beginners and intermediate level Heroku users. The book may seem verbose at times but that is intentional. The goal is to reaffirm what you have learnt earlier – again and again. It has been a pleasure writing this book. If you need any help, guidance about Heroku or How to write a book J, please feel free to reach out to me at ahanjura <dot> gmail <dot> com. I would be glad to help. Thanks for reading so far.