A pragmatic testbed for distributed systems
MetadataShow full item record
Distributed systems have become ubiquitous and they continue their growth through a range of services. With advances in resource virtualization technology such as Virtual Machines and software containers, developers no longer require high-end servers to test and develop distributed software. Even in commercial production, virtualization has streamlined the process of rapid deployment and service management. This thesis introduces a distributed systems testbed that utilizes virtualization to enable distributed systems development on commodity computers. The testbed can be used to develop new services, implement theoretical distributed systems concepts for understanding, and experiment with virtual network topologies. We show its versatility through three case studies that utilize the testbed for designing a service based solution, implementing a theoretical algorithm, and developing our own methodology to find high-risk edges. The results of using the testbed for these use cases have proven the effectiveness and versatility of this testbed across a range of scenarios.