Hb7oitvdcldqjpiivoja
SkillsCast

Chaos Engineering and Runtime Monitoring of Distributed Reactive Applications - Intermediate

8th December 2016 in London at Business Design Centre

There are 57 other SkillsCasts available from Scala eXchange 2016

Please log in to watch this conference skillscast.

607118894 640

Distributed systems are difficult to build and test, so it is important that you identify weaknesses before they manifest in system-wide, aberrant behaviours. Tools such as docker and docker-compose standardise the process of defining system components and deploying them. However, current testing frameworks for these environments are often inadequate for performing end-to-end testing or Byzantine fault injection.

During this talk, you will explore the docker-compose-testkit. This is an open-source asynchronous testing framework (implemented in Scala) that allows docker containers to be instrumented (instrumentation sensors are modelled by Observables), deployed (e.g. by docker-compose) and then fault injected (fault injection points are modelled by Observers). Abstraction layers allow the same testing code to target both local environments and cloud environments (e.g. AWS, DC/OS, etc.).

A Scala DSL is introduced to define composable and modular state machines that allow one to both monitor these sensors at runtime and to match against expected outcomes. Using for-comprehensions, complex testing scenarios may be defined that allow for warm-up and fault injection.

You will discover full code demonstrating a wide range of example scenarios, along with live coding demonstrations.

The Call for Papers is now open for Scala eXchange 2017! Submit your talk for the chance to join a stellar line-up of experts on stage. Find out more.


Get your tickets for Scala eXchange 2017!

YOU MAY ALSO LIKE:

Chaos Engineering and Runtime Monitoring of Distributed Reactive Applications - Intermediate

Carl Pulley

Carl is a specialist in program analysis, distributed programming and machine learning. Extensive experience in implementing large scale reactive applications that target microservice and lambda architectures.