Heroku

What is Heroku

Heroku is a cloud platform – Platform as a Service which is a container-based fully managed system on AWS. Data Services, Ad-ons, Plug-ins are fully integrated into Heroku for deployment and execution of modern applications.   

The Heroku provides the developer-centric approach which helps users to be associated closely with the tools and workflows integrated with it.  

Heroku is a Platform as a Service built on top of AWS, which provides a ready runtime environment and servers which eventually benefit development and DevOps teams for seamless integration to different development tools.

How does it work?

When the code is pushed to Heroku Git, a slug (VM) gets created and it launches the VM (called dyno) to validate and update the environment with the required libraries for the code pushed. 

The dynos are nothing but lightweight Linux containers.

When you push your code to the Heroku container, it converts it into a slug and autoruns all your migrations and scripts. Your application is hosted.

How it’s different

The platform is built keeping in mind that developers can integrate applications easily. Heroku is a fully managed platform that helps developers focus more on application development.

You can provision a new application on Heroku in seconds. Deploying your code and restarting your processes typically take just a few minutes.

Advantages

  • Heroku provides the facility to add application config variables and change the way your app behaves.
  • Heroku has an inbuilt OS and related services. There is no need to configure the infrastructure required for the application. A novice person can do the deployment without focusing on infrastructure.
  • Easy subscription plans to enroll as per the requirements.
  • Wonderful live dashboard for application/platform performance monitoring.
  • Notification/Alerting system for any critical/configured spikes 
  • Heroku provides add-ons for all your needs. You name it, they have it.
  • Heroku Scheduler to schedule any task that you want to run on a regular basis.
  • Support from Modern Open Source Languages (Node.js, Java, Ruby, PHP, Python, Go, Scala, Clojure)
  • No need for a DevOps Engineer to maintain the Heroku platform.

Try yourself:

5 Steps to deploy your application on Heroku:

Create a personal app:

1. Login to Heroku

Under personal apps, click on create a new app

Choose a personal app under team drop down and add the app. name

Click on create an app

2. Install Heroku

$ sudo add-apt-repository “deb https://cli-assets.heroku.com/branches/stable/apt ./”
     $ curl -L https://cli-assets.heroku.com/apt/release.key sudo apt-key add –
     $ sudo apt-get update
     $ sudo apt-get install Heroku

3. Login to Heroku using: Heroku login

4. Create a Heroku directory in local

$ git remote add Heroku your_heroku_repo_url
$ git remote -v This should have two remotes origin pointing to your git and Heroku
$ pointing to your Heroku repository

5. To deploy your application

$ git push heroku master: this will deploy your code on Heroku

Challenges using Heroku

  • Inbound and outbound latency is high. 
  • Heroku does not allow you to run any other services on dynos. 
  • It proves to be expensive for large and high-traffic apps.
  • Limited in types of instances
  • Not ideally suited for heavy-computing projects.

Conclusion:

Big Brands like Toyota Europe, Citrix, Westfield, Yesware, and SaleForce are a few examples who use the Heroku platform. 

We have an expert team of engineers who can help you implement Heroku. Please feel free to connect in case of any queries.

uday-gaikwad

Development Manager