<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Symposium on Software Performance, November</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>MiSim - A Lightweight and Extensible Simulator for a Scenario-Based Resilience Evaluation of Microservice Architectures</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Lion Wagner</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sebastian Frank</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alireza Hakamian</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>André van Hoorn</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Hamburg, Department of Informatics</institution>
          ,
          <addr-line>Vogt-Kölln-Straße 30, 22527 Hamburg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Stuttgart, Institute of Software Engineering</institution>
          ,
          <addr-line>Universitätsstraße 38, 70569 Stuttgart</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <volume>0</volume>
      <fpage>9</fpage>
      <lpage>10</lpage>
      <abstract>
        <p>With the growing popularity of microservice-based architectures, the need for an efective resilience assessment of these systems occurred. A resilience assessment is often done in production using so-called chaos experiments. While producing representative results, chaos experiments often (1) require a significant investment of time, (2) impact customer experiences as they stress the system under test, and (3) do not lean towards parallel running because of interference. Simulating chaos experiments is an alternative approach to running experiments in a production environment. Today, there are many simulators available for distributed and service-oriented architectures. Popular examples are SimuLizar [1], DraCeo [2], BigHouse [3],  qsim [4], PacketStorm [5], iFogSim [6] or GreenCloud [7]. Most of these focus on either performance or eficiency by simulating or solving queuing models. However, none of them satisfies the following requirements: (1) supporting many resilience patterns, (2) simulating multiple typical chaos injections such as killing a service instance, and (3) being a lightweight simulator that has low overhead in modeling and simulation. Therefore, we developed MiSim, a simulator specializing in the simulation of (1) resilience patterns and (2) chaos injections. In addition, the simulator supports scenario structures introduced by the Architecture Tradeof Analysis Method (ATAM) [ 8] as input. Furthermore, it was targeted to have no external requirements, such as a Platform as a Service (PaaS), submodules, or libraries.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Objective</title>
    </sec>
    <sec id="sec-2">
      <title>Result</title>
      <p>
        We elicited 24 requirements for MiSim by interviewing stakeholders. In our case, the stakeholders
are a group of researchers interested in simulating chaos experiments. We evaluated the
simulator engine quality and usability of the simulator. For simulator engine quality, we
performed a (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) code review, (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) feature comparison to other simulators, (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) performance
analysis, and (
        <xref ref-type="bibr" rid="ref4">4</xref>
        ) analyzed the simulation accuracy of real-world scenarios [9].
The current version of MiSim supports 20 out of the 24 elicited requirements. We did not
implement four requirements due to time restrictions of the project. For a more detailed
overview of supported features, have a look at MiSim’s GitHub repository1.
      </p>
      <p>
        As required, MiSim supports (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) common resilience patterns (i.e., Circuit Breaker, Rate Limiter,
Retry, Autoscaler, and Self-Restarting) and (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) chaos injections (i.e., instance/service killing
and latency injections). Additionally, (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) there are no external dependencies, and the compiled
simulator is only about 11 MB in size. Among others, the simulator accepts LIMBO models
[10, 11] as workload definitions and an ATAM scenario-based experiment format. Lastly,
throughout the development process, multiple supporting tools for creating architectures or
scenarios were created in related projects [12, 13, 14].
      </p>
      <p>Regarding the usability of the simulator, we performed an online meeting with our
stakeholders to collect experiences on installing and running chaos experiments through MiSim.
The overall feedback was positive. However, one minor complaint was about the necessity to
improve the code documentation.</p>
      <p>The performance evaluation of MiSim revealed that it has a high memory-impact, that
strongly relates to the number of simulated requests. This is mainly due to a faulty metric
collection system. Additionally, the computational demand on the underlying simulation engine
DESMO-J1 is relatively high. Over 90% of the computation time is spent on the (re-)scheduling
of events. However, even for the simulation of complex experiments, the actual computation
time does not take unreasonably long.</p>
      <p>Lastly, simulating real-world scenarios confirmed that the implemented patterns behave as
expected. Furthermore, this showed that the calibration options and accuracy of the simulation
could be improved, since specifically varying workloads were sometimes poorly simulated.</p>
    </sec>
    <sec id="sec-3">
      <title>Talk Outline and Additional Resources</title>
      <p>In this talk, we will present the current state of MiSim. We will show an extract of its internal
design and how other researchers/practitioners can extend the simulator. Further, we
demonstrate how to extract architecture models from real traces. Additionally, we show examples of
chaos experiments and cover our findings on performance and accuracy. For a preview, check
out MiSim’s GitHub repository2.</p>
      <p>1http://desmoj.sourceforge.net/
2https://github.com/Cambio-Project/resilience-simulator
This research is funded by the Baden-Württemberg Stiftung (Orcas project) and the German
Federal Ministry of Education and Research (Software Campus 2.0 — Microproject: DiSpel).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Becker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Becker</surname>
          </string-name>
          , J. Meyer, Simulizar:
          <article-title>Design-time modeling and performance analysis of self-adaptive systems</article-title>
          , in: S. Kowalewski,
          <string-name>
            <surname>B.</surname>
          </string-name>
          Rumpe (Eds.),
          <source>Software Engineering</source>
          <year>2013</year>
          ,
          <article-title>Gesellschaft für Informatik e</article-title>
          .V.,
          <string-name>
            <surname>Bonn</surname>
          </string-name>
          ,
          <year>2013</year>
          , pp.
          <fpage>71</fpage>
          -
          <lpage>84</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>H. H. A.</given-names>
            <surname>Valera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dalmau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Roose</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Larracoechea</surname>
          </string-name>
          , C. Herzog,
          <article-title>DRACeo: A smart simulator to deploy energy saving methods in microservices based networks</article-title>
          ,
          <source>in: 2020 IEEE 29th International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE)</source>
          , volume 2020-Septe, IEEE,
          <year>2020</year>
          , pp.
          <fpage>94</fpage>
          -
          <lpage>99</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>D.</given-names>
            <surname>Meisner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. F.</given-names>
            <surname>Wenisch</surname>
          </string-name>
          ,
          <article-title>BigHouse: A simulation infrastructure for data center systems</article-title>
          ,
          <source>in: 2012 IEEE International Symposium on Performance Analysis of Systems &amp; Software, IEEE</source>
          ,
          <year>2012</year>
          , pp.
          <fpage>35</fpage>
          -
          <lpage>45</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Gan</surname>
          </string-name>
          , C. Delimitrou, µqSim: Enabling Accurate and
          <article-title>Scalable Simulation for Interactive Microservices</article-title>
          , in: 2019
          <source>IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS)</source>
          , IEEE,
          <year>2019</year>
          , pp.
          <fpage>212</fpage>
          -
          <lpage>222</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Packetstorm</given-names>
            <surname>Communications</surname>
          </string-name>
          ,
          <source>Network Simulation - PacketStorm</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>H.</given-names>
            <surname>Gupta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Vahid</given-names>
            <surname>Dastjerdi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. K.</given-names>
            <surname>Ghosh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Buyya</surname>
          </string-name>
          ,
          <article-title>iFogSim: A toolkit for modeling and simulation of resource management techniques in the Internet of Things, Edge and Fog computing environments</article-title>
          ,
          <source>in: Software - Practice and Experience</source>
          , volume
          <volume>47</volume>
          , John Wiley and Sons Ltd,
          <year>2017</year>
          , pp.
          <fpage>1275</fpage>
          -
          <lpage>1296</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>D.</given-names>
            <surname>Kliazovich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Bouvry</surname>
          </string-name>
          , S. U. Khan,
          <article-title>GreenCloud: a packet-level simulator of energy-aware cloud computing data centers</article-title>
          ,
          <source>The Journal of Supercomputing</source>
          <volume>62</volume>
          (
          <year>2012</year>
          )
          <fpage>1263</fpage>
          -
          <lpage>1283</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>R.</given-names>
            <surname>Kazman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Klein</surname>
          </string-name>
          , P. Clements, ATAM:
          <article-title>Method for Architecture Evaluation</article-title>
          ,
          <source>Technical Report</source>
          , Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA
          <volume>15213</volume>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Frank</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hakamian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Wagner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kesim</surname>
          </string-name>
          , J. von
          <string-name>
            <surname>Kistowski</surname>
            ,
            <given-names>A. van Hoorn</given-names>
          </string-name>
          ,
          <article-title>Scenariobased resilience evaluation and improvement of microservice architectures: An experience report</article-title>
          ,
          <source>in: Companion of the 15th European Conference on Software Architecture (ECSA</source>
          <year>2021</year>
          ),
          <year>2021</year>
          . To appear.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J. v.</given-names>
            <surname>Kistowski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. R.</given-names>
            <surname>Herbst</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kounev</surname>
          </string-name>
          ,
          <article-title>Modeling variations in load intensity over time</article-title>
          ,
          <source>LT '14</source>
          ,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2014</year>
          , p.
          <fpage>1</fpage>
          -
          <lpage>4</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J. v.</given-names>
            <surname>Kistowski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Herbst</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kounev</surname>
          </string-name>
          ,
          <article-title>Limbo: A tool for modeling variable load intensities</article-title>
          ,
          <source>in: Proceedings of the 5th ACM/SPEC International Conference on Performance Engineering</source>
          , ICPE '14,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2014</year>
          , p.
          <fpage>225</fpage>
          -
          <lpage>226</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Beck</surname>
          </string-name>
          ,
          <source>Simulation-based Evaluation of Resilience Antipatterns in Microservice Architectures</source>
          ,
          <year>2018</year>
          .
          <source>Bachelor's Thesis</source>
          , University of Stuttgart.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>C.</given-names>
            <surname>Zorn</surname>
          </string-name>
          ,
          <article-title>Interactive elicitation of resilience scenarios in microservice architectures</article-title>
          ,
          <year>2021</year>
          .
          <source>Masters's Thesis</source>
          , University of Stuttgart.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>N.</given-names>
            <surname>Kammhof</surname>
          </string-name>
          , Algorithms for Eficient Chaos Experiment Selection in Microservice Architectures,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>