{"id":2820,"date":"2022-12-12T01:32:00","date_gmt":"2022-12-12T07:32:00","guid":{"rendered":"https:\/\/www.supportpro.com\/blog\/?p=2820"},"modified":"2026-03-06T02:54:54","modified_gmt":"2026-03-06T08:54:54","slug":"heroku","status":"publish","type":"post","link":"https:\/\/www.supportpro.com\/blog\/heroku\/","title":{"rendered":"What Is Heroku? Complete Guide to the PaaS Cloud Platform"},"content":{"rendered":"\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/www.heroku.com\/\">Heroku<\/a> is a cloud service for hosting your applications. It is a Platform as a Service (PaaS) that supports auto-scaling and seamless deployment. <span style=\"font-weight: 400;\">Heroku <\/span><\/span>is<span style=\"font-weight: 400;\"> primarily uses Git to deploy applications. The platform provides developers with a cloud-based environment to code, test, and run applications without worrying about underlying infrastructure.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Heroku can currently deploy apps written in the following languages :<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Ruby<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Php<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Node.js<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Python\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Java<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Clojure<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Scala\/Play<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Go<\/span><\/li>\n<\/ul>\n\n\n\n<p><span style=\"font-weight: 400;\">Applications that run on Heroku usually have a unique domain (typically &#8220;applicationname.herokuapp.com&#8221;) that routes HTTP requests to the correct dyno.&nbsp;The containers used at Heroku are called \u201cdynos.\u201d Dynos are isolated, virtualized Linux containers that are designed to execute code based on a user-specified command.&nbsp; Each of the application containers or dynos are spread across a &#8220;dyno grid&#8221; which consists of several servers. Heroku&#8217;s Git server handles application repository pushes from permitted users.<\/span><\/p>\n\n\n\n<p>Heroku makes it dead simple to :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Deploy your Rails app via command line using git and Heroku Toolbelt.<\/li>\n\n\n\n<li>Add add-ons like sendgrid, newrelic, cloudinary with a single command.<\/li>\n\n\n\n<li>Rollback to previous versions, as it maintains complete versioning history.<\/li>\n\n\n\n<li>Run your website virtually free during initial stages, when you are using starter version of add-ons and your website stores fewer data on Heroku.<\/li>\n<\/ul>\n\n\n\n<p><span style=\"font-weight: 400;\">All Heroku services are hosted on Amazon&#8217;s EC2 cloud computing platform.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">The working can be summarized into two major categories- specifically&nbsp;<b>Deploy &amp;&nbsp;Runtime<\/b><\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">The following two sections recapitulate the main components of the platform, separating them into these two buckets.<\/span><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a class=\"lightbox\" href=\"https:\/\/www.supportpro.com\/requestquote.php\"><img fetchpriority=\"high\" decoding=\"async\" width=\"400\" height=\"250\" src=\"https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2018\/09\/heroku.png\" alt=\"Heroku- Cloud Application Platform\" class=\"wp-image-2827\" srcset=\"https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2018\/09\/heroku.png 400w, https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2018\/09\/heroku-300x188.png 300w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><span style=\"font-weight: 400;\">1.<\/span><b>Heroku <\/b><b>Deploy<\/b><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">The main contents of the development are the source code, related dependencies if they exist, and a Procfile for the command.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">The application is sent to Heroku using either of the following: Git, GitHub, Dropbox, or via an API.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">There are packets which take the application along with all the dependencies, and the language runtime and produce slugs. These are known as build-packs and are the means for the slug compilation process.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">A slug is a combination\/bundle of the source code, built dependencies, the runtime, and compiled\/generated output of the build system which is ready for execution.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Next is the Config vars which contain the customizable configuration data that can be changed independently of the source code.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Add-ons are a third party, specialized, value-added cloud services that can be easily attached to an application, extending its functionality.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">A release is a combination of a slug (the application), config vars and add-ons.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Heroku maintains a log known as the append-only ledger of releases the developer makes.<\/span><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span style=\"font-weight: 400;\">2.<\/span><b> Heroku <\/b><b>Runtime<\/b><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">The main unit which provides the run environment is the Dynos which are isolated, virtualized Unix containers.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">The application\u2019s dyno formation is the total number of currently-executing dynos, divided between the various process types the developer has scaled.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">The dyno manager is responsible for managing dynos across all applications running on Heroku.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Applications that use the free dyno type will sleep after 30 minutes of inactivity. Scaling to multiple web dynos, or a different dyno type will avoid this.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">One-off Dynos are temporary dynos that run with their input\/output attached to the local terminal. They\u2019re loaded with the latest release.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Each dyno gets its own ephemeral filesystem with a fresh copy of the most recent release. It can be used as a temporary scratchpad, but changes to the filesystem are not reflected other dynos.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Logplex automatically collates log entries from all the running dynos of the app, as well as other components such as the routers, providing a single source of activity.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Scaling an application involves varying the number of dynos of each process type.<\/span><\/li>\n<\/ol>\n\n\n\n<p><span style=\"font-weight: 400;\">A diagrammatic view of the working of Heroku Platform is shown below.<\/span><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a class=\"lightbox\" href=\"https:\/\/www.supportpro.com\/requestquote.php\"><img decoding=\"async\" width=\"484\" height=\"486\" src=\"https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2018\/09\/ArchitectureHeroku.png\" alt=\"Heroku Platform -diagrammatic view\" class=\"wp-image-2824\" srcset=\"https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2018\/09\/ArchitectureHeroku.png 484w, https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2018\/09\/ArchitectureHeroku-150x150.png 150w, https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2018\/09\/ArchitectureHeroku-300x300.png 300w, https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2018\/09\/ArchitectureHeroku-80x80.png 80w, https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2018\/09\/ArchitectureHeroku-144x144.png 144w\" sizes=\"(max-width: 484px) 100vw, 484px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><a class=\"lightbox\" href=\"https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2018\/09\/ArchitectureHeroku.png\"><br><\/a><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">To conclude, Heroku is a constantly expanding and improving the platform for easily deploying a wide range of web-based projects with an advantage of deploying web applications with limited features of Heroku for Free. In short, this means that it is a framework that makes it easier for developers to develop, deploy and test many applications.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">If you require help, <a href=\"https:\/\/www.supportpro.com\/requestquote.php\" title=\"\">contact SupportPRO Server Admin<\/a><\/span>:<\/p>\n\n\n\n<div class=\"wp-block-media-text alignwide has-media-on-the-right is-stacked-on-mobile is-vertically-aligned-center has-white-background-color has-background\"><div class=\"wp-block-media-text__content\">\n<p class=\"has-large-font-size\">Facing issues? <\/p>\n\n\n\n<p class=\"has-large-font-size\">Our technical support<br>engineers can solve it. <\/p>\n\n\n\n<!--HubSpot Call-to-Action Code --><span class=\"hs-cta-wrapper\" id=\"hs-cta-wrapper-3350a795-db50-482f-9911-301930d1b1be\"><span class=\"hs-cta-node hs-cta-3350a795-db50-482f-9911-301930d1b1be\" id=\"hs-cta-3350a795-db50-482f-9911-301930d1b1be\"><!--[if lte IE 8]><div id=\"hs-cta-ie-element\"><\/div><![endif]--><a href=\"https:\/\/cta-redirect.hubspot.com\/cta\/redirect\/2725694\/3350a795-db50-482f-9911-301930d1b1be\" ><img decoding=\"async\" class=\"hs-cta-img\" id=\"hs-cta-img-3350a795-db50-482f-9911-301930d1b1be\" style=\"border-width:0px;\" src=\"https:\/\/no-cache.hubspot.com\/cta\/default\/2725694\/3350a795-db50-482f-9911-301930d1b1be.png\"  alt=\"Contact Us today!\"\/><\/a><\/span><script charset=\"utf-8\" src=\"https:\/\/js.hscta.net\/cta\/current.js\"><\/script><script type=\"text\/javascript\"> hbspt.cta.load(2725694, '3350a795-db50-482f-9911-301930d1b1be', {\"useNewLoader\":\"true\",\"region\":\"na1\"}); <\/script><\/span><!-- end HubSpot Call-to-Action Code -->\n<\/div><figure class=\"wp-block-media-text__media\"><img decoding=\"async\" width=\"904\" height=\"931\" src=\"https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2022\/09\/Free-server-checkup.png\" alt=\"guy server checkup\" class=\"wp-image-12943 size-full\" srcset=\"https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2022\/09\/Free-server-checkup.png 904w, https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2022\/09\/Free-server-checkup-291x300.png 291w, https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2022\/09\/Free-server-checkup-768x791.png 768w, https:\/\/www.supportpro.com\/blog\/wp-content\/uploads\/2022\/09\/Free-server-checkup-585x602.png 585w\" sizes=\"(max-width: 904px) 100vw, 904px\" \/><\/figure><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Heroku is a cloud service for hosting your applications. It is a Platform as a Service (PaaS) that supports auto-scaling and seamless deployment. Heroku is primarily uses Git to deploy&hellip;<\/p>\n","protected":false},"author":4,"featured_media":13033,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[3],"tags":[94,53],"class_list":["post-2820","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles","tag-aws","tag-cloud"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/posts\/2820","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/comments?post=2820"}],"version-history":[{"count":22,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/posts\/2820\/revisions"}],"predecessor-version":[{"id":15949,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/posts\/2820\/revisions\/15949"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/media\/13033"}],"wp:attachment":[{"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/media?parent=2820"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/categories?post=2820"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.supportpro.com\/blog\/wp-json\/wp\/v2\/tags?post=2820"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}