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 it works?
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 required libraries for code pushed.
The dynos are nothing but lightweight Linux containers
Heroku’s high level view for hosted application:
When you push your code to the Heroku container, it converts it into a slug and autoruns all your migrations and scripts and your application is hosted.
How it’s different
The platform is built keeping in mind for developers to integrate applications easily. Heroku is a fully managed platform which helps developers to keep focus more on application development.
You can provision a new application on Heroku in seconds. Deploying your code and restarting your processes typically takes just a few minutes.
- Heroku provides the facility to add application config variables and change the way your app behaves.
- Heroku has inbuilt OS and related services. 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 requirement.
- 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 for scheduling any task which you want to run on a regular basis
- Support form Modern Open Source Languages (Node.js, Java, Ruby, PHP, Python, Go, Scala, Clojure)
- Not at all need of DevOps Engineer to maintain Heroku platform
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.
Big Brands like Toyota Europe, Citrix, Westfield, Yesware, SaleForce are 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.