Beginner's Guide To Spring Cloud

53a1e8497bf6bce5a4dd2b7674929d57?s=47 Ryan Baxter
December 04, 2017

Beginner's Guide To Spring Cloud

53a1e8497bf6bce5a4dd2b7674929d57?s=128

Ryan Baxter

December 04, 2017
Tweet

Transcript

  1. Beginner’s Guide To Spring Cloud By Ryan Baxter @ryanjbaxter 1

  2. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Nice To Meet You • Rookie engineer on the Spring Cloud team • Father, Husband, OCR Athlete • Get In Touch • @ryanjbaxter • http://ryanjbaxter.com 2
  3. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Agenda • Spring Cloud Background • Key Projects • Getting Down and Dirty With Spring Cloud • Questions? 3
  4. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Survey Time 4
  5. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Anyone Know This Guy? 5 O ur Ultim ate G oal
  6. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Why Spring Cloud? • In general, cloud native apps are a good thing, just not easy • It is easy for big companies to put forth the resources to succeed with Cloud Native, but what about the little guys? • Why do we have to reinvent the wheel each time someone wants to build a Cloud Native app? • Follow the Spring Boot model of providing useful defaults for Cloud Native apps with the ability to easy configure them • Cloud Agnostic 6
  7. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Components 7 Configuration Service Discovery Routing and Messaging Tracing API Gateway Circuit Breakers CI Pipelines and Testing
  8. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Yes There Are More • Spring Cloud Bus • Spring Cloud Stream • Spring Cloud Data and Task • Spring Cloud AWS ….and more 8
  9. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Configuration • We want to remove the configuration out of the application to a centralized store across all environments • Spring cloud Config Server can use Git, SVN, filesystem and Vault to store config • Config clients (microservice apps) retrieve the configuration from the server on startup • Can be notified of changes and process changes in a refresh event 9
  10. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Service Discovery • With the dynamic nature of any cloud native application, depending on things like URLs can be problematic • Service Discovery allows micro services to easily discover the routes to the services it needs to use • Netflix Eureka • Zookeeper • Consul 10
  11. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Routing and Messaging • Your cloud native app will be composed of many microservices so communication will be critical • Spring Cloud supports communication via HTTP requests or via messaging • Routing and Load Balancing: • Netflix Ribbon and Open Feign • Messaging: • RabbitMQ or Kafka 11
  12. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ API Gateway • API Gateways allow you to route API requests (internal or external) to the correct service • Netflix Zuul • Leverages service discovery and load balancer • Spring Cloud Gateway 12
  13. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Circuit Breakers • Failure is inevitable, but your user’s don’t need to know • Circuit breakers can help an application function in the face of failure • Netflix Hystrix 13
  14. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Tracing • A single request to get data from your application may result in an exponentially larger number of requests to various microservices • Tracing these requests through the application is critical when debugging issues • Spring Cloud Sleuth and Zipkin 14
  15. Unless otherwise indicated, these slides are © 2013-2017 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ CI Pipelines and Testing • Building, testing, and deploying the various services is critical to having a successful cloud native application • Spring Cloud Pipelines is an opinionated pipeline for Jenkins or Concourse that will automatically create pipelines for your apps • Spring Cloud Contract allows you to accurately mock dependencies between services using published contracts 15
  16. DEMO

  17. Learn More. Stay Connected. Twitter: @ryanjbaxter GitHub: ryanjbaxter Homepage: http://ryanjbaxter.com

    12/5 Spring Cloud Gateway - 4:20-5:30 12/6 Continuous Deployment to the Cloud - 2:30 - 3:10 12/7 Consumer Driven Contracts and Your Microservice Architecture 10:30-11:40 17 #springone @s1p