Slide 1

Slide 1 text

the cloud @kubernetesonarm & @twelho

Slide 2

Slide 2 text

someone else’s server? @kubernetesonarm & @twelho

Slide 3

Slide 3 text

someone else’s problem? @kubernetesonarm & @twelho

Slide 4

Slide 4 text

but, what is the problem anyways? “It just works” @kubernetesonarm & @twelho

Slide 5

Slide 5 text

mental model vs reality @kubernetesonarm & @twelho

Slide 6

Slide 6 text

mental model mismatch @kubernetesonarm & @twelho * *Original image adapted Relevant: “KubeCloud: A Small-Scale Tangible Cloud Computing Environment”, a Master’s Thesis from Aarhus University, by Kasper Nissen and Martin Jensen.

Slide 7

Slide 7 text

a practical way to bridge the gap Relevant: “KubeCloud: A Small-Scale Tangible Cloud Computing Environment”, a Master’s Thesis from Aarhus University, by Kasper Nissen and Martin Jensen. @kubernetesonarm & @twelho *Original image adapted *

Slide 8

Slide 8 text

the hidden complexity what the developer sees logical software Web App Power Premises Cooling Network Compute Storage Firmware Hypervisor VM hardware-software interface finite hardware OS @kubernetesonarm & @twelho

Slide 9

Slide 9 text

what are my options? @kubernetesonarm & @twelho

Slide 10

Slide 10 text

what are my options? /month Rent Note: This project is not affiliated with any of these companies, the logos are just for illustration. @kubernetesonarm & @twelho

Slide 11

Slide 11 text

Buy what are my options? Rent /month Note: This project is not affiliated with any of these companies, the logos are just for illustration. @kubernetesonarm & @twelho

Slide 12

Slide 12 text

reality for us students @kubernetesonarm & @twelho

Slide 13

Slide 13 text

what are my options? Buy Rent Build /month Note: This project is not affiliated with any of these companies, the logos are just for illustration. @kubernetesonarm & @twelho

Slide 14

Slide 14 text

If you go down the build route, the assembly is left as an exercise to the reader how to build a cloud? @kubernetesonarm & @twelho

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

so what is the industry-standard glue? @kubernetesonarm & @twelho

Slide 17

Slide 17 text

the imperative, fail-at-runtime glue: @kubernetesonarm & @twelho

Slide 18

Slide 18 text

the declarative, hardened glue: @kubernetesonarm & @twelho

Slide 19

Slide 19 text

let’s start from the beginning @kubernetesonarm & @twelho

Slide 20

Slide 20 text

Lucas Käldström @luxas @kubernetesonarm Emeritus Kubernetes SIG/WG co-lead CS Student, Aalto University Co-author of kubeadm, Weave Ignite & Racklet Dennis Marttinen @twelho @twelho Open Source Developer CS Student, Aalto University Co-author of Weave Ignite & Racklet @kubernetesonarm & @twelho

Slide 21

Slide 21 text

how to build a cloud (2015 edition) @kubernetesonarm & @twelho

Slide 22

Slide 22 text

lucas’ try, circa 2015 luxas/kubernetes-on-arm luxas/kubeadm-workshop @kubernetesonarm & @twelho

Slide 23

Slide 23 text

Plexiglass & screws SBC SBC SBC SBC USB Hub Network Switch Internet Power grid SD SD SD SD 230VAC → 12VDC @kubernetesonarm & @twelho

Slide 24

Slide 24 text

how to build a better cloud (2021 edition) @kubernetesonarm & @twelho

Slide 25

Slide 25 text

Plexiglass & screws SBC SBC SBC SBC USB Hub Network Switch Internet Power grid SD SD SD SD problem #1: Inflexible No hot-swapping Inflexible & limiting “Hand-made”, not reproducible 230VAC → 12VDC @kubernetesonarm & @twelho

Slide 26

Slide 26 text

3D printed case SBC SBC SBC SBC USB Hub Network Switch Internet Power grid SD SD SD SD Hot-swap support Reproducible Modular 230VAC → 12VDC solution #1: @kubernetesonarm & @twelho

Slide 27

Slide 27 text

3D printed case SBC SBC SBC SBC USB Hub Network Switch Internet Power grid SD SD SD SD 230VAC → 12VDC problem #2: No standard :( Single point of failure (SPOF) Single point of failure, easily overloaded Different power in connectors @kubernetesonarm & @twelho

Slide 28

Slide 28 text

SBC HAT 3D printed case SBC SBC SBC SBC Network Switch Internet Power grid SD SD SD SD 230VAC → 12-20VDC HAT HAT HAT HAT SBC GPIO 12-20V → 5V HAT standard Moved SPOF out of Rack, redundancy possible PWR IN Flexible input range solution #2: @kubernetesonarm & @twelho Power monitoring

Slide 29

Slide 29 text

3D printed case SBC SBC SBC SBC Network Switch Internet Power grid SD SD SD SD 230VAC → 12-20VDC HAT HAT HAT HAT problem #3: Tiresome to flash Breaks often Mutable infra SBC GPIO 12-20V → 5V PWR IN SBC HAT @kubernetesonarm & @twelho Hard to debug

Slide 30

Slide 30 text

SBC HAT 3D printed case SBC SBC SBC SBC Network Switch Internet Power grid SSD SSD SSD SSD 230VAC → 12-20VDC HAT HAT HAT HAT OS Images Immutable infra Durable storage Secret for secure network booting Microcontroller helping with secure boot* and boot debugging solution #3: SBC GPIO 12-20V → 5V PWR IN RP2040 @kubernetesonarm & @twelho *Not the UEFI standard, instead tools from Open Source Firmware.

Slide 31

Slide 31 text

3D printed case SBC SBC SBC SBC Network Switch Internet Power grid SSD SSD SSD SSD 230VAC → 12-20VDC HAT HAT HAT HAT problem #4: Kubernetes is hard to set up and upgrade No declarative control over power state Cluster control is imperative, not declarative OS Images SBC HAT SBC GPIO 12-20V → 5V PWR IN RP2040 @kubernetesonarm & @twelho

Slide 32

Slide 32 text

3D printed case SBC SBC SBC SBC Network Switch Internet Power grid SSD SSD SSD SSD 230VAC → 12-20VDC HAT HAT HAT HAT Provide K8s-ready immutable OS images Git Declarative Infra Config Declarative GitOps for all infrastructure K8s-ready OS Images Declarative power state control solution #4: SBC HAT SBC GPIO 12-20V → 5V PWR IN RP2040 @kubernetesonarm & @twelho

Slide 33

Slide 33 text

is this realistic? @kubernetesonarm & @twelho

Slide 34

Slide 34 text

kind of, as a scale model @kubernetesonarm & @twelho

Slide 35

Slide 35 text

3D printed case SBC SBC SBC SBC Network Switch Internet Power grid SSD SSD SSD SSD 230VAC → 12-20VDC HAT HAT HAT HAT Immutable infra Git Declarative Infra Config Declarative “full-stack” GitOps K8s-ready OS Images similarities: Two-stage step-down “Busbar” TPM(-ish) Secure, zero-trust bootflow BMC Optimized casing End-to-end observability Hot-swappable compute SBC HAT SBC GPIO 12-20V → 5V PWR IN RP2040 @kubernetesonarm & @twelho

Slide 36

Slide 36 text

disclaimer: @kubernetesonarm & @twelho

Slide 37

Slide 37 text

values @kubernetesonarm & @twelho

Slide 38

Slide 38 text

1. Security avoid common security pitfalls by using modern paradigms @kubernetesonarm & @twelho

Slide 39

Slide 39 text

1. Security 2. Interoperability @kubernetesonarm & @twelho

Slide 40

Slide 40 text

1. Security 2. Interoperability @kubernetesonarm & @twelho declarative, API-driven system

Slide 41

Slide 41 text

1. Security 2. Interoperability SPI Ethernet UART USB @kubernetesonarm & @twelho cutting-edge protocols in the firmware

Slide 42

Slide 42 text

1. Security 2. Interoperability 3. Accessibility / Reproducibility 100% Open Source Software and Hardware, all on GitHub @kubernetesonarm & @twelho

Slide 43

Slide 43 text

1. Security 2. Interoperability 3. Accessibility / Reproducibility reproducible, 3D printed parts Note: This project is not affiliated with any 3D printer vendors, the logos are just for illustration. @kubernetesonarm & @twelho

Slide 44

Slide 44 text

1. Security 2. Interoperability 3. Accessibility / Reproducibility Electronics? off-the-shelf components docs.racklet.io mdBook schematics in KiCad @kubernetesonarm & @twelho

Slide 45

Slide 45 text

1. Security 2. Interoperability 3. Accessibility / Reproducibility 4. Modularity / Compatibility @kubernetesonarm & @twelho SBC-agnostic (ideally) multi-architecture use HAT design modular components

Slide 46

Slide 46 text

1. Security 2. Interoperability 3. Accessibility / Reproducibility 4. Modularity / Compatibility 5. Transparency power monitoring observability @kubernetesonarm & @twelho

Slide 47

Slide 47 text

1. Security 2. Interoperability 3. Accessibility / Reproducibility 4. Modularity / Compatibility 5. Transparency 6. Maintainability / Upgradability hot swappability upgradability → minimize e-waste auto-upgradability (e.g. A/B partitioning) @kubernetesonarm & @twelho

Slide 48

Slide 48 text

1. Security 2. Interoperability 3. Accessibility / Reproducibility 4. Modularity / Compatibility 5. Transparency 6. Maintainability / Upgradability 7. Affordability @kubernetesonarm & @twelho

Slide 49

Slide 49 text

use cases @kubernetesonarm & @twelho

Slide 50

Slide 50 text

homelabs @kubernetesonarm & @twelho

Slide 51

Slide 51 text

education @kubernetesonarm & @twelho heylagostechie on Unsplash

Slide 52

Slide 52 text

research @kubernetesonarm & @twelho Science in HD on Unsplash

Slide 53

Slide 53 text

edge computing Darya Jumelya on Unsplash @kubernetesonarm & @twelho

Slide 54

Slide 54 text

ecosystem & community @kubernetesonarm & @twelho

Slide 55

Slide 55 text

@kubernetesonarm & @twelho Turing Pi 1 by Turing Machines Inc. Raspberry Pi Server Mark III by Ivan Kuleshov CM4 Uptime Platform by Ivan Kuleshov

Slide 56

Slide 56 text

Baim Hanif on Unsplash your path to mastering cloud native?

Slide 57

Slide 57 text

the journey begins join us on this journey! @kubernetesonarm & @twelho Duy Pham on Unsplash

Slide 58

Slide 58 text

racklet/racklet @kubernetesonarm & @twelho racklet.io Racklet on OSFW