As we work more with distributed systems, microservices and legacy services, we introduce a web of inter-service dependencies that cause us to face many challenges across our development and deployment pipeline. Resource consumption, deployment time, our testing feedback cycle, third party service flakiness and costing can cause problems. This talk addresses these issues by using some open source tooling to demonstrate how the technique of ‘API Simulation’ can be used to overcome these issues.
Target Audience: Developers, testers
Prerequisites: Only basic knowledge of programming, ops, CI/CD, automated tests, http
Currently the way in which teams test interaction with undeployed external services tends to be adhoc - sometimes teams use mocks which replace what should be the architectural boundary of your application, removing value from your tests. They also use sandbox environments, which can be flaky, costly or do not help you produce deterministic tests. I hope to demonstrate better practices, which involve using Hoverfly, a lightweight service virtualisation tool to quickly spin up and tear down virtual services. I want to emphasise how a virtual service should be a first class citizen, automatically built and published as an artefact alongside your actual services. And finally I wanted to address the problem of managing virtual service data by having a centralised repository to contain it. These concepts are not only relevant to microservices, but also to people who want to test against legacy services. It's also important to note that as part of an alternative to enterprise tooling, the open source solutions aim to move away from clunky desktop applications towards something more lightweight that can fit into more modernised development environments and pipelines.