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

Resilient Applications using Spring Cloud

Resilient Applications using Spring Cloud

Discover the Spring Cloud APIs that help in building more resilient applications.

Corneil du Plessis

July 12, 2018
Tweet

More Decks by Corneil du Plessis

Other Decks in Programming

Transcript

  1. 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.
  2. 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
  3. 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
  4. 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
  5. 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
  6. Spring Retry • RetryTemplate • Policies • Timeout • Backof

    • RetryContext • Stateful or Stateless • Listeners • @EnableRetry and @Retryable