Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

DEMO

Slide 17

Slide 17 text

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