Launch, Run, and Scale Your Application in the Cloud with Heroku

Image for Launch, Run, and Scale Your Application in the Cloud with Heroku

Heroku is a cloud-based service that offers a single platform to configure, deploy, run, and, most importantly, scale web applications.

When it launched in 2007, it addressed a specific development bottleneck that startups were experiencing in getting their applications to market: deployment time. Entrepreneurs and startups were able to build applications quickly using rapid prototyping languages like Ruby and Python, but when it came to the deployment stage, things slowed down. As teams created new and better iterations, deployment again slowed the development cycle, making it harder to update apps and scale up as business grew.

With Heroku, teams can deploy any application in the cloud with a single push from Git. It also makes it easy to add resources when you need them, where you need them. On Heroku’s elastic, all-under-one-roof platform, an application can be versioned, expanded, and modified over time. It’s all managed for you, behind the scenes.

In this article, we’ll explore some details of the Heroku cloud computing platform, how deployment works, and how its integration into Salesforce has leveraged its data capabilities for some of the largest, most high-traffic, cloud-based applications and services on the web.

What Is Cloud Computing?

Let’s start by taking a look at cloud computing and how it’s changed the development landscape. Cloud computing represented a major shift in how we use the web for business, how we access content, and how we think about the server-side operations of websites and applications. By taking the bulk of local hardware requirements (like servers, databases, network infrastructure, and server software) and moving it to remote servers—where they’re accessible via nothing more than a web browser—cloud computing disrupted the traditional client-server model. It’s faster, easier to work with, and lets businesses grow when and how they want.

Cloud computing “as a service” has streamlined the way we store, send, and edit data. To make this all possible over just a web browser, cloud-based apps have to be hosted on major (and often, multiple) servers that can handle huge amounts of traffic and transfers of data.

Taking cloud computing’s streamlined, remote approach a step further, Heroku brings the actual building and execution of applications to the cloud—creating a cloud platform as-a-service (PaaS) that keeps all of an application’s build, execution, and deployment phases under one roof—right at your fingertips. Next we’ll look at how Heroku actually deploys applications and a few of its most important features.

Heroku as a Cloud-Based Deployment & Hosting Service

Today, Heroku doesn’t cater only to startups—its fast and simple development and deployment cycle appeals to enterprise-level clients as well. The service has expanded to offer the Heroku Enterprise platform and a Heroku Postgres SQL database-as-a-service for managing and processing large amounts of data in the cloud. With virtual run-time environments, data management, plenty of third-party add-ons to extend an app’s functionality, and a built-in integration with Salesforce called Heroku Connect, Heroku makes it incredibly easy to deploy, run, and scale applications on its platform.

Heroku is compatible with applications written in the following programming languages and frameworks, with no changes whatsoever to the code required—just a few dependencies and a single Git command.

You’re not limited to these languages, however. Heroku can support any other programming language or framework thanks to Build Packs, a component of its build phase, which we’ll cover next.

DEPLOYING APPLICATIONS WITH HEROKU

Heroku has been used by companies like GitHub, Facebook, Fitbit, MailChimp, TripAdvisor, and more. To demonstrate how much goes on behind the scenes with Heroku, here’s a look at how its cloud-based deployment process works:

deploying apps with Heroku
Here’s a closer look at each step before, during and after Heroku’s deployment in the cloud:

  • Prepping your application. Heroku makes it very easy to prep your application for deployment. It takes your application’s source code written in one of the above languages; a dependency description, which is any special instructions your application requires to run; and, if you didn’t use a framework like Ruby on Rails or Django, a procfile (a file that outlines your app’s processes and provides commands for each process). These are the only components Heroku needs to build your application and generate an executable file.
  • The procfile is important when you’re ready to scale your application in Heroku. Because it exposes architectural components of your application, you can grow aspects of your application one at a time, then push new versions back through Heroku to be deployed.
  • Pushing code to Git. Once you’re ready to push your application to Heroku with the above components, a simple command imports your code from your Git repository to the Heroku platform: “git push heroku master.” From here, Heroku initiates the build.
  • Build phase. At this phase, Heroku will first create any assets necessary for your application (output needed for the application to run, like compiling your code) then a Build Pack will combine this output with the application to create the slug. The slug is a finished product: it’s the bundled file that’s ready for execution.
  • Execution phase. The slug is the foundation of the execution phase. Once it’s created, Heroku handles the operating system for your application by using mini operating systems called “dynos”—isolated Unix containers that provide an environment for your application to run. They’re essentially levels of resources you need to run your app—if you need to scale up, you can do so with more dynos. The dyno manager keeps the various dynos running, and automatically refreshes them behind the scenes.
  • Configuration & add-ons. Heroku then binds the slug with the configuration in a config vars file that is separate from your code and contains any environmental variables like credentials or developer environments, which are likely to change.  Heroku also binds the slug with any add-ons you’ve opted to include in your application. Add-ons are third-party cloud services that extend your application’s functionality and are available in the Heroku’s app marketplace.
  • The release. This is the final product Heroku delivers. The release binds the slug, config, and add-ons together and gets executed. Note: A new release is issued for every new version of your application that you deploy. Heroku saves all the old releases, however, so it’s easy to revert back to or deploy an older version.

All of the above happens on the Heroku platform with a single push to Git—and the result is an application hosted in the cloud that’s easy to maintain and grow with any number of Heroku’s additional features.

awesome job post

Heroku Benefits

Once your application is deployed. Heroku has a few additional services and value-added extras that make development and continued maintenance streamlined and easy. These include:

  • Add-ons: Customize your application however you want with add-ons from Heroku’s marketplace. These third-party services include data stores, big data analysis, caching, payments, security, email, testing, and network services that help extend the functionality of your application.
  • Rollbacks: If a new version of your application breaks, you can quickly revert back to a previous version.
  • The Dashboard: This feature gives you centralized access to all deployed apps and to your database.
  • Metrics: Available in the Dashboard when apps have more than one dyno, this feature gives insights into how an application is running (e.g., response times, errors, memory, etc.) so problems can be easily spotted and fixed.
  • Heroku Postgres SQL: Heroku’s relational database-as-a-service handles data stores, backups, and utilities so you don’t have to. Get a smaller plan, or opt for Premium or Enterprise Postgres plans.
  • Postgres DbX: Similar to metrics, this allows developers to see how a database is functioning and fine-tune any performance issues.

Heroku & Salesforce Together: Heroku Connect

Heroku’s approach to cloud-based big data capturing and management made it a natural match for Salesforce, which acquired Heroku in 2010. As web applications started capturing and processing large amounts of data in Heroku, companies were looking for an easy way to connect this data with other systems in their organization such as Salesforce’s customer relationship management (CRM) software-as-a-service (SaaS). The result? Heroku Connect.

Heroku Connect makes it easy for you to share and update data between Heroku and Salesforce through bi-directional synchronization. Heroku Connect seamlessly takes data from Heroku-hosted campaigns, marketing sites, mobile applications, APIs, and web-based services and merges it with Salesforce software.

Post a job on Upwork. It's free!
Carey Wodehouse

by - Freelance Content Marketer and Writer

Carey Wodehouse is a freelance content marketer and writer based in Richmond, VA who’s worked for clients ranging from online retailers and global market research… more