Three parallel tutorials on Wednesday, January 25, 09:00 - 10:30


Gurvinder Singh: Intro to Kubernetes and hands-on for deploying a Jupyter Notebook

The slides for this tutorial is available at here and the code can be found on github here.

This tutorial will provide brief introduction to Kubernetes concepts and its architecture. Participants will later deploy a Jupyter Notebook application on Kubernetes running on their laptop first and then the same application on Kubernetes cluster in the cloud. They will also see how we can automate DNS, SSL certs too when deploying application on Kubernetes. The list of required software to be pre-installed on your laptop will be provided before the workshop.

Basic understanding of containers (Docker) can be helpful for this tutorial. The participants need to have Linux or Mac OS X running on their laptop, as we are not going to support windows during hands on.

Please install the following four tools before the tutorial:

  • Git
  • Virtualbox
  • Kubernetes client
  • Minikube

For Git and Virtualbox, we recommend to install using usual package installation tools or their corresponding webpages.

Kubernetes client

Get the kubectl client to deploy application on kubernetes cluster.

For MAC OSX (amd64):

$ wget -qO - https://storage.googleapis.com/kubernetes-release/release/v1.5.1/kubernetes-client-darwin-amd64.tar.gz | tar zxf - && sudo mv kubernetes/client/bin/kubectl /usr/local/bin

For Linux (amd64):

$ wget -qO - https://storage.googleapis.com/kubernetes-release/release/v1.5.1/kubernetes-client-linux-amd64.tar.gz | tar zxf - && sudo mv kubernetes/client/bin/kubectl /usr/local/bin

Make sure you are able to run:

$ kubectl help

Minikube Setup

Make sure your Virtualbox setup is working before starting with Minikube. Install the Minikube to have a local Kubernetes cluster.

For MAC OSX (amd64):

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.14.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

For Linux (amd64):

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.14.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

Now verify that you are able to run:

$ minikube help

To avoid network congestion during tutorial, run these commands to download iso images and other dependencies:

$ minikube start  # this step can take some time
$ minikube stop


Frederic Haziza and Juha Törnroos: Connecting two secure clouds across countries, and implementation of ELIXIR AAI system

Part 1 - Frederic Haziza: Connecting two secure openstack clouds across countries: case Knox - ePouta

When a cluster runs at full capacity, all the newly scheduled jobs have to wait. In case this happens often, it is necessary to scale up the infrastructure for more computations and more data transfers. To this end, we can of course buy more hardware, i.e., more compute nodes, more disks and more network switches. However, this might be an expensive solution. The Tryggve project focused therefore on an alternative approach, where we ask other clusters if they have available resources that we could “borrow for a while”.

An immediate issue with such a solution is whether a connection across borders is even feasible, or if there is a penalizing latency. We can imagine the scenario where computations happen in one country, while the data is located in another country. It’s worth mentioning that this work focused on technical aspects and did not take up legal matters related to the transfer of sensitive data between countries. That topic is left for further work within the Tryggve project.

In order to test the connection between countries, we built a temporary cloud cluster in Sweden, called Knox, and connected it to the resources of ePouta, a secure cloud cluster in Finland. The desired outcome is that the jobs would not know whether they are scheduled in Finland or Sweden. This tutorial explains the details of how the connection was set up and presents the various performance tests that showed the feasibility of the solution.

The participants should have basic knowledge of OpenStack clouds.

Part 2 - Juha Törnroos: Taking into use federated ELIXIR AAI system

This tutorial explains the basics of the European federated authentication and authorisation infrastructure, ELIXIR AAI. It also presents how the particular AAI system was implemented in a genomic data access service prototype (Beacon).

The participants should be familiar with basic concepts of AAI systems.


Joel Hedlund: Distributed work - Show me your toolset!

Working in a distributed team sucks because you need to be really transparent with everything you do, or everything will fall to pieces.

But it’s also great! Because now that you are being really transparent with everything you do, everyone can now see what good work you have done, and how you did it, and why you did it, and who was involved, and where you are going!

This workshop is about sharing good tools and routines that really work -for you, in practice- to make your work in a distributed team go more smoothly, helping you avoid confusion and stall time, and making it so that you can do less boring sh*t and focus on getting stuff done!

What are the good tools? What are their merits? What are the pitfalls? What are some bad tools? Why did you try them out? Why didn’t they work?

Some kind of schedule, or buffet of topics:

  • NBIS Agile (Niclas, Jonas):
    • Intro to Agile (.pdf)(Niclas).
    • How NBIS (all?) uses Agile, with Github, Zenhub, and Slack to drive distributed software development.
      • Zenhub (Jonas) to coordinate software development.
    • How NBIS uses Spotify Rhythm (Jonas) to do agile project prioritization.
  • How Joel works with Google docs in stakeholder engagement for Tryggve1/2, live minutes.
  • How Radovan works with Trello to track work in NeIC 2017 conference program.
  • How Jonas/NBIS uses Slack for Education with a lot of integrations to improve distributed work (Zenhub, github, hangout, uptimerobot, growbot…).
  • How Joel uses Google Hangouts to set up bad video meetings that lock out everyone at the last minute.
  • How Joel wrote the NeIC policies to help you write less reports.
  • How You can use the Slack export service and grep to recall what people said on that important subject one year ago.
  • How YOUR_NAME_HERE uses SERVICE_X to do GOOD_THING_1.
  • How SOMEBODY_ELSE uses SERVICE_Y to do GOOD_THING_2.

Please let us know on slack #ahm which examples you’re interested in hearing about, and we’ll try and prepare something to show and discuss! Please feel free to propose NAMES, SERVICES and THINGS that you want to know more about, and we’ll try to make it fly!

Ideally we want more names on the list above, but there’s also this stuff that I could talk about: Why Tryggve does not develop draft agendas on the internal wiki anymore? How Joel uses Google Takeout to mass create PDFs from stuff on Google Drive (and pdftk to concatenate them into a single pdf). How Joel works with action points in wiki and trello to ensure stuff (eventually) gets done (like he promised people he would :-).