失效链接处理 |
Cloud Architectures PDF 下载
本站整理下载:
相关截图:
主要内容:
This paper illustrates the style of building applications using services available in the Internet cloud.
Cloud Architectures are designs of software applications that use Internet-accessible on-demand services. Applications built
on Cloud Architectures are such that the underlying computing infrastructure is used only when it is needed (for example to
process a user request), draw the necessary resources on-demand (like compute servers or storage), perform a specific job,
then relinquish the unneeded resources and often dispose themselves after the job is done. While in operation the
application scales up or down elastically based on resource needs.
This paper is divided into two sections. In the first section, we describe an example of an application that is currently in
production using the on-demand infrastructure provided by Amazon Web Services. This application allows a developer to do
pattern-matching across millions of web documents. The application brings up hundreds of virtual servers on-demand, runs
a parallel computation on them using an open source distributed processing framework called Hadoop, then shuts down all
the virtual servers releasing all its resources back to the cloud—all with low programming effort and at a very reasonable
cost for the caller.
In the second section, we discuss some best practices for using each Amazon Web Service - Amazon S3, Amazon SQS,
Amazon SimpleDB and Amazon EC2 - to build an industrial-strength scalable application.
Keywords
Amazon Web Services, Amazon S3, Amazon EC2, Amazon SimpleDB, Amazon SQS, Hadoop, MapReduce, Cloud Computing
Amazon Web Services
Amazon Web Services
Why Cloud Architectures?
Cloud Architectures address key difficulties surrounding
large-scale data processing. In traditional data processing
it is difficult to get as many machines as an application
needs. Second, it is difficult to get the machines when
one needs them. Third, it is difficult to distribute and coordinate a large-scale job on different machines, run
processes on them, and provision another machine to
recover if one machine fails. Fourth, it is difficult to autoscale up and down based on dynamic workloads. Fifth, it
is difficult to get rid of all those machines when the job is
done. Cloud Architectures solve such difficulties.
Applications built on Cloud Architectures run in-the-cloud
where the physical location of the infrastructure is
determined by the provider. They take advantage of
simple APIs of Internet-accessible services that scale ondemand, that are industrial-strength, where the complex
reliability and scalability logic of the underlying services
remains implemented and hidden inside-the-cloud. The
usage of resources in Cloud Architectures is as needed,
sometimes ephemeral or seasonal, thereby providing the
highest utilization and optimum bang for the buck.
Business Benefits of Cloud Architectures
There are some clear business benefits to building
applications using Cloud Architectures. A few of these are
listed here:
1. Almost zero upfront infrastructure investment: If you
have to build a large-scale system it may cost a
fortune to invest in real estate, hardware (racks,
machines, routers, backup power supplies),
hardware management (power management,
cooling), and operations personnel. Because of the
upfront costs, it would typically need several rounds
of management approvals before the project could
even get started. Now, with utility-style computing,
there is no fixed cost or startup cost.
2. Just-in-time Infrastructure: In the past, if you got
famous and your systems or your infrastructure did
not scale you became a victim of your own success.
Conversely, if you invested heavily and did not get
famous, you became a victim of your failure. By
deploying applications in-the-cloud with dynamic
capacity management software architects do not
have to worry about pre-procuring capacity for largescale systems. The solutions are low risk because
you scale only as you grow. Cloud Architectures can
relinquish infrastructure as quickly as you got them
in the first place (in minutes).
3. More efficient resource utilization: System
administrators usually worry about hardware
procuring (when they run out of capacity) and better
infrastructure utilization (when they have excess and
idle capacity). With Cloud Architectures they can
manage resources more effectively and efficiently by
having the applications request and relinquish
resources only what they need (on-demand).
|