Skip to content

Commit 7ab0ce8

Browse files
committed
Corrected some phrases. Added Q&A section
1 parent b24239f commit 7ab0ce8

File tree

1 file changed

+38
-13
lines changed

1 file changed

+38
-13
lines changed

README.rst

+38-13
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,9 @@
44

55
|build-status| |go-report| |go-doc| |apache2| |chat| |codecov|
66

7-
gaia is an open source automation platform which makes it easy and fun
8-
to build powerful pipelines in any programming language. Based on
9-
`HashiCorp's go-plugin`_ and `gRPC`_, gaia is efficient, fast, lightweight
10-
and developer friendly. Gaia is currently alpha! `Do not use it for mission
11-
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!`_
128

13-
Develop pipelines with the help of SDKs (currently only Go) 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?_>`_ (currently only Go) 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.
1410

1511
Motivation
1612
==========
@@ -23,18 +19,20 @@ The majority of tech people are not motivated to take up this work and they are
2319

2420
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.
2521

26-
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 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.
2723

2824
How does it work?
2925
=================
3026

3127
.. begin-architecture
3228
33-
Gaia is based on `HashiCorp's go-plugin`_. It's a plugin system that uses `gRPC`_ to communicate over HTTP2. 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`_. HashiCorp developed this tool initially for `Packer`_ but it's now heavily used by `Terraform`_, `Nomad`_, and `Vault`_ too.
3430

35-
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.
31+
Plugins, which we named pipelines, are applications which can be written in any programming language as long as `gRPC`_ is supported. All functions, which we call Jobs, are exposed to Gaia and can form up a dependency graph which describes the order of execution.
3632

37-
After a pipeline has been started, all log output from the included jobs are returned back to gaia and displayed in a detailed overview with their final result status.
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+
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.
3836

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

@@ -134,10 +132,35 @@ Gaia will compile it and add it to it's store for later execution.
134132

135133
Please find a bit more sophisticated example in our `go-example repo`_.
136134

137-
Documentation
138-
=============
135+
Documentation and more
136+
======================
137+
138+
Please find the docs at https://docs.gaia-pipeline.io. We also have a tutorials section over there with examples and real use-case scenarios. For example, `Kubernetes deployment with vault integration`_.
139+
140+
Questions and Answers (Q&A)
141+
---------------------------
142+
143+
What problem solves **Gaia**?
144+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
145+
Literally every tool which were designed for automation, continuous integration (CI), and continuous deployment (CD) like Spinnaker, Jenkins, Gitlab CI/CD, TravisCI, CircleCI, Codeship, Bamboo and many more, introduced their own configuration format. Some of them don't even support *configuration/automation as code*. This works well for simple tasks like running a ``go install`` or ``mvn clean install`` but in the real world there is more to do.
146+
147+
Gaia is the first platform which does not limit the user and provides full support for almost all common programming languages without losing the features offered by todays CI/CD tools.
148+
149+
What is a **pipeline**?
150+
~~~~~~~~~~~~~~~~~~~~~~~
151+
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 (currently only Go but others are already in development) to support the development.
152+
153+
What is a **job**?
154+
~~~~~~~~~~~~~~~~~~
155+
A job is a function, usually globally exposed to Gaia. Dependent on the dependency graph, Gaia will execute this function in a specific order.
156+
157+
Why do I need an **SDK**?
158+
~~~~~~~~~~~~~~~~~~~~~~~~~~
159+
The SDK implements the Gaia plugin gRPC interface and offers helper functions like serving the gRPC-Server. This helps you to focus on the real problem instead of doing the boring stuff.
139160

140-
Please find the docs at https://docs.gaia-pipeline.io. We also have a interesting tutorials section over there. For example, `Kubernetes deployment with vault integration`_.
161+
When do you support programming language **XYZ**?
162+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
163+
We are working hard to support as much programming languages as possible but our resources are limited and we are also mostly no experts in all programming languages. If you are willing to contribute, feel free to open an issue and start working.
141164

142165
Roadmap
143166
=======
@@ -182,6 +205,8 @@ If you have any questions feel free to contact us on `gitter`_.
182205
.. _`go-example repo`: https://github.com/gaia-pipeline/go-example
183206
.. _`gitter`: https://gitter.im/gaia-pipeline
184207
.. _`Kubernetes deployment with vault integration`: https://docs.gaia-pipeline.io/tutorials/kube-vault-deploy/
208+
.. _`git push`: https://git-scm.com/docs/git-push
209+
.. _`HTTP/2`: https://http2.github.io/
185210

186211
.. |build-status| image:: https://circleci.com/gh/gaia-pipeline/gaia/tree/master.svg?style=shield&circle-token=c0e15edfb08f8076076cbbb55558af6cfecb89b8
187212
:alt: Build Status

0 commit comments

Comments
 (0)