📣 Racklet is a very early-stage project. If you want to get involved, join the #racklet channel in the OSFC Slack.

Introducing Racklet

   5 minute read

Hello, world!

Welcome to the Racklet blog! If you like cloud computing, security, embedded development and innovative design, this is the place for you. The Racklet community and developers are designing a tabletop datacenter for education, research, tinkering and what ever use you may come up with. Keen to hear more and to contribute? Read on!

A Tabletop Datacenter?

Racklet is a cluster computer system powered by single board computers. A cluster computer is essentially just many individual computers connected to the same network to collaborate on programs to run. These computers are typically highly powerful servers in a datacenter, but they can techincally be anything – we’re using credit-card-sized single board computers like the Raspberry Pi.

In a cloud computing datacenter, the programs that are run on cluster computer systems are the websites and databases we rely on every day, such as search engines, video streaming services, cloud storage and wiki-pages. Racklet aims to be fit for these tasks as well, just on a scale that fits on your desk. With this scale obviously comes lower performance, but crucially an affodable price and good accessibility as well.

Learning from the Hyperscalers

The largest companies in the world operating cloud services, such as Google, Amazon, Facebook and Microsoft, are called the hyperscalers of the cloud industry. These companies have a lot of money to spend on cloud research and development, and one of their biggest challenges is security. Google just committed to investing $10 billion to improving the state of cybersecurity over the next five years.

Naturally this leads to a lot of work on the security of the cluster computer systems their infrastructure relies on. Developmens such as hardware root of trust and containers are integral parts of a modern, secure cloud stack. In addition to this, technologies such as Kubernetes have been developed to drive the upkeep and maintenance overhead down, and to enable easy scaling of applications. As an example of what can be achieved, take a look at this live demo that uses Kubernetes to process a massive physics dataset to rediscover the Higgs boson.

Making Hyperscaler technology accessible

Racklet is not just another Raspberry Pi rack running a couple of applications in Docker. We aspire to bring the leading edge of cloud computing security, scalability and management within arm’s reach, with a price less than that of a single “real” server. While many required software components are already open source, building a complete cloud stack using them is definitely not an easy feat. Racklet aims to lower the barrier of entry, and naturally all software and hardware components of the system will be published as open source for the community to hack on and improve.

The humble beginnings

The idea behind Racklet dates back multiple years, back to May 2015: The Raspberry Pi 2 had just been released and Lucas Käldström was experimenting with how to combine the computing power of multiple of these small, affordable computers based on the ARM architecture. After porting Kubernetes to ARM and upstreaming the support, the idea of an end-to-end system like Racklet slowly evolved over the years in Lucas' mind. The breakthrough came on a university course where Lucas met Dennis Marttinen, Verneri Hirvonen and some other students interested in the concept. After roughly a year and a half of thinking, research and countless ideological redesigns of the architecture, Racklet has finally started materializing by help of the work put into it during this summer.

Respecting values, driven by documentation

Our aim is not only to build a great solution, we also want to foster a diverse community consisting of everyone willing to learn about, educate with, hack on and use Racklet. It is a multifaceted, complicated project, but we will try to get the barrier of understanding the core concepts low. In other words, the following spinoff of a classic XKCD describes nicely what we mean by documentation not being clear enough:

XKCD spinoff by @gf_256 on Twitter

The entirety of the Racklet hardware and software stack bases on openly available RFC (Request For Comments) documents, and in RFC-0001 we have detailed a concise set of core values that drive all design decisions and considerations. In short, they are the following:

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

Go check out RFC-0001, it summarizes the high-level architecture of Racklet in more detail. If something is unclear, don’t hesitate to open an issue in the Racklet repo! The core team might sometimes accidentally produce docs not unlike the above XKCD spinoff, and that needs to be rectified :)

We’re just getting started

This summer Racklet participated in the CNCF mentorship program hosted as part of LFX. While Dennis, Lucas and Verneri have worked hard during the summer, we are just three people that have needed to learn many new skills in everything from hardware design and electronics to embedded Rust and proper tracing and YAML parsing. Let’s have a look at the current state of affairs next.

Right now the first two high-level RFCs are up on https://docs.racklet.io/ with a couple more detailed ones being worked on in the the Racklet repo. Work has gone into writing supportive tooling like kicad-rs to help us learn the safe and performant Rust programming language as well as aid in the electronics work happening in electronics-prototyping. The rack hardware design has been started in the rack repo, embedded Rust firmware research is ongoing in bmc-experiments, and some higher-level tracing, logging and data processing advancements are shaping up in deklarative for enabling observability and scalability. Look out for more blog posts on these matters on this here blog very soon!

This project will take time to mature, and we are happy to receive contributions for improving the designs, code and documentation. Go have a look at the Racklet repositories to get started! Come join us on the #racklet channel in the OSFW Slack, and you’re also welcome to join our community meetings on Mondays, details in the Slack channel!

You’ve reached the end, thanks for your interest! We hope you share our excitement, feel free to join the community and follow the project’s continued development on this blog and on Slack.

Written by: