ppbench - A Visualizing Network Benchmark for Microservices

Companies like Netflix, Google, Amazon, Twitter successfully exemplified elastic and scalable microservice architectures for very large systems. Microservice architectures are often realized in a way to deploy services as containers on container clusters. Containerized microservices often use lightweight and REST-based mechanisms. However, this lightweight communication is often routed by container clusters through heavyweight software defined networks (SDN). Services are often implemented in different programming languages adding additional complexity to a system, which might end in decreased performance. Astonishingly it is quite complex to figure out these impacts in the upfront of a microservice design process due to missing and specialized benchmarks. This contribution proposes a benchmark intentionally designed for this microservice setting. We advocate that it is more useful to reflect fundamental design decisions and their performance impacts in the upfront of a microservice architecture development and not in the aftermath. We present some findings regarding performance impacts of some TIOBE TOP 50 programming languages (Go, Java, Ruby, Dart), containers (Docker as type representative) and SDN solutions (Weave as type representative).

[1]  Sam Newman,et al.  Building Microservices , 2015 .

[2]  David Mosberger,et al.  httperf—a tool for measuring web server performance , 1998, PERV.

[3]  Asoke K. Talukder,et al.  Cloud Economics: Principles, Costs, and Benefits , 2010, Cloud Computing.

[4]  Nane Kratzke Lightweight Virtualization Cluster How to Overcome Cloud Vendor Lock-In , 2014 .

[5]  Abhishek Verma,et al.  Large-scale cluster management at Google with Borg , 2015, EuroSys.

[6]  Hanspeter Schmid,et al.  Measuring a Small Number of Samples, and the 3v Fallacy: Shedding Light on Confidence and Error Intervals , 2014, IEEE Solid-State Circuits Magazine.

[7]  Eric Gamess,et al.  A Comparative Analysis of Network Benchmarking Tools , 2009 .

[8]  Nane Kratzke,et al.  About Automatic Benchmarking of IaaS Cloud Service Providers for a World of Container Clusters , 2015 .

[9]  Schahram Dustdar,et al.  Winds of Change: From Vendor Lock-In to the Meta Cloud , 2013, IEEE Internet Computing.

[10]  R Core Team,et al.  R: A language and environment for statistical computing. , 2014 .

[11]  Charles Anderson,et al.  Docker , 2015, IEEE Softw..

[12]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[13]  Nane Kratzke,et al.  How to Operate Container Clusters more Efficiently? Some Insights Concerning Containers, Software-Defined-Networks, and their sometimes Counterintuitive Impact on Network Performance , 2015 .

[14]  Randy H. Katz,et al.  Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center , 2011, NSDI.