Edits to the arch guide
1. Removal of unnecessary content 2. Rephasing of current content for clarity Change-Id: I02335fb4b0c80d7764b5e79e2317421ff86ec2bb
This commit is contained in:
parent
080330e951
commit
3d4f729b10
@ -9,57 +9,59 @@
|
|||||||
version="5.0"
|
version="5.0"
|
||||||
xml:id="methodology">
|
xml:id="methodology">
|
||||||
<title>Methodology</title>
|
<title>Methodology</title>
|
||||||
<para>
|
<para>The best way to design your cloud architecture is through creating and
|
||||||
Creating and testing use cases is the best way to design a cloud
|
testing use cases. Planning for applications that support thousands of
|
||||||
architecture that best suits your needs.</para>
|
sessions per second, variable workloads, and complex, changing data,
|
||||||
<para>
|
requires you to identify the key meters. Identifying these key meters,
|
||||||
For example, if your goal is to develop a cloud for your company's e-commerce
|
such as number of concurrent transactions per second, and size of
|
||||||
website, you need to plan for applications that will support thousands of
|
database, makes it possible to build a method for testing your assumptions.</para>
|
||||||
sessions per second, variable workloads, and lots of complex and changing data.
|
<para>Use a functional user scenario to develop test cases, and to measure
|
||||||
By identifying the key meters, such as number of concurrent transactions
|
overall project trajectory.</para>
|
||||||
per second, size of database, and so on, it is possible to then build a
|
<note>
|
||||||
method for testing the assumptions.</para>
|
<para>If you do not want to use an application to develop user
|
||||||
<para>
|
requirements automatically, you need to create requirements to build
|
||||||
Functional user scenarios are used to develop test cases to measure overall
|
test harnesses and develop usable meters.</para>
|
||||||
project trajectory. If you do not want to use an application to develop user
|
</note>
|
||||||
requirements automatically, you will need to create requirements to build
|
<para>Establishing these meters allows you to respond to changes quickly without
|
||||||
test harnesses and develop usable meters. Once the meters are established you
|
having to set exact requirements in advance.
|
||||||
can respond to changes quickly without having to set the exact requirements
|
This creates ways to configure the system, rather than redesigning
|
||||||
in advance. This creates ways to configure the system, rather than redesigning
|
it every time there is a requirements change.</para>
|
||||||
it every time there is a requirements change.</para>
|
<important>
|
||||||
<para>
|
<para>It is important to limit scope creep. Ensure you address tool limitations,
|
||||||
It is important to limit scope creep. Ensure you address tool limitations
|
but do not recreate the entire suite of tools. Work
|
||||||
for the requirements, but do not recreate the entire suite of tools. Work
|
with technical product owners to establish critical features that are needed
|
||||||
with technical product owners to establish critical features that are needed
|
for a successful cloud deployment.</para>
|
||||||
for a successful cloud deployment.</para>
|
</important>
|
||||||
|
|
||||||
<section xml:id="application-cloud-readiness-methods">
|
<section xml:id="application-cloud-readiness-methods">
|
||||||
<title>Application cloud readiness</title>
|
<title>Application cloud readiness</title>
|
||||||
<para>Although the cloud is designed to make things easier, it is
|
<para>The cloud does more than host virtual machines and their applications.
|
||||||
important to realize that "using cloud" is more than just firing up
|
This <emphasis>lift and shift</emphasis>
|
||||||
an instance and dropping an application on it. This "lift and shift"
|
|
||||||
approach works in certain situations, but there is a fundamental
|
approach works in certain situations, but there is a fundamental
|
||||||
difference between clouds and traditional bare-metal-based
|
difference between clouds and traditional bare-metal-based
|
||||||
environments, or even traditional virtualized environments.</para>
|
environments, or even traditional virtualized environments.</para>
|
||||||
<para>In traditional environments, with traditional enterprise
|
<para>In traditional environments, with traditional enterprise
|
||||||
applications, the applications and the servers that run on them are
|
applications, the applications and the servers that run on them are
|
||||||
"pets". They're lovingly crafted and cared for, the servers have
|
<emphasis>pets</emphasis>.
|
||||||
names like Gandalf or Tardis, and if they get sick, someone nurses
|
They are lovingly crafted and cared for, the servers have
|
||||||
|
names like Gandalf or Tardis, and if they get sick someone nurses
|
||||||
them back to health. All of this is designed so that the application
|
them back to health. All of this is designed so that the application
|
||||||
does not experience an outage.</para>
|
does not experience an outage.</para>
|
||||||
<para>In cloud environments, on the other hand, servers are more like
|
<para>In cloud environments, servers are more like
|
||||||
cattle. There are thousands of them, they get names like NY-1138-Q,
|
cattle. There are thousands of them, they get names like NY-1138-Q,
|
||||||
and if they get sick, they get put down and a sysadmin installs
|
and if they get sick, they get put down and a sysadmin installs
|
||||||
another one. Traditional applications that are unprepared for this
|
another one. Traditional applications that are unprepared for this
|
||||||
kind of environment, naturally will suffer outages, lost data, or
|
kind of environment may suffer outages, loss of data, or
|
||||||
worse.</para>
|
complete failure.</para>
|
||||||
<para>There are other reasons to design applications with cloud in mind.
|
<para>There are other reasons to design applications with the cloud in mind.
|
||||||
Some are defensive, such as the fact that applications cannot be
|
Some are defensive, such as the fact that because applications cannot be
|
||||||
certain of exactly where or on what hardware they will be launched,
|
certain of exactly where or on what hardware they will be launched,
|
||||||
they need to be flexible, or at least adaptable. Others are
|
they need to be flexible, or at least adaptable. Others are
|
||||||
proactive. For example, one of the advantages of using the cloud is
|
proactive. For example, one of the advantages of using the cloud is
|
||||||
scalability, so applications need to be designed in such a way that
|
scalability. Applications need to be designed in such a way that
|
||||||
they can take advantage of those and other opportunities.</para>
|
they can take advantage of these and other opportunities.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="determining-whether-an-application-is-cloud-ready">
|
<section xml:id="determining-whether-an-application-is-cloud-ready">
|
||||||
<title>Determining whether an application is cloud-ready</title>
|
<title>Determining whether an application is cloud-ready</title>
|
||||||
<para>There are several factors to take into consideration when looking
|
<para>There are several factors to take into consideration when looking
|
||||||
@ -69,8 +71,8 @@
|
|||||||
<term>Structure</term>
|
<term>Structure</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
A large, monolithic, single-tiered legacy
|
A large, monolithic, single-tiered, legacy
|
||||||
application typically isn't a good fit for the
|
application typically is not a good fit for the
|
||||||
cloud. Efficiencies are gained when load can be
|
cloud. Efficiencies are gained when load can be
|
||||||
spread over several instances, so that a failure
|
spread over several instances, so that a failure
|
||||||
in one part of the system can be mitigated without
|
in one part of the system can be mitigated without
|
||||||
@ -85,9 +87,9 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Applications that depend on specific
|
Applications that depend on specific
|
||||||
hardware—such as a particular chip set or an
|
hardware, such as a particular chip set or an
|
||||||
external device such as a fingerprint
|
external device such as a fingerprint
|
||||||
reader—might not be a good fit for the
|
reader, might not be a good fit for the
|
||||||
cloud, unless those dependencies are specifically
|
cloud, unless those dependencies are specifically
|
||||||
addressed. Similarly, if an application depends on
|
addressed. Similarly, if an application depends on
|
||||||
an operating system or set of libraries that
|
an operating system or set of libraries that
|
||||||
@ -100,10 +102,10 @@
|
|||||||
<term>Connectivity</term>
|
<term>Connectivity</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Self-contained applications or those that depend
|
Self-contained applications, or those that depend
|
||||||
on resources that are not reachable by the cloud
|
on resources that are not reachable by the cloud
|
||||||
in question, will not run. In some situations,
|
in question, will not run. In some situations,
|
||||||
work around these issues with custom network
|
you can work around these issues with custom network
|
||||||
setup, but how well this works depends on the
|
setup, but how well this works depends on the
|
||||||
chosen cloud environment.
|
chosen cloud environment.
|
||||||
</para>
|
</para>
|
||||||
@ -123,6 +125,7 @@
|
|||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="designing-for-the-cloud">
|
<section xml:id="designing-for-the-cloud">
|
||||||
<title>Designing for the cloud</title>
|
<title>Designing for the cloud</title>
|
||||||
<para>Here are some guidelines to keep in mind when designing an
|
<para>Here are some guidelines to keep in mind when designing an
|
||||||
@ -130,7 +133,7 @@
|
|||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Be a pessimist: Assume everything fails and design
|
<para>Be a pessimist: Assume everything fails and design
|
||||||
backwards. Love your chaos monkey.</para>
|
backwards.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Put your eggs in multiple baskets: Leverage multiple
|
<para>Put your eggs in multiple baskets: Leverage multiple
|
||||||
@ -151,12 +154,12 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>But not too paranoid: Not every application needs the
|
<para>But not too paranoid: Not every application needs the
|
||||||
platinum solution. Architect for different SLA's, service
|
platinum solution. Architect for different SLA's, service
|
||||||
tiers and security levels.</para>
|
tiers, and security levels.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Manage the data: Data is usually the most inflexible and
|
<para>Manage the data: Data is usually the most inflexible and
|
||||||
complex area of a cloud and cloud integration architecture.
|
complex area of a cloud and cloud integration architecture.
|
||||||
Don't short change the effort in analyzing and addressing
|
Do not short change the effort in analyzing and addressing
|
||||||
data needs.</para>
|
data needs.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
@ -178,7 +181,7 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>Be dynamic: Enable dynamic configuration changes such as
|
<para>Be dynamic: Enable dynamic configuration changes such as
|
||||||
auto scaling, failure recovery and resource discovery to
|
auto scaling, failure recovery and resource discovery to
|
||||||
adapt to changing environments, faults and workload volumes.
|
adapt to changing environments, faults, and workload volumes.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
@ -187,12 +190,12 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Keep it loose: Loose coupling, service interfaces,
|
<para>Keep it loose: Loose coupling, service interfaces,
|
||||||
separation of concerns, abstraction and well defined API's
|
separation of concerns, abstraction, and well defined API's
|
||||||
deliver flexibility.</para>
|
deliver flexibility.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Be cost aware: Autoscaling, data transmission, virtual
|
<para>Be cost aware: Autoscaling, data transmission, virtual
|
||||||
software licenses, reserved instances, and so on can rapidly
|
software licenses, reserved instances, and similar costs can rapidly
|
||||||
increase monthly usage charges. Monitor usage closely.
|
increase monthly usage charges. Monitor usage closely.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user