Introducing 'heroku docker:release': Build & Deploy Heroku Apps with Docker

When Heroku launched the Cedar container stack 4 years ago, we became one of the first companies to use Linux Containers (LXC) to create a secure, performant and scalable cloud platform. Heroku has been a leader in the containerization movement, and we’ve spent years hardening, honing and evolving our runtime container stack. This means that developers can git push apps written in their favorite language and Heroku will build containers that are deployed to a production-quality environment. With this approach, developers are set free from managing operating systems, package updates, server infrastructure and their inevitably complex interactions.

Containers are essential to making this model work, as they create firm abstractions and boundaries between an application’s code and all the dependent pieces necessary to make them run. And the benefits of containers for deploying and running apps are familiar to most developers using Heroku; freedom from having to manage down-stack components, confidence that apps will continue to run as operating system and environment dependencies change, and the ability to start, stop and scale apps quickly.

As the container ecosystem has evolved, there’s an opportunity to bring the benefits of this technology not just to running apps on the server, but also building them on the desktop. In doing so, the hope is to address the challenges of creating and managing local development environments, as installing and managing local language runtimes, frameworks and associated dependencies is still a major time-suck for developers — problems that are made worse by the need for local environments to match production so that bugs can be identified and fixed before deploying.

Today, Heroku is releasing a beta version of heroku docker:release. This new CLI functionality leverages the increasing availability of Docker on the desktop, and combines the benefits of local container development with the proven Heroku Cedar container runtime. Using Docker and heroku docker:release, developers can run apps in containers similar to the Heroku runtime and get high fidelity dev/prod parity, whether they’re developing on OS X, Linux or Windows.

Read more →

#WIT: Inspiring the World’s Next Generation of Female Leaders in Tech

At Heroku and at Salesforce, we’re always looking for ways we can help increase the number of young women with access to careers in science, technology, engineering and math. Recently, thanks to a Heroku engineering manager’s involvement on this issue with a local school, we hosted a Technovation Challenge event at the Heroku offices. We wanted to share the story about this great program - the Technovation Challenge is an annual competition, and you could do something similar in your community!

Read more →

Introducing Session Affinity

Today we’re excited to announce public beta support for HTTP session affinity, a feature that makes building real-time applications easier than ever. Session affinity improves end user experience in certain types of applications and architectures where you require some level of extra state within your application code, because it ensures related requests get routed to the same instance of your code. This improves performance reducing the need to go and get the needed state for a specific user.

At high level, here's how it works: When you enable session affinity on your application, the Heroku router will set a special cookie on every HTTP request. This cookie will allow our routing layer to consistently route requests for a client session to the same dyno. This means you can reduce the roundtrip needed to get various session data for a user making your real-time applications fast and responsive.

Read more →

PostgreSQL 9.4 General Availability

We’re pleased to announce PostgreSQL 9.4 in general availability for Heroku Postgres. After announcing the beta earlier this year, we’ve had many developers provision databases against this new version. Throughout the beta period, developers raved about the new data type along with the performance enhancements to materialized views. This uptake by early adopters demonstrates an interest in everything that the new version of PostgreSQL provides, from features to performance.

Read more →

Announcing Heroku Elements – The Marketplace for the Builders of the App Economy

These days, apps are more composed than built. Long past are the days of spinning up your own Elasticsearch cluster to add search to your application. Instead we borrow from previous projects, and adapt a template as a good foundation. It’s a great improvement – but the process of keeping up to date with the right services, tools, and templates can be a time consuming task at best, and an overwhelming flood of new information at worst.

Today we're excited to announce Heroku Elements, a new marketplace that brings all of the pieces within our Heroku ecosystem together in one place. It’s a simpler way to discover and select the best components to build apps fast.

In a nutshell, Heroku Elements includes:

  • Adds-ons, together with data and insights - Choosing the right add-on isn’t always easy. Sometimes you want to evaluate all of them, and sometimes you’d prefer to use a trusted name and quickly move on. The Heroku Elements marketplace adds more data about your add-ons and provides tools to better guide you as you compose your app.
  • Buildpack discovery - Since we launched buildpacks over three years ago, we’ve seen you use them in all sorts of clever and crazy ways. Now it becomes trivial to take advantage of a buildpack someone else created. Search the Heroku Elements marketplace to discover new buildpacks from Heroku or choose from the hundreds built and maintained as part of our ecosystem.
  • Button discovery - Buttons provide the easiest way to get up and running with an example template or sample app on Heroku.

We’d love you to head directly over to Heroku Elements and check it out; or if you like, read on to learn about some of the things Heroku elements brings to you.

Read more →

Browse the blog archives, subscribe to the full-text feed, or visit the engineering blog.