Please log in to watch this conference skillscast.
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.
YOU MAY ALSO LIKE:
- London Microservices User Group- July (in London on 5th July 2017)
- Russ Miles' Microservices Workshop (in London on 4th - 6th September 2017)
- Uncle Bob's Clean Code: Agile Software Craftsmanship (in London on 1st - 3rd November 2017)
- µCon 2017: The Microservices Conference (in London on 6th - 7th November 2017)
Chaos Engineering and Runtime Monitoring of Distributed Reactive Applications - Intermediate
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.