Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducing Racklet, a commoditized, educational and open source data center scale-model for tinkerers

Introducing Racklet, a commoditized, educational and open source data center scale-model for tinkerers

“The future is already here - it's just not evenly distributed” - William Gibson

We’d like to announce our latest open-source project: Racklet. It’s a fully-integrated, Raspberry Pi form-factor server rack and software stack that aims to be a scale model of hyperscaler datacenters. All layers of the stack are 100% OSS/OSH, and will be developed together with the community. It’s reproducible through open PCB designs, 3D printed casing, and commodity, off-the-shelf hardware.

We want to lower the barrier of entry for becoming cloud native. Racklet aims to inspire users to explore how modern server architectures work, in a tangible and educational way. Emphasis is put on security, knowledge sharing, extensibility, and portability.

The goal is to conceptually map to real environments and provide an accessible and well-documented path to welcome future talents to the world of cloud native.

Youtube link: https://youtu.be/YKWtR0xOnF4
Online slides: https://docs.google.com/presentation/d/1cfVf4ZSiCef6gpWr8UMtdMPqyIdWTLaGt1du5v5Kex0/edit#slide=id.gd48a3760c5_0_2030

Lucas Käldström

April 29, 2021
Tweet

More Decks by Lucas Käldström

Other Decks in Technology

Transcript

  1. the cloud
    @kubernetesonarm & @twelho

    View Slide

  2. someone else’s server?
    @kubernetesonarm & @twelho

    View Slide

  3. someone else’s problem?
    @kubernetesonarm & @twelho

    View Slide

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

    View Slide

  5. mental model vs reality
    @kubernetesonarm & @twelho

    View Slide

  6. 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.

    View Slide

  7. 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
    *

    View Slide

  8. 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

    View Slide

  9. what are my options?
    @kubernetesonarm & @twelho

    View Slide

  10. 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

    View Slide

  11. 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

    View Slide

  12. reality for us students
    @kubernetesonarm & @twelho

    View Slide

  13. 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

    View Slide

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

    View Slide

  15. View Slide

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

    View Slide

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

    View Slide

  18. the declarative, hardened glue:
    @kubernetesonarm & @twelho

    View Slide

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

    View Slide

  20. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  25. 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

    View Slide

  26. 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

    View Slide

  27. 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

    View Slide

  28. 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

    View Slide

  29. 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

    View Slide

  30. 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.

    View Slide

  31. 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

    View Slide

  32. 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

    View Slide

  33. is this realistic?
    @kubernetesonarm & @twelho

    View Slide

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

    View Slide

  35. 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

    View Slide

  36. disclaimer:
    @kubernetesonarm & @twelho

    View Slide

  37. values
    @kubernetesonarm & @twelho

    View Slide

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

    View Slide

  39. 1. Security
    2. Interoperability
    @kubernetesonarm & @twelho

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  43. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  47. 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

    View Slide

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

    View Slide

  49. use cases
    @kubernetesonarm & @twelho

    View Slide

  50. homelabs
    @kubernetesonarm & @twelho

    View Slide

  51. education
    @kubernetesonarm & @twelho
    heylagostechie on Unsplash

    View Slide

  52. research
    @kubernetesonarm & @twelho
    Science in HD on Unsplash

    View Slide

  53. edge computing
    Darya Jumelya on Unsplash @kubernetesonarm & @twelho

    View Slide

  54. ecosystem & community
    @kubernetesonarm & @twelho

    View Slide

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

    View Slide


  56. Baim Hanif on Unsplash
    your path to mastering cloud native?

    View Slide

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

    View Slide

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

    View Slide