O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Consumer Driven Contracts and Your Microservice Architecture

19.907 visualizações

Publicada em

My talk from SpringOnePlatform about Spring Cloud Contract

Links:
* http://martinfowler.com/articles/consumerDrivenContracts.html - article about Consumer Driven Contracts by Ian Robinson
* https://github.com/marcingrzejszczak/springone-cdc-client - code for the client side of the presented example
* https://github.com/marcingrzejszczak/springone-cdc-server - code for the server side of the presented example
* https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html - documentation of the Spring Cloud Contract project

Publicada em: Tecnologia
  • Brandon. I can see what your saying... Ruby`s st0ry is good... on saturday I got Car after bringing in $7751 this past month and just a little over ten-grand this past-month. without a doubt it is the nicest-job I've ever done. I actually started 6 months ago and pretty much straight away began to bring in at least $71, per-hour. I use the details here.... ...jobs62.com
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • if you think Robert`s story is incredible..., 3 weeks Ago my girlfriends sister bAsicAlly eAsily mAde $5311 just sitting there thirteen hours A week from home And the're neighbor's step-mother`s neighbour hAs been doing this for 5 months And eAsily mAde more thAn $5311 pArttime on their pc. use the steps AvAilAble At this link,............job7000.com
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • ●▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬● I q­ui­­­t wo­­­rk­­­­ing m­­­y de­­s­k jo­­­b an­­d n­­o­w, I st­­­art­­­e­d e­­arn­­­in­­g 9­­5 b­­­­­­uck­­­­­­s ho­­­­ur­­­­­l­y...H­­­­o­w I d­i­d i­­­­­­t? I a­­m f­reelan­­­­­cing o­v­­­­­­­er t­h­­­­­e i­n­t­­­­­­­­­­­­ernet! M­­­y la­­­s­t jo­­­­­­­­­­­­­­­­­­­­b d­id­­­n't e­­­­­xact­­­­­ly m­­­­­­­­ak­­­­­­e m­­­­­­­­e ha­­­­­­­­­pp­­­­­­y s­­­­­­­­­o I w­­­­­an­t­e­­­­­­d t­­­­­o t­­­­­­­­ak­e a b­­r­e­ak a­­­­nd h­­­av­­­e a f­­­re­­sh s­­tar­­t… A­­­­f­t­e­r 6 y­­­r­s I­t w­­­­as we­­­­­i­rd fo­­r m­e t­o le­­­­­ave m­­y p­­re­­­vi­­­ous j­­­­ob a­n­­­­­d n­­­­­­ow I a­m del­­­igh­ted we­­­r­e i am ➤➤➤➤➤w­­w­­w­­.finestylereview.com
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • hi Start working I essentially started three weeks past and that i makes $385 benefit $135 to $a hundred and fifty consistently simply by working at the internet from domestic. I made ina long yes you can essentially started three weeks past and that i makes $385 benefi.........job7000.com
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • ● i earned $5000 last month by the use of operating on-line most effective for five to eight hours on my pc and this was so clean that i in my opinion could not accept as authentic with earlier than running in this website. if you too want to earn this type of huge coins then come and be a part of us. do this internet-website on line ........... g­­­o t­­­o t­­­hi­­­s si­­­te ho­­­me media tech t­­­a­­­b f­­­or m­­­or­­­e d­­­et­­­a­­­i­­­l thank you . copy&paste HERE☛www.topcash28.com
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

Consumer Driven Contracts and Your Microservice Architecture

  1. 1. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Consumer Driven Contracts and Your Microservice Architecture By Marcin Grzejszczak @mgrzejszczak
  2. 2. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ About me • Spring Cloud developer • Working mostly on Spring Cloud Sleuth and Spring Cloud Contract • Automation freak Twitter: @mgrzejszczak Blog: http://toomuchcoding.com
  3. 3. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Agenda • Introduction • Demo • Summary
  4. 4. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Introduction • Producer – service that exposes an API • Consumer – service that consumes the API of the producer • Contract – agreement between producer and consumer how the API will look like • Consumer Driven Contracts – approach where the consumer drives the changes of the API of the producer
  5. 5. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What are we going to code? • Consumer – service that gets beer requests – has to ask another service if the client can get the beer • Producer – service that checks if the client is old enough to buy beer • Feature – if the user is too young - the beer will not be sold – otherwise the beer will be granted
  6. 6. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ DEMO
  7. 7. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Summary With Spring Cloud Contract and Consumer Driven Contracts: • we’ve created an API that suits the consumer and the producer • expectations were defined by readable contracts that were tested against the producer • producer stubs can be reused by consumers • starting and setting stubs is fully automated
  8. 8. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Summary - Consumer flow 1 Consumer • starts TDD - writes the test for the feature • clones producer code to change the API locally • in the cloned producer code converts contracts into stubs and installs them locally • in the consumer code turns Stub Runner to offline mode • configures Stub Runner to download stubs of the producer • red - green - refactor on the API and tests • repeats the process until the tests are green and API acceptable • files a PR to the producer with the contract proposal
  9. 9. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Summary - Producer flow Producer • takes over the PR • writes the missing implementation that will make the autogenerated tests pass • merges PR and deploys the JARs with the app and the stubs
  10. 10. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Summary - Consumer flow 2 Consumer • switches off the Stub Runner’s offline mode once the producer uploads the stubs • configure Stub Runner by providing the URL to a repo with stubs • will have its test broken if the producer makes any breaking changes of the API
  11. 11. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Why use Spring Cloud Contract Verifier? • Possibility to do CDC with messaging • Clear and easy to use, statically typed DSL • Automatic generation of tests from the defined Contract • Stub Runner functionality - the stubs are automatically downloaded at runtime from Nexus / Artifactory • Spring Cloud integration - no discovery service is needed for integration tests
  12. 12. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ QUESTIONS?
  13. 13. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ ● http://martinfowler.com/articles/consumerDrivenContracts.html - article about Consumer Driven Contracts by Ian Robinson ● https://github.com/marcingrzejszczak/springone-cdc-client - code for the client side of the presented example ● https://github.com/marcingrzejszczak/springone-cdc-server - code for the server side of the presented example ● https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html - documentation of the Spring Cloud Contract project Thank you!
  14. 14. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Learn More. Stay Connected. https://gitter.im/spring-cloud/spring-cloud-contract @springcentral spring.io/blog @pivotal pivotal.io/blog @pivotalcf http://engineering.pivotal.io

×