Cellular architecture is a design pattern that helps achieve high availability in multi-tenant applications. The goal is to design an application so all its components can be deployed into an isolated “cell” that is entirely self-sufficient. Then, many discrete deployments of these “cells” can be created without dependencies.
Each cell is a fully operational, autonomous instance of your application that is ready to serve traffic without dependencies on or interactions with other cells.
Traffic from users can be distributed across these cells, and if an outage occurs in one cell, it will only impact the users in that cell while the other cells remain fully operational. This minimizes the “blast radius” of any outages the service may experience and helps ensure that the outage doesn’t impact the SLA for most users.
There are many different strategies for organizing your cells and deciding which traffic should be routed to which cell. For more information on the benefits of cellular architecture and some examples of these different strategies, Peter Voshall’s talk from re:Invent 2018: "How AWS Minimizes the Blast Radius of Failures" is highly recommended.
Managing an application with many independent cells can be daunting. For this reason, building as much automation as possible for the common infrastructure tasks necessary for creating and maintaining cells is extremely valuable.
The full version of this article focuses less on the "why" of cellular architecture and more on the "how" of creating this automation.
This content is an excerpt from a recent InfoQ article by Chris Price, "Architecting for High Availability in the Cloud with Cellular Architecture".
To get notifications when InfoQ publishes content on these topics, follow "Architecture and Design", "Microservices", and "Modularity" on InfoQ.
Missed a newsletter? You can find all of the previous issues on InfoQ.
Sponsored
|
Building and operating large scale software systems requires first principles thinking to design and develop the technical architecture before actually putting the system into code. Download this eBook to learn how enterprises can avoid the mistake of wasted software development effort by carefully thinking about systems and investing time in understanding bottlenecks, system requirements, users being targeted, user access patterns and many such decisions, which in short, is System Design.
Download the eBook “System Design on AWS,” sponsored by Dragonfly
|
|
Upcoming Events
InfoQ and QCon: For practitioners, by practitioners
QCon London 2024, April 8-10
Last chance to secure your place at QCon London to learn valuable insights on the latest practices in FinTech, emerging AI and ML trends, platform engineering, and more. Register and save with team discounts.
InfoQ Dev Summit Boston 2024, June 24-25
Discover transformative insights to level up your software development decisions. Explore the schedule and register now for early bird savings and team discounts until April 16.
InfoQ Dev Summit Munich 2024, Sept 26-27
Get practical advice from senior developers to navigate your current dev challenges. Register now with early bird tickets and group discounts until April 23.
QCon San Francisco 2024, Nov 18-22
Deep dive into 12 major software topics with senior developers sharing implementable ideas to shape your projects. Save now with our early bird savings and team discounts until April 16.