Our 148th paper in DistSys Reading Group was “Oakestra: A Lightweight Hierarchical Orchestration Framework for Edge Computing” by Giovanni Bartolomeo, Mehdi Yosofie, Simon Bäurle, Oliver Haluszczynski, Nitinder Mohan, and Jörg Ott. We had a very detailed presentation in the reading group, so I will make a very short summary to compensate.
Oakestra, in a nutshell, is a hierarchical container/task scheduler for cloud-edge deployments. It assumes that each edge data center or site has some compute capacity; that capacity and capability may be different at different sites, so heterogeneity of hardware is an obstacle here. Anyway, each site then has a local scheduler or orchestrator that can play nicely with the site’s hardware capability. That scheduler then can subscribe to the root orchestrator sitting somewhere in the cloud. The root only vaguely knows that it has some edge clusters that can do some things. When a container/task needs to be scheduled, the root finds a suitable site that reports having some capacity and passes the scheduling duty along to the site’s orchestrator. As a result, the scheduling happens in two steps, with the second step being essentially partitioned across the edge clusters.
The system also has a good chunk of goodies wrapped around this two-tier scheduling to make it work well for the edge use cases. For example, the scheduler can work with some edge-specific constraints for placing/deploying containers of applications, such as geographical locations or latency. Oakestra, in addition to scheduling, has other components for orchestrating edge deployments. Networking plays an important part, and with overlay network and Oakestra DNS, microservices can optimize communication based on their geography. For instance, when one microservice needs to call another microservice ms2, it can do so by specifying a desired instance or locality — e.g., saying the address closest.ms2 will resolve to the nearest (in terms of latency/geography) instance of microservice ms2.
Our reading group takes place over Zoom every Wednesday at 2:00 pm EST. We have a slack group where we post papers, hold discussions, and most importantly manage Zoom invites to paper discussions. Please join the slack group to get involved!