  Virtualization, either at OS- or hardware level, plays an important role in
cloud computing. It enables easier automation and faster deployment in
distributed environments. While virtualized infrastructures provide a level of
management flexibility, they lack practical abstraction of the distributed
resources. A developer in such an environment still needs to deal with all the
complications of building a distributed software system. Different
orchestration systems are built to provide that abstraction; however, they do
not solve the inherent challenges of distributed systems, such as
synchronization issues or resilience to failures. This paper introduces Nefele,
a decentralized process orchestration system that automatically deploys and
manages individual processes, rather than containers/VMs, within a cluster.
Nefele is inspired by the Single System Image (SSI) vision of mitigating the
intricacies of remote execution, yet it maintains the flexibility and
performance of virtualized infrastructures. Nefele offers a set of APIs for
building cloud-native applications that lets the developer easily build,
deploy, and scale applications in a cloud environment. We have implemented and
deployed Nefele on a cluster in our datacenter and evaluated its performance.
Our evaluations show that Nefele can effectively deploy, scale, and monitor
processes across a distributed environment, while it incorporates essential
primitives to build a distributed software system.
