Confidently Releasing Microservices With Consumer-Driven Contract Testing

Many teams working with microservices need confidence they don't break functionality when making changes. System integration tests, functional tests, and sometimes manual tests are older ways to obtain that confidence. These processes may take more than 1 day or even more if different teams or a different company own the services.

To ensure the same level of confidence and speed up delivery, we can create Contracts for integrations between consumers and providers. Contracts created by consumer services need to pass with every build going in production to guarantee the integrations between systems/services work fine. Checking these contracts in a CI/CD pipeline makes feedback loops even faster.

A Contract is a collection of agreements between a Consumer and a Provider that describes the interactions that can take place between them. Consumer-Driven Contracts (CDCs) is a pattern that drives the development of the Providers from its Consumer's point of view. It is TDD for microservices.

This talk covers where and where not to do contract testing, backed up by real project experiences. The experience in doing contract testing at scale, mistakes, lessons learned are the core of the talk.

Last year I introduced this topic and talk was mostly focused on the introduction part of CDC. This year, I am planning to talk more about use cases and where the Contract Testing fits and where not from the real project experiences that I had.

Happy CDC!

 
 

Outline/Structure of the Talk

  1. Introduction to microservices common deployment patterns
  2. The pitfall of a couple of deployment strategies
  3. Introduction to Consumer-Driven Contract Tests
  4. How CDC helps in speeding up the Continuous Delivery
  5. Demo of CDC for two microservices integration.
  6. Putting CDC in CI/CD workflow.
  7. Experience using different CI/CD strategies
  8. How the contract testing makes feedback look faster in agile teams
  9. Q&A

Learning Outcome

  1. New testing strategy to fasten continues delivery
  2. Understanding multiple testing approaches
  3. Deploying services autonomously with confidence
  4. Understanding contract testing with example
  5. Automating service dependencies
  6. Putting CDC in CI/CD workflow

Target Audience

Developers, Analyst, Agile Coach, anyone who works in a cross-functional team

schedule Submitted 3 months ago

Public Feedback

comment Suggest improvements to the Speaker
  • Naresh Jain
    By Naresh Jain  ~  3 months ago
    reply Reply

    Hi Gopinath,

    Thanks for your proposal. This looks like a repeat of last year's session. Can you please help us understand what will be different?

    • Gopinath Langote
      By Gopinath Langote  ~  3 months ago
      reply Reply

      Hello Naresh,

      Last year I introduced this topic and talk was mostly focused on the introduction part of CDC.

      This year, I am planning to talk more about use cases and where the Contract Testing fits and where not from the real project experiences that I had.

      • Aino Corry
        By Aino Corry  ~  1 month ago
        reply Reply

        Hi Gopinath

        Would it be possible to rewrite your proposal to make it visible that this is different than last year's talk, perhaps mention what you wrote here?

         

        • Gopinath Langote
          By Gopinath Langote  ~  1 week ago
          reply Reply

          Hello,

           

          I have updated the abstract accordingly.

  • Aino Corry
    By Aino Corry  ~  1 month ago
    reply Reply

    Hi Gopinath, thank you for your submission. 

    What is the difference between your two submissions? Which would you prefer yourself?

    • Gopinath Langote
      By Gopinath Langote  ~  1 month ago
      reply Reply

      Hello @Aino,

       

      Between two submissions for Agile India 2020

      1. Confidently Releasing Microservices With Consumer-Driven Contract Testing - TALK

      > This is a talk focused on, introduction to the contract testing and its enterprise-level use case (from my past experiences of using it). I had given the talk last year in same conference, this year I am going to extend it to the more of case study - what did work for us and whatnot, etc. And remove the basic contract testing part.

       

      2. Consumer Driven Contract Testing - TTDing microservices - WORKSHOP

      > This is a hands-on workshop on implementing contract testing. I am planning to use it on java bases micro-services. 

       

      The major difference is TALK & WORKSHOP.

       

      I hope this answers your question. Let me know if you need any extra information from my side.

      • Gopinath Langote
        By Gopinath Langote  ~  1 month ago
        reply Reply

         

        About preference, I would prefer theTALK.

         

        As the workshop is better for an entire day timeline, not just 4hrs (limited scope).