Hi Phil, tell us who you are and what lead you into microservices?
I’m Phil, I’m a software engineer with Mettle: a company providing current accounts to small businesses. I’ve been working in software engineering for 7 years across a variety of projects, mostly in the public sector but some in the private sector as I am now. In every subsequent project the move to microservices has been more pronounced. The reason I keep seeking opportunities to build better microservice systems is that it presents huge challenges with unequalled rewards – no other current system design can give equivalent throughout, scale or reliability. The challenges of increased complexity and distributed communication draws me, and I believe many others, to seek better and better solutions and implementations.
What will you be talking about at Voxxed Days Microservices?
I will be offering a look into how we at Mettle used consumer driven contracts to enable us to do continuous delivery into production. We wanted to deploy little and often into production but to do that we needed to make sure our services were compatible with the versions of other services in all environments. I’ll also take a look at how to implement it in your services and your CI – again with tips for what to do and what to avoid from our own experience of moving from a monolithic deployment to independent micro deployments.
When building an API it’s usually the provider’s job to test its APIs. Consumer-Driven Contract tests go the other way round. Could you explain the interactions between the API consumer and the API provider in CDD tests ?
The responsibility for testing the functionality of the API still lies with the provider. The difference is the consumer defines the format of the interactions (typically the requests and responses). The provider then, in addition to its functional tests, tests that it meets the contract (provides responses in the required format). This fosters more personal interactions between provider and consumer engineers as they decide the contract and work to make sure it’s met. By doing this we’ve divided testing into testing functionality and testing interactions: a key distinction in the world of microservices.
Good, see you soon then
Looking forward to it!
#microservicetesting #continuousdeliveryenabled #pact
My contact information