Participant preparation instructions

This document describes the prerequisites for attending the training workshop.

Scenario

The CESSDA cafe needs more coffee machines in order to cope with demand. As part of the training day, your task will be to integrate your own coffee machine into the Café.

Your task is to supply a new coffee machine and integrate it into the cafe.

Advance work

To prepare for the training day, we ask you to develop a coffee machine, compatible with the design specifications.

The coffee machine can be implemented in any language you choose, but be built and run from a Dockerfile. The code must be in the Bitbucket repository in the CESSDA Training project matching your name (https://bitbucket.org/cessda/cessda.cafe.coffee.).

In particular, make sure your machine can:

  • receive and process a start-job request
  • be able to receive a retrieve-job request and return the coffee

Furthermore, you must

  • Follow the general instructions
    • Implement the healthcheck
    • Implement X-Request-ID
    • Log to STDOUT, ideally in GELF format
  • have a test suite with at leat one unit test
  • have a Dockerfile which can build and run your application

Ideally, you also should

  • give the machine’s status at the metrics endpoint
  • implement the history endpoint

For the training day

Please make sure to bring along a Laptop with charger (EU plug) and the following software.

  • Bash - Some exercises involve running commands in the Bash shell, so please make sure you have it available.
  • cURL - used in command lines or scripts to transfer data.
  • Git - We use Git repositories hosted in Bitbucket, so the Atlassian SourceTree client is a good option if you are using Windows or MacOS. Here is a link to a list of other Git clients ­ some free, some commercial: https://git-scm.com/downloads/guis
  • JQ - like sed for JSON data, you can use it to slice and filter and map and transform structured data.
  • Docker - We will be working with Docker containers.
  • Google Cloud SDK with the kubectl component
  • Text editor - Whatever you want, but support for Kubernetes YAML syntax is useful to have.

Note: Cloud Shell can be a suitable alternative.

CESSDA Technical Architecture Wiki

Have a look at the CESSDA Technical Architecture wiki. It provides an introduction to the CESSDA Technical Framework, in terms of its structure and composition. It provides both an overview and detail of the various Google Cloud Platform projects that it is composed of, and the Jenkins pipeline that is used to build, test and deploy components.