Beginner’s Guide To Spring Cloud
By Ryan Baxter
@ryanjbaxter
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
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
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
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
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
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
TracingAPI Gateway
Circuit
Breakers
CI Pipelines
and Testing
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
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
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
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
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
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
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
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
DEMO
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

The Beginner’s Guide To Spring Cloud

  • 1.
    Beginner’s Guide ToSpring 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 TracingAPI 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.
  • 17.
    Learn More. StayConnected. 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