orbits

Orbits documentation

Welcome on board! You are at the good place to start a smooth travel and to configure your DevOps workflow to keep a stable orbit in the cloud galaxy!

T.O.C.

What is orbits?

Orbits is a node.js Typescript framework which allows you to write Ops pipe in a very similar manner you are used to write promises or events cycles. Robustness and precision are at the core of its developments.

Why?

We think that:

Orbits is a proposal to solve these problems.

Core concepts

An orbits pipeline has three main concepts.

Actions

Actions are the building blocks of an orbits workflow. An action includes a typescript class that extends the Action core class. An action launches a command on a specific resource (creating an order, installing new software on a machine, launching a Docker process…) and tracks the state of this command until it succeeds or fails. An action is a great way to follow the state of a process that doesn’t terminate instantly.

You can know more about actions here.

Workflows

Once you have written the actions that will compose your app (payment order, cdk deploying, signs process), you can chain and orchestrate them within a workflow. A workflow includes a typescript class that extends the Workflow core class. Workflows allow to chain action in a Promise-like style, except that you have the guarantee of consistency even if your current process crashes.

You can know more about workflows here.

Application

Once you have written the workflows that will compose your app, you have to create and bootstrap an Orbits app. There can be only one app by process. The app manages the database configuration and maps the different actions that you can use.

You can know more about apps here.

A bit more

Additionally, you will probably need to know about these points.

Executors

Executors are a way to launch parts of your workflow in specific execution contexts (Docker, Lambda…). As a consequence, Orbits gives you complete, customizable control over your pipeline. You can customize the access rights at a granular level in your pipeline and give specific policies to an action.

You can know more about executors here.

—> :construction_worker: Work in Progress; we would be pleased to find contributors to go quicker.

Cdk

The philosophy of this framework is close to the philosophy of the cdk. The two couple quite well and Orbits allows you to programmatically manage a cdk app.

You can look at an example here.

Git integration

There are standard actions to keep track of repository states and wait for some git events (new commits…).

—> :construction_worker: Work in Progress; we would be pleased to find contributors to go quicker.

Examples

Installation

Please, see the readme.