Across the country, companies are on a quest to find an easy button to fast-track delivery of applications to customers. An accumulating number of side tasks are continually pushing out their time to market.
A central issue that has plagued app development companies is the stretched-out phase of deployment that begins after developers have written the code, and the lifecycle management process thereafter.
“It’s really 3,000,000 steps that you need to go through to get the code out to your customers,” said Adam Zimman, sr. director of product marketing at Heroku.
From building to scaling, the myriad steps and chain of decisions that make up the journey, amount to a lot of secondary tasks that consume time and resource from the developers’ routine. Most of it is manual, and developers liken it to flying blind with no safety harnesses.
Confusingly, industry averages will have you believe that the length of deployment is measured in hours, but most teams do not stack up to that. For the majority of the industry, deployment drags on for weeks. With too many moving parts, frequent needs for change, and no clear milestone, developers have to walk a tightrope.
A fitting solution, they say, is to use automation to keep the process closed, quick and painless.
A Salesforce company since 2010, Heroku has designed a developer-friendly Platform as a Service (PaaS) solution for creating, deploying and managing applications that it says uplifts developer experience from poor to “extraordinarily pleasurable”.
The platform makes a quick work of launching applications into the market bringing up companies to be first-to-market players.
Built with the goal to end the need for developers to get into the weeds of infrastructure plumbing and app maintenance, Heroku takes over the grunt work that slows down innovation and delays release of new applications. This leaves them in full control of ideation and coding, the real work.
“Heroku is that platform that engineers go to when they need things to work, and don’t want to think about it,” said Zimman while presenting at the AppDev Field Day event in California, “because we take care of all of the scaling, making sure that the apps stay up and running.”
Under the hood, the solution offers a breadth of functions that include integration, lifecycle management, automation, configuration, provisioning and autoscaling – to enable this. The sweeping abstraction gets customers “from app idea to customer experience as quickly as possible with as little effort as possible,” he said.
Heroku is a “very opinionated system. We think about all of the abstractions that you need to normally consider when bringing an application to market.”
An example is cloud migration. Companies struggle migrating workloads to public cloud platforms because of the change it entails. “Heroku is a great way to shortcut that lifecycle and be able to migrate quickly and easily,” said Zimman. “You don’t have to worry about understanding the 7000 plus services that you can get access to on AWS. Instead with Heroku, you take advantage of the primitives that you need, and we take care of the rest.”
Heroku is a “polyglot platform”, meaning it can support applications written in different programming languages the same way. There is no need to make changes to run them on Heroku, say its makers. If it’s written using a supported language or framework, Heroku will work it out.
Here’s everything that Heroku does under the hood to make lives easy for developers, and shorten the time-to-market for companies.
Applications are deployed on Heroku via a Heroku app which is essentially a second instance of the app codebase hosted on Heroku. Users are required to introduce the source code from a standard Git repo. As Heroku receives the app source, it initiates a build. Code is compiled, dependencies are retrieved, necessary assets are created, and finally, everything is assembled into what is known as a slug.
This slug, featuring all of the fundamental pieces, is a pre-packaged copy of the application that is ready to run. Heroku executes the slug on a dyno which is an isolated Unix container environment designed to execute code based on user-specific command.
A user can choose to run any number of dynos at a given time from the dyno manager. As a new version of an app is deployed, existing dynos are killed off and substituted with new ones, keeping the current formation intact.
All dyno activities, and logs from the routers and other platform components, are streamed into Logplex, a system that records entries in real-time. Applications can be easily scaled by increasing the number of dynos running.
Configurations sit outside the code and can be tweaked independently from the source code. They get stored in configuration vars from where they are programmatically pulled down at runtime.
Zimman brought a round of projected numbers to underline the developer efficiency gains. Not having to worry about or learn all of the ways different components fit together, may lead to a jump of up to 40% develop productivity, and 30% reduction in developer expenses, he said.
“We’re providing a prebuilt template that they’re able to use to deploy applications much more quickly.”
A growing marketplace of add-on services featuring over 500 add-on and build packs offers customers ready-to-use capabilities. Messaging, backup, search, database, uptime alerts, email services – users can choose and attach them to the applications as required.
Heroku is commonly mistaken for a product designed for startups, but in its current form, the product no longer fits that mold, said Chris Peterson, sr. director of product management.
“In the last few years, the company has worked to make sure that Heroku scales as the business scales.”
While the platform adapts to the changing business requirements, users are in control of the resources they want to use and can add features as they go.
Developed in 2007, more than 13M apps and 38M managed datastores have been built on the Heroku platform till date.
A significant number of Salesforce apps run on the platform. “We have a lot of very deep integrations to extend the Salesforce ecosystem quickly, easily and seamlessly, so that people can build their Salesforce apps with Heroku.”
Learn more about Heroku by watching their presentations from the AppDev Field Day event.