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:
- Docker Fundamentals with Matt Saunders (Online Course on 22nd - 25th February 2021)
- CloudNative eXchange 2020 (Online Conference on 14th - 15th December 2020)
- Smash you some Haskell on a Minikube (SkillsCast recorded in November 2020)
- Debugging Containers on Kubernetes with "kubectl debug" (SkillsCast recorded in July 2020)
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.