The Heroku Platform
Published: 2024-04-08 06:31:38

---

One of the first cloud, _Platform as a service_ (PaaS), products that has been in development since 2007 and originally ONLY supported the Ruby language with the intent for supporting projects compatible with the [Rack](https://en.wikipedia.org/wiki/Rack_(web_server_interface)) web server interface. The Heroku we know today actually supports several different languages in addition to Ruby. With that being said Heroku is within the realm of being classified 
as a [Polyglot Platform](<https://en.wikipedia.org/wiki/Polyglot_(computing)>) due to developers having access to features for building, scaling, and running applications similarly across the majority of those languages.

<u>Current supported languages:</u>
- Node.js
- Python
- Java
- PHP
- Go,
- Scala
- Clojure.



[_Architecture_](https://en.wikipedia.org/wiki/Heroku#:~:text=Applications%20that%20are,platform.%5B23%5D): 

> "Applications that are run on Heroku typically have a unique domain used to route HTTP requests to the correct
> application container or [dynos](https://en.wikipedia.org/wiki/Heroku). Each of the dynos are spread across a "dyno grid" which consists of several servers. Heroku's Git server handles application repository pushes from permitted users. All Heroku services are hosted on Amazon's EC2 cloud-computing platform."


![Web Dynos](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3n4kdqx2mkwaaong3b8l.png)

**Runtime**

Applications on Heroku run inside virtual, lightweight, Linux containers, called [Dynos](https://en.wikipedia.org/wiki/
Heroku), also referred to as smart containers, on a fully managed, dependable runtime environment that ensures configuration,
load balancing, security and everything in between that is essential for production. Code can be written using any of the
supported languages to a build system that produces an execution ready application that would not require manual intervention due to the constant upkeep of their language stacks. Dyno types vary depending on application sizes from small scale to high traffic services.

**Data Services and Ecosystem**

Developers have access to the [Heroku Elements Marketplace](https://elements.heroku.com/), that offers the ability to add necessary technologies and technical solutions specifically to support any and all stages of application development and operations that can be integrated with ease. Additionally, developers have access to 200+ fully managed cloud service [add-ons](https://www.heroku.com/elements/addons) allowing the ability to extend application functionality and streamlined control, Buttons, and Buildpacks for stack customization that can be installed and managed, along with pre-integrated services like MongoDB, ClearDB MySQL, etc, on their CLI and/or Dashboard.

<u>Fully managed data service add-ons:</u>
- Heroku Postgres(SQL)
- Heroku Redis
- Apache Kafka on Heroku

**Developer and Operational Experience**

Heroku defines the Developer Experience(DX) as "an app-centric approach to software delivery so developers can focus on
creating and continuously delivering applications, without being distracted by servers or infrastructure." Furthermore,
developers can directly deploy from common tools such as GitHub, or other CI systems, and Git. As for the Operational Experience(OpEx), developers can rest a little easier when working to identify issues, remedy them, and troubleshooting with the assistance that is provided to them when addressing application health. Tools are provided to notify you in the case something goes awry. Also, scaling, both vertically and horizontally instantly, can be applied automatically to your smart containers if the response time for requests exceed a specified threshold. Lastly, the Operational Experience wouldn't be complete without access to the built-in monitoring of all vital deployment information
through Application Metrics. Above all, these features don't come at any additional cost for access.

**_The age old question_**

Is it safe? I can comfortably assume that everyone worries about the safety of their data and Heroku takes great pride in
their endeavor to protect the sensitive data entrusted to them. Just to start, Heroku maintains [ISO](https://en.wikipedia.
org/wiki/International_Organization_for_Standardization),
[SOC](https://en.wikipedia.org/wiki/System_and_Organization_Controls), [HIPPA](https://en.wikipedia.org/wiki/
Health_Insurance_Portability_and_Accountability_Act), and [PCI](https://en.wikipedia.org/wiki/
Payment_Card_Industry_Data_Security_Standard) compliance. On top of that,they perform regular audits to continuously
solidify the trust their customers have in them.

**Additional Heroku Products**

<u>_Heroku Connect_</u>
Created Heroku Applications can easily integrate within Salesforce deployments ad scale due to seamless data synchronization between Salesforce organizations and Heroku PostGres Databases.

<u>_Heroku Teams_</u>
Team management tool for collaboration and ease of control for bringing developers, tools, and processes together for efficient software development inside a team like environment

<u>_Heroku Redis_</u>
Fully managed service provided by Heroku to help manage CLI instances, giving customers performance visibility, and associate PostGres Data using SQL tools to fain business insights

<u>_Heroku Enterprise_</u>
Helping large companies improve collaboration within the different teams through provided services and features. Some of
these features include identity federation, access controls, and private spaces for managing development processes, users,
and resources.

<u>_[Heroku Plans](https://blog.heroku.com/new-low-cost-plans#:~:text=PRODUCT%20PLAN,MB%20of%20storage)_</u>

![product plans/cost/features](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sznd52zsr7nyouvqfyzy.png)



I hope this brief rundown of what deploying on Heroku can offer you as a developer. Although they did do away with their free packages in 2022, Id say with the wide range of provided tools even at the lowest tier Heroku is definitely a deployment service to consider when looking around.