Skip to content
Jarkko Moilanen edited this page Jul 23, 2014 · 21 revisions

Here you'll find information about how to get involved and get your hands dirty.

We use Vagrant and Ansible for setting up development environments for all services separately.

  • Each of the service uses APIs for communication.
  • Each service and API for it are in the same server, normally "domain.xx/api/" and
  • APIs are build on top of Django REST framework
  • API documentation and sandbox implemented via Swagger
  • We use shared database server.
  • Versions: Vagrant x.x,
  • Vagrant + ansible tested on Ubuntu 12.04

EduCloud Database server

How to use Vagrant script here...

Logic something like:

  • Should get the code from Github [repo path here]
  • Check if database server is up already, if not start mysql and other servers needed
  • Create databases and fill with sample data, database dump in Github

Basaar service and API

How to use Vagrant script here...

Logic something like:

Kysy service and API

How to use Vagrant script here...

Committing code

After you have fooled around with the services and begin to implement new features in it, it's probably a good idea to get familiar with the contribution process. Read more about the process from here.

Use Docker and testing

Why Ansible?

Absolutely need an orchestration tool in order to provision, deploy, and manage your servers with Docker running on them.

This is where a tool like Ansible really shines. Ansible is primarily an orchestration tool that also happens to be able to do configuration management. That means you can use Ansible for all the necessary steps to provision your host servers, deploy and manage Docker containers, and manage the networking, etc.

So, if you decide you want to use Docker in production, the prerequisite is to learn a tool like Ansible. There are many other orchestration tools (some even specifically for Docker), but none of them come close to Ansible's simplicity, low learning curve, and power. It's better to just learn one orchestration tool well than to pick a less powerful tool that won't do everything you need it to (then you'd end up having to learn more tools to cover the shortfalls).

Clone this wiki locally