Home

Awesome

Dummy Docker-ized microservices

Description

Goal of the project

For me to try for the first (or maybe second) time a bunch of technologies, tools and concepts:

What does this app do?

Offers an ugly web UI where the user can do two things:

Architecture

The architecture is clearly over-engineered, but one of the points of this project is precisely to have several services running on their own docker container talking to each other via rabbitmq.

alt tag

The app is made of several components, all of them running in their own docker container. The components are the following:

How does the build and deploy mechanism work?

For now, the deployment consists of firing up all containers in your local machine. I have not yet tried to get them to work through a cluster of machines or in the cloud, but I intend to do that as it is something I find very interesting.

Build and deploy in your local machine

I make use of fig.sh to build and deploy the app with a single command: fig up. This command looks into the /fig.yml file for the specification of each container and it does the two following steps:

  1. download the necessary images for each container from the Docker Hub (this will take a pretty long time the first time you build)
  2. launch the containers with the specs stated in fig.yml, i.e. ports, volumes, links, command and so on.

Build and run

Platform

This app has only been tested on:

Dependencies

Make sure your machine has these packages before building:

To perform the translations you need to create a Microsoft Services free account here. Then go here and register a new application to obtain a ClientId and a Secret. Now go to the root directory of the project, open the file called config and add your ClientId and Secret.

How to build and deploy

Simply run:

make

Operate

Tail the logs:

sudo fig logs

Stop a service:

sudo fig stop service_name

Connect to cassandra:

priv/connect_to_cassandra.sh

Things to look into