Defining Stability

To talk about stability, we need to define some terms. A transaction is an abstract unit of work processed by the system. This is not the same as a database transaction. A single unit of work might encompass many database transactions. In an e-commerce site, for example, one common type of transaction is “customer places order.” This transaction spans several pages, often including external integrations such as credit card verification. Transactions are the reason that the system exists. A single system can process just one type of transaction, making it a dedicated system. A mixed workload is a combination of different transaction types processed by a system.

The word system means the complete, interdependent set of hardware, applications, and services required to process transactions for users. A system might be as small as a single application, or it might be a sprawling, multitier network of applications and servers.

A robust system keeps processing transactions, even when transient impulses, persistent stresses, or component failures disrupt normal processing. This is what most people mean by “stability.” It’s not just that your individual servers or applications stay up and running but rather that the user can still get work done.

The terms impulse and stress come from mechanical engineering. An impulse is a rapid shock to the system. An impulse to the system is when something whacks it with a hammer. In contrast, stress to the system is a force applied to the system over an extended period.

A flash mob pounding the PlayStation 6 product detail page, thanks to a rumor that such a thing exists, causes an impulse. Ten thousand new sessions, all arriving within one minute of each other, is very difficult for any service instance to withstand. A celebrity tweet about your site is an impulse. Dumping twelve million messages into a queue at midnight on November 21 is an impulse. These things can fracture the system in the blink of an eye.

On the other hand, getting slow responses from your credit card processor because it doesn’t have enough capacity for all of its customers is a stress to the system. In a mechanical system, a material changes shape when stress is applied. This change in shape is called the strain. Stress produces strain. The same thing happens with computer systems. The stress from the credit card processor will cause strain to propagate to other parts of the system, which can produce odd effects. It could manifest as higher RAM usage on the web servers or excess I/O rates on the database server or as some other far distant effect.

A system with longevity keeps processing transactions for a long time. What is a long time? It depends. A useful working definition of “a long time” is the time between code deployments. If new code is deployed into production every week, then it doesn’t matter if the system can run for two years without rebooting. On the other hand, a data collector in western Montana really shouldn’t need to be rebooted by hand once a week. (Unless you want to live in western Montana, that is.)

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.217.199.122