Designing a Microservices Architecture for Failure

The Risk of the Microservices Architecture

Graceful Service Degradation

One of the best advantages of a microservices architecture is that you can isolate failures and achieve graceful service degradation as components fail separately. For example, during an outage customers in a photo sharing application maybe cannot upload a new picture, but they can still browse, edit and share their existing photos.

Change Management – Rolling Deployment

Health-check and Load Balancing

Modern service discovery solutions continuously collect health information from instances and configure the load-balancer to route traffic only to healthy components.

Self-healing

Failover Caching

Retry Logic

As a retry is initiated by the client (browser, other microservices, etc.) and the client doesn’t know that the operation failed before or after handling the request, you should prepare your application to handle idempotency. For example, when you retry a purchase operation, you shouldn’t double charge the customer. Using a unique idempotency-key for each of your transactions can help to handle retries.

Rate Limiters and Load Shedders

Fail Fast and Independently

Bulkheads

Circuit Breakers

Testing for Failures

Outro

Key Takeways

https://blog.risingstack.com/designing-microservices-architecture-for-failure/

Cloud Trends by Adrian Cockcroft

https://gotoams.nl/2017/sessions/190

Migration Sequence (from on promise to cloud)
https://youtu.be/EDZBYbEwhm8?t=1109

The new de-normal
https://youtu.be/EDZBYbEwhm8?t=1300

Adrian Cockcroft on The New De-Normal – Untangling “Kitchen Sink” Database Schemas
https://youtu.be/Y6nKD-sK6tg

APIs in a Microservice Architecture

Microservices are revolutionizing how organizations build their enterprise architectures. We have spent a good couple of years talking deeply about APIs and their benefits, and understanding how APIs fit into an enterprise. The core benefits of disintegrated architectures can only be reaped if the system as a whole, including APIs, services, CI/CD processes, and development practices are designed with these objectives in mind.

With the rapid adoption of microservice architectures (MSA), the designs for securing, controlling, and monitoring our APIs have to be rethought and adjusted to reap the core benefits of an MSA.

During this webinar Nuwan will discuss,

  • The impact of MSA on your API strategies and designs
  • Possible changes in API design and deployment, API security, control and monitoring, and CI/CD

https://wso2.com/library/webinars/2018/09/apis-in-a-microservice-architecture/

Enterprises Are Embracing Microservices and Node.js

6 Main Reasons Why Node.js Has Become a Standard Technology for Enterprise-Level Organizations
https://www.monterail.com/blog/nodejs-development-enterprises

Why Enterprises Are Embracing Microservices and Node.js
https://thenewstack.io/enterprises-embracing-microservices-node-js/