  Cloud native computing paradigm allows microservice-based applications to
take advantage of cloud infrastructure in a scalable, reusable, and
interoperable way. However, in a cloud native system, the vast number of
configuration parameters and highly granular resource allocation policies can
significantly impact the performance and deployment cost. For understanding and
analyzing these implications in an easy, quick, and cost-effective way, we
present PerfSim, a discrete-event simulator for approximating and predicting
the performance of cloud native service chains in user-defined scenarios. To
this end, we proposed a systematic approach for modeling the performance of
microservices endpoint functions by collecting and analyzing their performance
and network traces. With a combination of the extracted models and user-defined
scenarios, PerfSim can then simulate the performance behavior of all services
over a given period and provide an approximation for system KPIs, such as
requests' average response time. Using the processing power of a single laptop,
we evaluated both simulation accuracy and speed of PerfSim in 104 prevalent
scenarios and compared the simulation results with the identical deployment in
a real Kubernetes cluster. We achieved ~81-99% simulation accuracy in
approximating the average response time of incoming requests and ~16-1200 times
speed-up factor for the simulation.
