(A talk given at London Continuous Delivery meetup group, Oct 2017 – Continuous Delivery with Containers – meetup.com/London-Continuous-Delivery/events/240796810/ )
Continuous Delivery of Microservices is hard. Instead of one monolithic application, there’s now a plethora of applications all talking via defined API calls. But how does a team ensure that a change to Service A’s API won’t affect Service B’s consumption of A’s API? What about versioning APIs? What happens if service A removes a field without service B knowing about it?
Consumer Driven Contracts (CDC), popularised by Martin Fowler (article – written by Ian Robinson), is a way for a Consuming Service to define what it expects as a response from a Providing Service when calling the Providers API.One of the most prevalent implementation of CDC’s is Pact; originally created by realestate.au. Pact provides a framework and a definition of CDC’s, which has spawned numerous implementations across a multitude of languages.By adding Pacts to a delivery pipeline, a team can automate the testing between two services to ensure that they can communicate when released.
In this talk, Harry Winser will be looking at how Consumer Driven Contracts were implemented between teams that look after over 50 different Microservices. The talk will cover the concepts of CDC’s, and how they can be leveraged to achieve fully independent releases of Microservices across teams, and how to handle a Service Rollback while still serving over 47 million requests a day. It will also look at the tools that were used, such as Docker and how it enabled easier testing for Developers.