1 of 33

SaaS for B2B using Kubernetes

Staffan Olsson, Yolean�staffan.olsson@yolean.com�github.com/solsson

2 of 33

Kubernetes for software engineers

Staffan Olsson, Yolean�staffan.olsson@yolean.com�github.com/solsson�y-stack.slack.com

3 of 33

My topic isn’t very important

4 of 33

This is very important

https://www.economist.com/briefing/2019/09/21/the-past-present-and-future-of-climate-change�“Unfortunately, technologies capable of delivering negative emissions of billions of tonnes a year for reasonable prices over decades do not exist.”�

5 of 33

Software can be a driver for change. Kubernetes is only the means to deliver software.

6 of 33

Kubernetes is a complex topic, worthy of a course similar to those for relational databases -- best case today is that I can help you get started with learning from a useful angle

  1. Convince you that Kubernetes allows you to do DevOps right
    1. Distributed Systems is fun
    2. You’ll learn to trust your own platform
  2. Show you a way to go hands-on with meaningful Kubernetes development
    • There are lots of high(er) quality resources online, but they tend to fall into two categories: Either development on Kubernetes or development of Kubernetes. At Yolean we’ve found that engineering often means coding with Kubernetes.

7 of 33

Today’s agenda

  • Why I’m at Data-driven support for cyber-physical systems -- DAT300/DIT668
  • Introduce Kubernetes and how it will affect IT careers
  • Demo: Applied container orchestration�= hands on software delivery, git-source-to-cloud-URL�= After this session I hope that anyone who found it interesting will be able to fire up a Kubernetes cluster and deploy some code there.
  • Ideas for research (e.g. master’s thesis) projects

From your current syllabus it looks like you will have at least two more talks about container technology: Wolfgang John, Ericsson Research and Mathias Weibull, Ericsson.

8 of 33

Yolean, exploring collaboration

… as a team

9 of 33

Demo application

https://github.com/y-stack/ystack/pull/1/commits

https://github.com/y-stack/ystack/blob/example-quarkus/README.md#to-deliver-software-using-kubernetes

I needed an opinionated framework that keeps the code volume down and went for Quarkus https://quarkus.io/guides/neo4j-guide. Neither the language nor the choice of persistence matters.

10 of 33

Nodes

11 of 33

Distributed workloads

12 of 33

Source-to-URL

13 of 33

Dealing with dependencies

14 of 33

Containers

15 of 33

Container image

16 of 33

Image registry

17 of 33

Client access

18 of 33

Node Port and DNS

19 of 33

Ingress

20 of 33

(External) Load Balancer

21 of 33

Upgrade workflows

The language has changed from back in the virtual machine days.

22 of 33

Workflow expressed in Primitives

23 of 33

Dare to experiment

Disaster recovery

How do you prepare for unexpected maintenance situations?

24 of 33

Resource limits

Readiness probes

Liveness probes

25 of 33

Declarative setup as baseline

26 of 33

DevOps

Operations

SRE

27 of 33

What you* shouldn’t deal with in your cluster

* as software engineer with customers who are not developers

28 of 33

(The Law Of) Leaky Abstractions

29 of 33

The Kubernetes Catch 22

30 of 33

Tooling for development with Kubernetes

Skaffold

31 of 33

Open source

What model is it?

For example tight open core?

32 of 33

Research ideas

33 of 33

Research ideas

Yolean is looking for master’s thesis students. We do have some interesting topics that we wish to explore, and there’s definitely many more.

  • Can HTTP/2 and XHR polling replace websockets over Ingress?
  • KIDSAM A ledger/blockchain for cross-organization decision making
  • Can native images speed up kubernetes-kafka CI by 10x?
  • Security aspects of private clusters with container-native load balancing

Contact me at staffan.olsson@yolean.com or us at y-stack.slack.com