You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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. Gaia is currently alpha! `Do not use it for mission critical jobs yet!`_
7
+
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. Gaia is currently alpha! `Do not use it for mission critical jobs yet!`_
8
8
9
-
Develop powerful `pipelines <What is a pipeline?_>`_ with the help of `SDKs <Why do I need an SDK?_>`_ 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.
9
+
Develop powerful `pipelines <What is a pipeline?_>`_ with the help of `SDKs <Why do I need an SDK?_>`_ 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 as a user-friendly graphical output.
10
10
11
11
Motivation
12
12
==========
@@ -19,20 +19,20 @@ The majority of tech people are not motivated to take up this work and they are
19
19
20
20
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.
21
21
22
-
We believe it's time to remove all these 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.
22
+
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.
23
23
24
24
How does it work?
25
25
=================
26
26
27
27
.. begin-architecture
28
28
29
-
Gaia is based on `HashiCorp's go-plugin`_. It's a `plugin system`_ that uses `gRPC`_ to communicate over `HTTP/2`_. HashiCorp developed this tool initially for `Packer`_ but it's now heavily used by `Terraform`_, `Nomad`_, and `Vault`_ too.
29
+
Gaia is based on `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.
30
30
31
-
Plugins, which we named `pipelines <What is a pipeline?_>`_, are applications which can be written in any programming language as long as `gRPC`_ is supported. All functions, which we call `jobs <What is a job?>`_, are exposed to Gaia and can form up a dependency graph which describes the order of execution.
31
+
Plugins, which we named `pipelines <What is a pipeline?_>`_, are applications which can be written in any programming language, as long as `gRPC`_ is supported. All functions, which we call `jobs <What is a job?>`_, are exposed to Gaia and can form up a dependency graph which describes the order of execution.
32
32
33
33
Pipelines can be compiled locally or simply over the build system. Gaia clones the git repository and automatically builds the included pipeline. If a change (`git push`_) happened, Gaia will automatically rebuild the pipeline for you*.
34
34
35
-
After a pipeline has been started, all log output are returned back to Gaia and displayed in a detailed overview with their final result status.
35
+
After a pipeline has been started, all log output is returned back to Gaia and displayed in a detailed overview with their final result status.
36
36
37
37
Gaia uses `boltDB` for storage. This makes the installation step super easy. No external database is currently required.
38
38
@@ -106,7 +106,7 @@ Usage
106
106
107
107
Go
108
108
~~~
109
-
Writing a pipeline is easy as importing a library, defining a function which will be the job to execute and serving the gRPC-Server via one command.
109
+
Writing a pipeline is as easy as importing a library, defining a function which will be the job to execute, and serving the gRPC-Server via a single command.
110
110
111
111
.. code:: go
112
112
@@ -256,7 +256,7 @@ Gaia is the first platform which does not limit the user and provides full suppo
256
256
257
257
What is a **pipeline**?
258
258
~~~~~~~~~~~~~~~~~~~~~~~
259
-
A pipeline is a real application with at least one function (we call it Job). Every programming language can be used as long as gRPC is supported. We offer SDKs to support the development.
259
+
A pipeline is a real application with at least one function (we call it a Job). Every programming language can be used as long as gRPC is supported. We offer SDKs to support the development.
260
260
261
261
What is a **job**?
262
262
~~~~~~~~~~~~~~~~~~
@@ -277,11 +277,11 @@ We are working hard to support as much programming languages as possible but our
277
277
Roadmap
278
278
=======
279
279
280
-
Gaia is currently in alpha version available. We extremely recommend to not use it for mission critical jobs and for production usage yet. Things will change in the future and essential features may break.
280
+
Gaia is currently available as alpha version. We extremely recommend to not use it for mission critical jobs and for production yet. Things will change in the future and essential features may break.
281
281
282
282
One of the main issues currently is the lack of unit- and integration tests. This is on our to-do list and we are working on this topic with high priority.
283
283
284
-
It is planned that other programming languages should be supported in the next few month. It is up to the community which languages will be supported next.
284
+
It is planned that other programming languages should be supported in the next few months. It is up to the community which languages will be supported next.
285
285
286
286
Contributing
287
287
============
@@ -290,9 +290,9 @@ Gaia can only evolve and become a great product with the help of contributors. I
290
290
291
291
If you think you found a good first issue, please consider this list as a short guide:
292
292
293
-
* If the issue is clear and you have no questions, please leave a short comment that you start working on this. The issue will be usually blocked for two weeks to solve it.
294
-
* If something is not clear or you are unsure what to do, please leave a comment so we can add further discription.
295
-
* Make sure that your development environment is configured and setup. You need `Go installed`_ on your machine and also `nodeJS`_ for the frontend. Clone this repository and run the **make** command inside the cloned folder. This will start the backend. To start the frontend you have to open a new terminal window and go into the frontend folder. There you run **npm install** and then **npm run dev**. This should automatically open a new browser window.
293
+
* If the issue is clear and you have no questions, please leave a short comment that you started working on this. The issue will be usually blocked for two weeks for you to solve it.
294
+
* If something is not clear or you are unsure what to do, please leave a comment so we can add more detailed description.
295
+
* Make sure your development environment is configured and set up. You need `Go installed`_ on your machine and also `nodeJS`_ for the frontend. Clone this repository and run the **make** command inside the cloned folder. This will start the backend. To start the frontend you have to open a new terminal window and go into the frontend folder. There you run **npm install** and then **npm run dev**. This should automatically open a new browser window.
296
296
* Before you start your work, you should fork this repository and push changes to your fork. Afterwards, send a merge request back to upstream.
0 commit comments