Get started with Gaia

Introduction

Welcome to the intro guide to Gaia! In the next steps you will learn what Gaia is and how to use it effectively.
Please keep in mind that Gaia is currently available as alpha version and many things will change in the future.
Essential features might be missing and you will probably face critical errors.

What is Gaia?

Gaia is an open source automation platform which makes it easy and fun to build powerful pipelines in any programming language.
Based on HashiCorp’s go-plugin and gRPC, gaia is efficient, fast, lightweight, and developer friendly.

Develop pipelines with the help of SDKs and simply check-in your code into a git repository.
Gaia automatically clones your code repository, compiles your code to a binary and executes it on-demand.
All results are streamed back and formatted to a user-friendly graphical output.

Motivation

Automation Engineer, DevOps, SRE, Cloud Engineer, Platform Engineer - they all have one in common:
The majority of tech people are not motivated to take up this work and they are hard to recruit.

One of the main reasons for this is the abstraction and poor execution of many automation tools.
They come with their own configuration (YAML syntax) specification or limit the user to one specific programming language.
Testing is nearly impossible because most automation tools lack the ability to mock services and subsystems.
Even tiny things, for example parsing a JSON file, are sometimes really painful because external,
outdated libraries were used and not included in the standard framework.

We believe it’s time to remove all those abstractions and come back to our roots.
Are you tired of writing endless lines of YAML-code? Are you sick of spending days forced to write in a language
that does not suit you and is not fun at all? Do you enjoy programming in a language you like? Then gaia is for you.

How does it work?

Gaia is based on the HashiCorp’s go-plugin. It’s a plugin system that uses gRPC to communicate over HTTP/2.
Initially, HashiCorp developed this tool for Packer but now it’s heavily used by Terraform, Nomad, and Vault too.

Pipelines can be written in any programming language (gRPC support is a prerequisite) and can be compiled locally
or simply over the build system. Gaia clones the git repository and automatically builds the included pipeline.

After a pipeline has been started, all log output from the included jobs is returned back to gaia and displayed
in a detailed overview, along with their final result status.

Gaia uses boltDB for storage. This makes the installation step super easy. No external database is currently required.