Slide 1

Slide 1 text

Resilient Applications using Spring Cloud Corneil du Plessis

Slide 2

Slide 2 text

Defnition Resilient adjective 1. (of a person or animal) able to withstand or recover quickly from difcult conditions. synonyms: strong, tough, hardy; 2. (of a substance or object) able to recoil or spring back into shape after bending, stretching, or being compressed.

Slide 3

Slide 3 text

Spring Cloud - Landscape

Slide 4

Slide 4 text

Principles - The 12 Factors 1. One Codebase in revision control 2. Dependencies must be explicit 3. Confi in environment 4. Backini services as attached resources 5. Build, release, run as separate stages 6. One or more stateless processes 7. Export services via port bindini 8. Concurrency in Process over threads 9. Disposable with quick startup and graceful shutdown. 10. Keep development/test/production in parity 11. Treat lois as event streams 12. Admin/management tasks as one-of processes https://12factor.net

Slide 5

Slide 5 text

Spring Cloud – Abstractions / Projects • Open Service Broker • Service Registry & Discovery • Circuit Breaker • Confguration Server • API Gateway • Bus • Connectors • Distributed Tracing • Security • Function • Data Flow • Stream • Task • Contract

Slide 6

Slide 6 text

Spring Cloud – Providers • Cloud Foundry • Connectors for RabbitMQ and SMTP, Relational Databases and MongoDB, Redis, Cassandra • Heroku • Connectors for PostgreSQL, MySQL, Redis, MongoDB, RabbitMQ • Google Cloud Platform in Beta Amazon Web Services • Messaging for SQS • Spring Cache for Elasticache • SNS Endoints • Named Resources on CloudFormation • JDBC Datasource on named RDS instance • ResourceLoader for S3

Slide 7

Slide 7 text

Spring Cloud Function • Abstractions for Function, Consumer and Supplier leveraging Project Reactor • Binding to HTTP endpoints or stream listeners / publishers for RabbitMQ or Apache Kafka • Adapters for AWS Lambda, Microsoft Azure, Apache OpenWhisk

Slide 8

Slide 8 text

Routing & API Gateway • Netfix Zuul • Spring Cloud Gateway – WebFlux

Slide 9

Slide 9 text

Circuitbreaker • Netfix Hystrix • Resilient4J • Hystrix Dashboard

Slide 10

Slide 10 text

Load Balancer • RestTemplate • Ribbon • Feign • @LoadBalanced

Slide 11

Slide 11 text

Spring Cloud OpenFeign • Feign Client • DiscoveryClient support • @EnableFeignClients • @FeignClient

Slide 12

Slide 12 text

Spring Retry • RetryTemplate • Policies • Timeout • Backof • RetryContext • Stateful or Stateless • Listeners • @EnableRetry and @Retryable

Slide 13

Slide 13 text

Demo Let’s look at some code.

Slide 14

Slide 14 text

Finally • Contact: @corneil • Code: https://github.com/corneil/cf-demo • Resources: • https://cloud.spring.io Questions?

Slide 15

Slide 15 text

No content