In the search for modular, efficient and safe applications, unikernels are currently at the frontier. A unikernel has a minimal footprint in terms of lines of code, resources and bagage, making it an attractive choice for future microservice architectures. A cluster of unikernels can collectively fulfill the task of the past monolith application, with members leaving and joining the cluster to scale elastically or to deploy new functionality seamlessly. By gossiping amongst each other, the unikernels of the cluster can keep track of these membership changes in a reliable way with low overhead.
In this talk, we will in investigate how to manage cluster membership in the context of MirageOS, one of the leading unikernel implementations written in OCaml. The SWIM gossip protocol will be introduced, and we will go through how to implement this in MirageOS with OCaml. Finally I will show how property based testing (Quickcheck) can be used to verify the protocol implementation.
Andreas is a team lead at Zendesk and long-time OCaml enthusiast. He has previously worked at Hailo and Citrix, as well as multiple startups.