Announcing Launchpad

Today, we're announcing the open-source release of Launchpad, a new CLI tool for deploying applications and scheduled tasks on Kubernetes. Launchpad provides a Heroku-like deployment experience on any cluster. Users can build, publish, and deploy cloud applications in one step without writing pages of Kubernetes config.

We're also announcing the early availability of Mission Control, our Kubernetes configuration service. Mission Control's single sign-on provides developers with automatic access provisioning, secrets management, and preview URLs for their projects. Coupled with Launchpad, Mission Control provides a less painful way to onboard and scale on Kubernetes.

Deploying our Docs Pages to Kubernetes with Launchpad

We've used Launchpad internally and with design partners over the past year. It quickly became the deployment workflow for all our documentation and cloud services, and it saved countless hours of configuration and onboarding time. You can view the Launchpad core source code on our Github repo. To get started with using Launchpad, you can visit our Documentation page.

Why we built Launchpad

We created Jetpack.io with a vision that any developer could build, test, and deploy cloud applications. Past experiences at companies like Stripe, Facebook, and Airbnb taught us how the complexity and cost of adoption often offset the benefits of Kubernetes. After extensive internal and external customer research, we discovered two main challenges to Kubernetes adoption.

First, Kubernetes disrupted developer workflows and drove up toil. In addition to a steep learning curve, deploying cloud applications requires multiple steps, tools, and processes. These steps break developers out of their flow and kill productivity. Developers often expressed their desire to focus on solving problems instead of fighting with their tools.

Second, onboarding developers to Kubernetes required significant investment. Long and tedious onboarding and deployment processes slowed growth and led to churn. Companies that faced these challenges chose to delay the adoption of Kubernetes and cloud development far into the future when migration costs are much higher.

Launchpad and Mission Control address both challenges. Launchpad provides developers with a usable CLI and interfaces for deploying cloud applications in Kubernetes. Mission Control delivers automated onboarding and configuration for teams, so they can scale up faster on Kubernetes.

Launchpad Features

The power of Kubernetes without the toil.

With Launchpad, developers configure their application with a minimal launchpad.yaml. This config provides the essential options for your app, while Launchpad configures sane defaults for the rest. Apps deployed with Launchpad take full advantage of Kubernetes' autoscaling and fault tolerance, with a fraction of the configuration.

As an example: here's the launchpad.yaml we use to deploy our docs sites as autoscaling web services. The same deployment in vanilla Kubernetes could require hundreds of lines and multiple files:

A Kubernetes deployment in just 8 lines of YAML

Developers can create a launchpad.yaml for new projects by running launchpad init, and answering a few questions about their project. Once created, developers can check their launchpad.yaml into source control, so the rest of their team can deploy with just launchpad up.

Build, Publish and Deploy in a Single Command

Before Launchpad, deploying a cloud application required:

  1. Build the container
  2. Name and tag it correctly
  3. Push it to your Docker registry
  4. Create a Kubernetes deployment or Helm chart for the project
  5. Make sure that your cluster has permission to pull the container
  6. Create a development or production namespace in Kubernetes
  7. Apply the Kubernetes deployment to your namespace
Launchpad combines multiple deployment steps into a single command

With Launchpad, all you need to run is launchpad up. This single command will use your launchpad.yaml to build, publish, and deploy your project to Kubernetes in a single step. Launchpad will even configure isolated preview namespaces for each developer. Your team can go from coding to testing faster than ever.

Onboard developers instantly

Onboarding developers to Kubernetes is a significant challenge. New developers need credentials to access your cloud, and they also need to learn the proper workflows to provision and deploy their projects. These steps repeat for every environment and project, increasing toil exponentially as your team and codebase expand.

Mission Control provides developers with a single login to provision their access and development environment. It syncs the correct context and settings based on the developer's current project. Teams no longer need to spend hours onboarding developers to Kubernetes. Authenticating with Mission Control also helps developers manage secrets, and provision development namespaces with preview URLs.

Manage secrets and environments across your whole team

During our initial research, we learned that many early teams struggled with managing secrets and variables across their products. The lack of an easy solution for managing secrets in Kubernetes resulted in various ad-hoc practices. The result was confusion and misconfiguration.

Launchpad simplifies this workflow with launchpad env, a tool for storing, sharing, and applying secrets and environment variables for your project. Launchpad env provides a command line interface for storing secrets in a secure AWS Parameter Store instance hosted by Mission Control. Secrets and environment variables stored with launchpad env are linked to your project,  so they can be used easily by your entire team.

How to get Started with Launchpad

The Launchpad CLI is available now as a free, open-source project. Mission Control is also available now, and free for up to 3 users and a single managed cluster. Here are some ways you can get started today:

  • Try out our Quickstart. This tutorial shows you how to try Launchpad on our free trial cluster. Afterward, you can browse the docs to learn how to try out Launchpad + Mission control on your cluster
  • View the source code. The core Launchpad CLI source is available on Github. We welcome pull requests or feedback via issues.
  • Join our Community. Our Discord server is a great place to chat with the core Jetpack team and to meet other Launchpad users.
  • Contact Us if you're interested in a large-scale deployment of Mission Control or if you are looking for help migrating to Kubernetes. Our team of Kubernetes experts is happy to help and scope out white-glove migration for your team.
  • You can also share your comments or thoughts on our Announcement post on Hacker News.