Today is a big day for Heroku Pipelines — our continuous delivery feature that provides a visual sequence of app environments in which to test, stage, and deliver code through to production. Pipelines is now released for General Availability (GA).
Heroku Pipelines provides teams of all sizes a new way to visualize and manage the development of applications, features, and fixes from dev and test, to staging, to production (and supports even more stages if that's your team's thing). Each Pipeline stage contains the Heroku apps, resources, and add-ons necessary to test your applications before "promoting" it to the next stage.
The Pipelines GitHub integrations include automatic or manual deployment of branches, and a new way to test GitHub pull requests in disposable Heroku "review apps" before you merge the code -- with workflow support for the CI you already use with GitHub.
“Heroku Pipelines works seamlessly with GitHub to bring the code in your pull requests to life, providing a streamlined continuous delivery workflow,” said Tim Clem, Product Manager, GitHub. “Pipelines integrates with the GitHub API to deliver a fantastic developer workflow.”
The real headline here is a big thank you to our thousands of weekly Heroku Pipelines beta users, and the scores of companies that have already made Heroku Pipelines the principal tool they use every day to support Continuous Delivery. It’s through the input of this large community that we have been able to create the Heroku Pipelines available to you in today’s GA release. To all of you: HUGE thanks from the Heroku Developer Experience Team, and shared congratulations on Pipelines!
Our goal has been to bring simplicity and flexibility to continuous delivery, while allowing developers to continue to use the dev tools and CI they know and love.
In the past, continuous delivery has been a complex ad-hoc affair for many teams and companies -- often relying on home-grown integrations, and incomplete solutions. Heroku Pipelines creates a simple, complete, prescriptive, and visual delivery workflow that developers and other team members can use to understand the state of fixes, as well as evaluate and approve code in-process with a single click. (Attention design, product management, and external stakeholders: This single click is for you.)
Building a Pipeline is a one-step straightforward process available the the main dashboard, or via the Heroku Toolbelt (CLI). The Pipelines overview page presents the development and deployment workflow in real-time, and provide full control of integrations and settings in-context. You can see the team's review apps come and go (and click to test them), code merging, applications graduating from test, and going into production -- as well as quick access to build logs and status information on all of the above. Here at Heroku, we use the page on a large flat-screen as a real-time continuous delivery wallboard.
Promotions of tested code from one stage to the next are near-instantaneous as the compiled code or “slug” is promoted to the next stage's environment, often eliminating the need to do a new build. Facilities exist to match app add-ons and databases to the production or parent configuration, while protecting personally identifiable information (PII) from entering staging environments and review apps. You'll get faster iteration cycles with fewer flaws in production, and each stage's environment matches the next -- including your review apps -- as exactly as you would like.
And Pipelines fully supports Heroku Private Spaces as a production destination, a development environment, or both. (Enterprise Pro Tip: you can create Pipelines with a number of production Private Spaces for isolation, compliance, and multi-geography, while enjoying the economy and flexibility of the Heroku Common Runtime for review apps, Development, and Staging environments)
Pipelines tight integration with GitHub, GitHub pull requests, and Heroku Review apps supports Heroku Flow, our recommended methodology for continuous delivery using Heroku. We’ve worked hard with our colleagues at GitHub to make the integration seamless and productive, whether you spend your screen-time in GitHub, or in Heroku. You can trigger Heroku builds, as well as create, test, and share Heroku review apps from either environment.
A public API for Heroku Pipelines is also now available.
Coming out of beta doesn’t mean we are going to slow down on innovating in Pipelines, and with continuous delivery. Of course, Pipelines supports all official Heroku buildpack languages, and is in use by developers using many third-party buildpacks. In the coming months expect to see innovations in post-build scripting (useful for Rails and static apps developers), new management options for review apps, even better support for enterprise use cases, and more.
And, of course, we'd love to hear from you about what you'd like to see in Heroku Pipelines.
Above all — for those who haven't yet — check out the docs and create your first pipeline!