You Don't Need Kubernetes, You Need an Application Framework

You Don't Need Kubernetes, You Need an Application Framework

A Platform for Platforms

Since becoming the industry standard, Kubernetes continues to draw controversy on whether it's the right solution for rapidly growing startups. Some developers argue that it only makes sense for Google-scale companies, while others happily use it for personal, small scale projects.

Both sides are right.

Kubernetes is a powerful framework for managing large scale deployments and microservices, but it does not provide an out-of-the-box workflow that makes teams productive. This is  because Kubernetes was never designed to provide the end-user experience:

Kubernetes can help infra teams automate deployments and scaling, but it forces application developers to operate at the wrong level of abstraction. What most application developers really want is way to package and deploy their applications, without having to worry about them scalability or uptime. In other words, they want an Application Framework. And vanilla Kubernetes is not an Application Framework.

What is a Cloud Application Framework?

A solid application framework provides the right abstractions and structure so developers can focus their energy on the application logic. A framework for a single machine applications abstract away the underlying hardware and system resources, and provides a standard project structure and workflow for development. Application frameworks for the cloud should do the same thing, but at the whole cluster level instead of for a single machine.

The key components of an application framework are:

  1. A single workflow for building and deploying the project. This reduces the toil involved with getting your application into a running state
  2. An intuitive API for describing how you want the application to run — which parts should run asynchronously or in parallel? Which functions should be scheduled for later?
  3. An API that exposes the inner workings of the framework, so that you can tune or adjust it for high performance scenarios. For example: developers may want to add middleware that runs during the deployment workflow.

Building each of these components is a huge project, and most companies that move to Kubernetes find themselves spending tons of resources and dev hours cobbling a solution together from scratch. It’s a challenging project — easy and costly to get wrong.

Jetpack: a Power-Up for Kubernetes

Our team has spent a combined 35 years helping companies move into Kubernetes, and we’ve seen the challenges that face companies making this transition. It’s why we built Jetpack — a Cloud Native application framework that lets developers build their cloud backends just like they were building them for a single machine.

Our application framework provides the key elements needed to keep developers productive when working with Kubernetes:

  1. Jetpack's CLI provides a single workflow to deploy and run your backend. Jetpack handles the Kubernetes boilerplate and config generation for you, so you can deploy to any cluster with just jetpack up.
  2. Jetpack's Clusterless Runtime makes it possible to schedule and run functions  as Kubernetes pods. With a few simple annotations, you can orchestrate complex workflows, services, and scheduled tasks directly in code, no external config or DSL required.
  3. Jetpack's Launch Control service helps synchronize custom configuration and provision developer environments across your team. Administrators can configure how Jetpack creates deployments and provisions resources for developers, so that Jetpack augments their existing infrastructure and workflow.

Using a cloud application framework like Jetpack empowers you to take full advantage of Kubernetes' scalability and fault tolerance without sacrificing developer productivity. In a future post, we'll dive into each of these areas in detail, to show how developers can benefit from a cloud application framework

A better future for the cloud

Our mission at Jetpack is to empower developers and startups to easily scale from idea to IPO. We want to create a world where visionaries spend more time solving problems, and less time debugging YAML.

If you or your team are interested in this future, get in touch with us! You can sign up for a demo + early access at Jetpack.io.