Resilience: Scaling and Tiers

Scalability is the property of a system to handle a growing amount of work by adding resources to the system.

There are two types of scaling; vertical scaling (scale-up) adds more resources to an existing system, while horizontal scaling (scale-out) adds more nodes or servers to the deployment. With virtual machine technology, the ability to scale up is much easier than it was in the past. IT admins can add extra capacity (CPU, RAM, storage, etc,) to a server without having to upgrade the host hardware. Obviously, there are limits to this; the ability to scale up is determined by the host hardware along with network throughput, etc. Scaling up typically does not require any software architecture to support it—essentially the application runs on a bigger server than before.

In contrast, horizontal scaling provides not only the ability to access more system resources (i.e. more server nodes, each with additional capacity) but also introduces the ability for more redundancy to be built in. For example, if one node in the system goes down, the load is automatically distributed across the remaining nodes. Therefore, the more nodes or servers the more resilient. The application must be designed to support horizontal scaling so, as you assess security response systems, it’s important to discover if the application can be run on multiple servers.

Copy of Scaling - Multi Server (1)
Diagram of a scaled system using SureView - where each tier can scale out horizontally and vertically

At SureView, we divided the platform into several logical tiers, each tier forming a core component of the software, i.e. Data, Application, and Device tiers. Each tier can be separated, and then each tier can have its own set of horizontally scaled servers. This provides the ability to dynamically scale-out specific areas of the application and therefore supply additional capacity or redundancy.