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

Beginner's Guide To Spring Cloud

Beginner's Guide To Spring Cloud

Ryan Baxter

May 22, 2017
Tweet

More Decks by Ryan Baxter

Other Decks in Programming

Transcript

  1. © 2017 Pivotal !1 The Beginner’s Guide To Spring Cloud

    Ryan Baxter, Software Engineer, Pivotal @ryanjbaxter
  2. !2 Nice To Meet You • Rookie engineer on the

    Spring Cloud team • Get In Touch • @ryanjbaxter • http://ryanjbaxter.com
  3. !3 Agenda ▪ Spring Cloud Background ▪ Key Projects ▪

    Getting Down and Dirty With Spring Cloud ▪ Questions
  4. !6 Why Spring Cloud? ▪ In general, cloud native apps

    are a good thing, just not easy ▪ It was 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 easily configure them ▪ Cloud Agnostic
  5. !7 Spring Cloud Components Configuration Service Discovery Routing and Messaging

    Tracing API Gateway Circuit Breakers CI Pipelines and Testing
  6. !8 Yes There Are More • Spring Cloud Bus •

    Spring Cloud Stream • String Cloud Data and Task • Spring Cloud AWS ….and more
  7. !9 Configuration ▪ We want to remove the configuration out

    of the application to 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
  8. !10 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 is needs to use ▪ Netflix Eureka ▪ Zookeeper ▪ Consul
  9. !11 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 Feign ▪ Messaging: ▪ RabbitMQ or Kafka
  10. !12 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
  11. !13 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
  12. !14 Tracing ▪ A single request to get data from

    your application may result in an exponentially large number of requests to various microservices ▪ Tracing these requests through the application is critical when debugging issues ▪ Spring Cloud Sleuth and Zipkin
  13. !15 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
  14. !17 Q&A Spring Cloud Homepage: http://projects.spring.io/spring-cloud/ GitHub: https://github.com/spring-cloud Samples: https://github.com/spring-cloud-samples

    Twitter: https://twitter.com/springcloud Ryan Baxter Homepage: http://ryanjbaxter.com GitHub: http://github.com/ryanjbaxter Twitter: http://twitter.com/ryanjbaxter