Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Easy Consumption of Microservices

981 Aufrufe

Veröffentlicht am

SpringOne Platform 2016
Speakers: Ted Tollefson; Senior Software Architect, Kroger & Shawn Sherwood; Application Architect, Kroger

Cloud Foundry makes it easy to deploy and run microservices. Now that you have your microservice running, how do you make it easy for other teams to consume it? Spring Initializr, Spring Boot, Spring Cloud Netflix and Cloud Foundry can be used together to make the consumption side easy and efficient. Client libraries can be offered in Spring Initializr. The generated Spring Boot application can be deployed to Cloud Foundry. Service discovery can be provided with Spring Cloud Netflix. The consuming project team can simply write their business logic. This talk will cover the steps to extend Initializr to accomplish easy microservice consumption.

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

Easy Consumption of Microservices

  1. 1. Easy Consumption of Microservices Shawn Sherwood Ted Tollefson @shawn_sherwood @tedtollefson
  2. 2. Hello Shawn Sherwood Software Architect – Kroger Co. 20+ years development experience 2 Ted Tollefson Software Architect – Kroger Co. 20+ years development experience
  3. 3. About Kroger Co. Quick Facts • Founded in 1883 by Bernard Kroger in Cincinnati, OH • Second-largest general retailer in the US • Ranked #17 on the Fortune 500 list • Currently operating in 35 states • ~431,000 Employees • 2,778 Supermarkets • 784 Convenience Stores • 323 Jewelry Stores • 38 Food Production Plants 3
  4. 4. Goal Make it easy to produce and consume microservices consistently. How are we going to do this? - Fork the Spring Initializr - Add a 3rd-party dependency - Add a VCS ignore and README - Write unit tests - Create an archetype - BONUS 4
  5. 5. Live Code Setup • Fork the Spring Initializr • Set up development environment • Add an “app” sub-project (for convenience) 5
  6. 6. Live Code Add a 3rd party dependency Scenario: You want your project teams to encrypt sensitive values in configuration files. You want to make it as easy as possible for teams to comply. Solution: You have found an encryption library that supports Spring Boot (jasypt- spring-boot-starter). You want to add it to your Initializr as an option. 6
  7. 7. Live Code Add a VCS ignore file Scenario: Some developers keep checking in inappropriate build artifacts. Solution: Create a standard VCS ignore file. Setup your Initializr to include the ignore file in every project that is generated. 7
  8. 8. Live Code Add a custom README file Scenario: When a new project is generated, we want to capture the creation date and instructions for the libraries used. Solution: Create a template of a README file and substitute values from the project model. 8
  9. 9. Live Code Write a unit test Scenario: Your teams are want to add more capabilities to Initializr, but they keep committing changes that break it. Solution: Use the unit test pattern included with Initializr. 9
  10. 10. Live Code Create a microservice archetype Scenario: You have a standard set of microservice capabilities that you want every project team to leverage. Solution: Create a microservice archetype in Initializr that automatically includes the libraries to support the desired capabilities. 10
  11. 11. Live Code Generate and Run the new microservice Show an endpoint returning JSON 11
  12. 12. Live Code (bonus round) Add Git support Scenario: You would like all of your project teams to be provisioned with a git repository in a standard way. Solution: Enhance Initializr to call and configure Git. It should create a new repository and check in the newly created code. 12
  13. 13. Live Code (bonus round) Add GitHub support Scenario: You would like all of your project teams to be provisioned with a GitHub repository in a standard way. Solution: Enhance Initializr to call and configure GitHub. It should create a new repository and push the newly created code to GitHub. 13
  14. 14. Live Code (bonus round) Add continuous integration via Travis-CI Scenario: You want your project teams to use continuous integration right from the start of the project. You want them to be setup in a consistent way. They should be provisioned in minutes. Solution: Enhance Initializr to setup Travis CI. Setup a project in travis-ci.org and sync it with github. 14
  15. 15. Extending Further Additional Enhancement Ideas • More files • Dockerfile • Application Lifecycle Management • Create a project wiki • Add issue tracking • Environments • Provision app server, database, etc. • Create dev, test, stage and production • Reference Architectures • Web app using Angular or React • Hybrid mobile app 15
  16. 16. Learn More. Stay Connected. Fork Initializr Now! Presentation: http://bit.ly/29V87HV Code: http://bit.ly/2au71UC ( https://github.com/ssherwood/ ) @springcentral spring.io/blog @pivotal pivotal.io/blog @pivotalcf http://engineering.pivotal.io

×