Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Beginner's Guide To Spring Cloud

Ryan Baxter
December 04, 2017

Beginner's Guide To Spring Cloud

Ryan Baxter

December 04, 2017
Tweet

More Decks by Ryan Baxter

Other Decks in Technology

Transcript

  1. 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
  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/ Agenda • Spring Cloud Background • Key Projects • Getting Down and Dirty With Spring Cloud • Questions? 3
  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/ Survey Time 4
  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/ Anyone Know This Guy? 5 O ur Ultim ate G oal
  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/ 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
  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/ Spring Cloud Components 7 Configuration Service Discovery Routing and Messaging Tracing API Gateway Circuit Breakers CI Pipelines and Testing
  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/ Yes There Are More • Spring Cloud Bus • Spring Cloud Stream • Spring Cloud Data and Task • Spring Cloud AWS ….and more 8
  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/ 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
  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/ 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
  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/ 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
  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/ 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
  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/ 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
  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/ 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
  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/ 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
  15. 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