Databases Reference
In-Depth Information
planning. If you're getting more than your share of computing resources and you
don't know it there's a risk that someone else will claim their fair share of resources,
bumping your performance back to what it's supposed to be. In general, it can be
difficult to know for certain what you're supposed to be getting, and most cloud
hosting providers don't provide concrete answers about such questions.
• There are no guarantees about capacity or availability. You may assume that you
can provision new instances, but what if the provider becomes oversubscribed?
This happens with many shared resources, and it could happen in the cloud, too.
• Virtualized and shared resources can be harder to troubleshoot, especially because
you don't have access to the underlying physical hardware to inspect and measure
what's happening. For example, we've seen systems where iostat claimed that the
I/O was fine or vmstat showed that the CPU was fine, and yet when we actually
measured the time elapsed to complete tasks, the resources were clearly overloaded
by something else on the system. If you run into performance problems on a cloud
platform, it is even more important than usual to measure carefully. If you're not
good at this, you might not be able to identify whether the underlying system is
just performing badly, or whether you've done something that's causing the ap-
plication to make unreasonable demands on the system.
We can summarize the above points by saying that there is reduced transparency and
control over performance, availability, and capacity in the cloud. Finally, here are a few
cloud myths to keep in mind:
The cloud is inherently more scalable
Applications, their architectures, and the organizations that manage them are scal-
able (or not). The cloud isn't inherently scalable just because it's a cloud, and
choosing a scalable platform doesn't automatically make your application scalable.
It's true that if the cloud hosting provider isn't oversubscribed, there are resources
that you can purchase on demand, but availability of resources when you need
them is only one aspect of scalability.
The cloud automatically improves or even guarantees uptime
Individual cloud-hosted servers are actually more likely to fail or have outages, in
general, than well-designed dedicated infrastructure. Many people don't realize
this, however. For example, one person wrote “we are upgrading our infrastructure
to a cloud-based system to give us 100% uptime and scalability.” This was just
after AWS had suffered two huge outages that affected large portions of its user
base. A good architect can design reliable systems with unreliable components, but
in general a more reliable infrastructure contributes to higher availability. (There's
no such thing as 100% uptime, of course.)
On the other hand, by subscribing to a cloud computing service, you're buying a
platform that was built by experts. They have taken care of a lot of low-level things
for you, and that means you can focus on higher-level tasks. If you build your own
platform and you're not an expert on all those minutiae, you're likely to make some
 
Search WWH ::




Custom Search