Coder Social home page Coder Social logo

art's Introduction

ART: Automated Resilience Testing for microservices

ART is a framework for automated resilience testing on microservices deployed on top of Istio. Our purpose is to provide meaningful insights of application behavior during failure and improve ease-of-use of microservice fault-tolerance testing. ART accomplishes these goals by identifying critical application components, automatically conducting fault-injection experiments, and presenting the results to the user.

Full Paper

Usage

Build

Run make at the top level directory to build the client binary.

Dependencies:

  • python3/pip3
  • go 1.14

If make is successful, you can run the client binary with ./bin/client. By default, the client library will connect to a test cluster we already have running so all tracing and fault injection functionality should be already set up.

Shell commands:

  • experiment - Runs a full experiment as described from the paper
  • continue - Continues an experiment in case of temporary failures
  • kiali - Uses kiali instead of sub-graph mining to conduct an experiment

The sections below are for deploying ART on your own application cluster. You can disregard them if you are simply demo-ing ART with our test cluster.

Fault Service

ART requires the fault service be deployed in the application cluster. This allows for the ART client to apply fault injections on the cluster without having the necessary Kuberentes certificates. We have provided yaml files in kubernetes-manifests/ to help you deploy the fault service.

Client

The client is an interactive shell, which you can start with the following command:

$ client --jaeger <jaeger-addr> --fault <fault-addr> --kiali <kiali-addr>

Flags:

  • jaeger: Address of jaeger component where you can query traces from
  • fault: Address of fault service deployed in the cluster
  • kiali: Address of kiali

art's People

Contributors

triplewy avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.