Skip to main content

How Jetpack Works

How Jetpack Works

Jetpack is a framework that empowers developers to orchestrate complex Kubernetes backends directly in their code, minimizing the amount of toil and configuration required to get their projects up and running.

The basic workflow for using Jetpack is:

  1. Create and design distributed systems directly in code using the Jetpack SDK
  2. Build, publish, and deploy your application to the cloud with the Jetpack CLI
  3. Schedule, run, and manage your distributed systems using the Jetpack Runtime

Let’s take a look at each of these components in more detail:

1. Creating distributed systems in code with the Jetpack SDK

Jetpack’s SDK can transform ordinary asynchronous functions into scalable, fault-tolerant cloud backends that run anywhere in the cloud. The Jetpack Runtime and SDK take care of the scheduling, serialization, and routing for jetroutines automatically, saving developers from the toil of configuring

Orchestrate complex workflows in code

Other orchezstration frameworks require you to define workflows in an external file, or using a special DSL. In comparison, the Jetpack SDK lets you compose cloud workflows in code, using your language’s native async frameworks.

The Jetpack SDK's decorators make it easy to transform coroutines into distributed cloud functions

This will run both jetroutines in the cloud in parallel, and return the results. For a full list of primitives in the SDK, see (Link here)

Leverage the power of Kubernetes

Jetroutines run in your cluster as Kubernetes pods, meaning they can take advantage of the scalability and fault-tolerance of Kubernetes without any additional configuration. Jetpack’s Cloud Native design also means they can run on any cluster

Available for Python or Node.js

Jetpack SDKs are currently provided for Python and Node.js, with support for Go and other languages planned for future releases

2. Deploying your app with the Jetpack CLI

Jetpack’s CLI streamlines the Kubernetes build, publish,. and deploy workflow into a single command, providing developers with a simple, consistent workflow for deploying any project to Kubernetes.

Jetpack's CLI generates the Helm Charts and ConfigMaps you need to deploy your app on Kubernetes

Zero DevOps Deploys

All developers have to do is run jetpack up to deploy their project to their cluster, and the Jetpack CLI will generate the Kubernetes YAML and Helm charts needed to deploy their code as a distributed system.

Develop against your cluster

Jetpack provides tools to continuously develop and iterate on your project live in your cluster. Using jetpack dev will deploy your project to a development namespace, and automatically configure logging and port-forwarding so that you can test your service in the cluster. Jetpack will also automatically detect and redeploy changes to the cluster as you make them, so you can get rapid feedback in a real-world environment

Skip the configuration steps with Jetpack Mission Control

Developers can further simplify their service configuration by deploying Jetpack Mission Control to their cluster. Upon logging in, Mission Control will automatically sync cluster credentials and provision development namespaces for your entire team.

In future releases, Kubernetes admins can also use Mission Control to customize Jetpack’s default helm charts or provision additional infrastructure for their teams.

3. Running your backends with the Jetpack Runtime

The Jetpack Runtime is a simple, lightweight Kubernetes service that schedules and runs cloud native functions in your Cluster.

Jetpack's Runtime manages your background and scheduled tasks as distributed cloud functions

The Jetpack Runtime schedules and runs Jetroutines whenever they are invoked by the Jetpack SDK, or when they are invoked directly via a webhook. The runtime stores the status and history of your Jetroutines in a local Redis Store

Fast and Simple to deploy

The Jetpack Runtime is a Cloud Native service that can run in any cluster, and can be easily deployed and updated whenever you run jetpack up.