What Causes Poor Availability?

What Causes Poor Availability?


What causes an application that previously performed well to begin exhibiting poor
availability? There are many causes:

Resource exhaustion

Increase the number of users or increase the amount of data in use in a system
and your application may fall victim to resource exhaustion, resulting in a slower
and unresponsive application.

Unplanned load-based changes

Increases in the popularity of your application might require code and application changes to

 handle the increased load. These changes, often implemented
quickly and at the last minute with little or no forethought or planning, increase
the likelihood of problems occurring

Increased number of moving parts

As an application gains popularity, it is often necessary to assign more and more
developers, designers, testers, and other individuals to work on and maintain it.
This larger number of individuals working on the application creates a large
number of moving parts, whether those moving parts are new features, changed
features, or just general application maintenance. The more individuals working
on the application, the more moving parts within the application and the greater
the chance for bad interactions to occur in it.

Outside dependencies

The more dependencies your application has on external resources, the more it is
exposed to availability problems caused by those resources.

Technical debt

Increases in the applications complexity typically increases technical debt (i.e.,
the accumulation of desired software changes and pending bug fixes that typi‐
cally build up over time as an application grows and matures). Technical debt
increases the likelihood of a problem occurring.
All fast-growing applications have one, some, or all of these problems. As such,
potential availability problems can begin occurring in applications that previously
performed flawlessly. Often the problems will creep up on you; often they will start
suddenly.
But most growing applications have the same problem. They eventually will begin
having availability problems.
Availability problems cost you money, they cost your customer’s money, and they cost
you your customer’s trust and loyalty. Your company cannot survive for long if you
constantly have availability problems.
Building applications designed to scale means building applications designed for high
availability.



读书笔记:

Architecting for Scale

High Availability for Your Growing Applications




猜你喜欢

转载自blog.csdn.net/doctor_who2004/article/details/78588147