If you receive errors when attempting to view this white paper, please install the latest version of
Adobe Reader.
"Incorporating cloud computing and best practices from
grid computing, virtualization and SOA experience, Appistry's innovative architecture allows enterprises to cut infrastructure
costs while significantly improving scalability and reliability."
Source : Appistry
How to Overcome the Limits of Enterprise Software
Enterprise Software is also known as :
Enterprise Software,
Enterprise Application Software,
Solve Enterprise Problem,
Enterprise Software Directory,
Software Evaluation,
Google Solutions for Business,
Business Management,

Compare 200+ ERP Products,
Select Enterprise Software,
Enterprise Business Software,
Enterprise Software Mainframe,
Largest Enterprise Software,
Swipe Enterprise Software,
Future of Enterprise Software,
Enterprise Accounting Software,
Enterprise Software Solutions,
Enterprise Software Companies,
Business Software Makers,
Automated Enterprise,
Right Software Needs,
E-Government Solutions,
Low Cost MFG-Eng Software,
Leading Configurable Data,
Enterprise System Software,
Enterprise Patterns,
Enterprise Software Executive,
Enterprise Software Unplugged,
Latest Enterprise Software,
Server Software,
Acquires Enterprise Software,
Products Enterprise Software,
Compare SMB Software,
Enterprise Software Resources,
Enterprising Software,
Evaluating Enterprise Software,
Search Enterprise Software.
Executive Summary
Enterprises today look to software applications not just to make existing processes
more efficient, but also to power new insights and capabilities for driving business agility
and competitive advantage. These strategic applications are frequently CPU- and/or
data-intensive, and are also time-critical in nature.
The combination of CPU/data-intensive and time-critical requires that the applications
exhibit both scalability and dependability, a tall order that many traditional approaches
fail to successfully or cost-effectively meet. In addition, agile enterprises also require that
their strategic applications keep pace with the change of business.
A new type of software-based application environment - the application fabric - is
successfully and cost-effectively meeting the requirements of today's most demanding
applications. By delivering high-levels of scalability and reliability across a virtualized
"fabric" of commodity-class computers, application fabrics are eliminating the onceaccepted
trade-offs among application scalability, dependability, manageability and
affordability.
This fabric-based approach to application deployment and management represents
the next-generation of grid computing, enabling applications that allow companies
to accelerate and improve decision-making, provide better value and service to
consumers, and operate more efficiently, with the overall result of getting ahead - and
staying ahead - of the competition.
Application fabrics are in use today by some of the savviest enterprises in the world,
who understand that technology-related advantages can enable powerful business
agility. A great example of a company that is reaping the benefits of its technology
advantages is Google. Google is a company known for many things, not the least
of which is its ability to keep up with the dramatic growth of its core search engine
business while also developing and launching new services. The agility of Google's
business is powered by what can be characterized as an application fabric that Google
developed in-house to support its CPU-intensive, time-critical core applications.
With its 200 computer science PhDs and 600+ additional computer scientists, Google
can afford to develop and maintain its own custom application fabric. For most other
organizations, the right approach is to rely on commercially available and supported
application fabric software, which delivers what Google built for itself - a grid that can
reliably deliver results in real-time.
The purpose of this white paper is to provide an overview of application fabrics and the
business and technology advantages gained in their use.
By some recent reports, Google's computing infrastructure consists of over 400,000 computers. Yet the
company remains a model for the agile enterprise. For this reason, we reference Google as an example
throughout this whitepaper. This industry example has not been sponsored or endorsed by Google, nor
has the company evaluated or endorsed Appistry or its products.
Competitive Advantage Built On "Real-Time" Insights
Few enterprises today need to manage computing applications as vast as the Google
search engine. Yet many enterprises can, and do, benefit from strategically deployed
applications designed to create competitive advantage by providing unique insight into
their businesses.
Often these new insights are provided by CPU- and/or data-intensive applications
custom-developed to meet the highly differentiated needs of the business. While some
of these applications are not time-constrained-producing results as the power and
dependability of the computing infrastructure allow-the most valuable of them are timecritical
in nature. Managers of the business depend on these strategic applications to
provide them with timely operational decision support.
Encompassing applications in established categories such as business analytics, highperformance
computing, and data-processing, time-critical applications abound in a
wide variety of industries:
- routing and scheduling in transportation and distribution
- inventory optimization and demand forecasting in retail
- price and production optimization, configuration, and supply chain management in
manufacturing and packaged goods
- SIGINT analysis, threat detection and scenario analysis in intelligence and homeland
security
- risk management, fraud detection and pricing in financial services and telecom
Many organizations seek to deploy these capabilities not as stand-alone applications,
but as services within a service-oriented architecture (SOA) environment. In a SOA
environment, business logic is not rigidly associated with a single application, but rather
is made available as Web services to be accessed and assembled into a variety of
composite applications, for a variety of audiences.
Application fabrics represent a new era for time-critical applications, whether deployed
stand-alone or as Web services within an SOA environment. Application fabrics free
organizations to innovate new operational capabilities and insights without concern for
compute-power constraints and related reliability issues.
Requirements of Time-Critical Applications
Time-critical applications present a set of demanding requirements to the businesses
that need them and the technology organizations responsible for realizing them:
- Deployability. Enterprises must be able to easily and quickly bring these
applications "to market," and deploy enhancements over time to keep up with an ever-changing business environment. This requires that the environment in which
the applications run transparently deliver the scalability and reliability that the
applications require, without a costly and time-consuming development effort.
- Scalability. These applications are CPU- and/or data-intensive, demanding
increasing computing power as the business grows. As a result, the environment
in which these applications run needs to scale effectively and distribute workload
effortlessly both initially, and over time.
- Dependability. These applications must be dependable, which means the
application must be both available and reliable. Availability means the application
is ready to accept work at all times, and reliability means that the application will
complete the work assigned to it - on time, every time.
- Manageability. Enterprises must be able to easily manage these applications,
including being able to automate updates, incrementally add capacity to reach new
levels of application capability, and view the environment in which the applications
run as a single system.
- Affordability. Organizations are looking to take advantage of the price/performance
offered by readily available commodity grade computers, as well as to mitigate
the high operating costs that have plagued traditionally architected strategic applications. So these applications need to be supported by an environment that
provides a cost-effective approach to deploying, scaling and maintaining these
applications.
Case Study: Meeting the Challenges of Large-Scale Supply Chain Optimization for
a Global Retailer
Part One of Three: The Challenges
Sample Corp. represents a global retailer that has spent several years developing and enhancing
complex algorithms to make dynamic inventory purchasing and allocation decisions
based on inventory levels, warehouse locations and other resource patterns. The goal is to
provide "real-time" optimized inventory purchase levels and positioning plans, thus maximizing
inventory efficiency, decreasing stock-outs and spoilage, increasing customer satisfaction,
and reducing a host of substantial costs including labor, fuel and vehicle maintenance.
With some of the most brilliant supply chain management professionals in the field on staff,
Sample Corp. is eventually able to get to a point where its dynamic algorithms work from
a technical standpoint. Yet, the application is not ready for production - with the volume of
goods that need to be procured and positioned daily, the application will regularly be called
upon to exhibit "extreme" levels of scalability and reliability. Specifically, the CPU-intensive
nature of the dynamic optimization algorithms presents a steep dependability challenge. And
on top of all that, Sample Corp. prefers to run its applications on low-cost hardware rather
than expensive, high-end servers.
Note: This case study presents a hypothetical scenario based on the experiences of actual Appistry customers.
Fig 1. Application-centric
approaches to deploying,
managing and developing
applications yield a host
of benefits.
|
Infrastructure-Centric |
Application-Centric |
| Dependable |
First generation solutions rely on
expensive, redundant hardware
to prevent failure. |
Fully distributed, application-aware
architecture yields simultaneous
reliability, availability and scalability. |
| Manageable |
Management tools and technologies
exist apart from infrastructure. |
Management intelligence unites
infrastructure into single logical
system. |
| Adaptable |
Infrastructure highly hierarchical
with islands of functionality and
multiple layers of specialized
hardware. |
Simple, flat architecture fully
virtualizes underlying resources. |
| Affordable |
Approaches yield incremental cost
reductions, typically focused in
one area. |
Yields significant simultaneous
cost reductions across application
development, infrastructure and
management. |
Source: Adapted from
"uilding an Intelligent IT
Infrastructure", Intelligent
Enterprise, Dec. 2004
Limits of Traditional Approaches
There are very good reasons why Google did not turn to one of the traditional
approaches to meet the requirements of its powerful applications, and why other
enterprises are actively searching for a new and better solution for deploying and
managing large-scale, time-critical applications.
Traditional approaches typically involve hardware-centric, multi-layered architectures
which lead to distinct points of weaknesses and create insurmountable trade-offs
among application scalability, dependability, manageability and affordability. These
approaches put applications at the mercy of the complexity and rigidity of the
infrastructure, rather than providing an environment capable of meeting the needs
described above.
Traditional approaches that struggle to meet the requirements of today's most
demanding applications include:
Traditional Grid Computing
Traditional grid computing models promote scaling applications using existing,
heterogeneous resources that may have extra computing capacity to "lend" to other applications. That model is great from the standpoint that it increases the utilization of
existing resources, but it presents serious fault-tolerance, deployment and management
challenges.
Traditional grid computing software provides little or no consideration for fault-tolerance,
with poor error detection and work restart capabilities, and therefore is a poor solution
for time-constrained applications that require reliable and timely execution of computing
tasks. Additionally, traditional grid computing provides little or no consideration for
manageability, requiring that each resource in the grid be managed separately rather
than as a single, virtual system.
Finally, traditional grids are difficult to deploy, requiring significant manual intervention to
bring resources on line and unwieldy re-architecture to get existing applications up and
running.
Fault-tolerant Servers & Other Redundant Hardware
Mainframes and massively redundant servers with shared memory have long represented
the gold standard for scalability and dependability in enterprise applications, but
those attributes came at a high price.
Initial cost outlays and annual maintenance fees for such specialized hardware are
much higher than for applications deployed even on high-end symmetric multiprocessing
(SMP) servers, and orders of magnitude higher than for applications deployed on
commodity hardware. Moreover, specialized hardware and the associated proprietary
operating systems typically require esoteric skills for application development and maintenance,
driving up operating costs over the long-term.
Finally, this approach does not lend itself to agility-organizations building applications
based on "big iron" are typically forced to project needs far into the future and face
massive re-architecture should they require additional scale.
Clustered Application Servers
Many organizations now run enterprise applications on clustered SMP servers running
J2EE or .NET application servers. This type of clustering focuses on load-balancing
across multiple high-end servers for workload management. The approach also provides
for some measure of availability, but much of the work required to create reliability
- making sure that all work completes on time, as intended - falls to the developer.
Beyond the simplest of stateless applications, true reliability through J2EE or .NET
clustering poses a complex programming challenge that requires not only a thorough
understanding of the framework specifications, but also a large number of additional
libraries, many of which work differently with different application server implementations.
Clustering also provides some measure of scalability, however clustering application
servers in practice only works predictably to the low tens of nodes (compare that to
Google's 60,000+ nodes).
Case Study: Meeting the Challenges of Large-Scale Supply Chain Optimization
for a Global Retailer
Part Two of Three: The Alternatives
Given its criteria, including scalability, dependability, and running its applications on lowcost
hardware, Sample Corp. considers several alternatives:
Clustered J2EE application servers. Though the cost associated with this solution is a
consideration, this alternative is quickly ruled out by the system architect not because
of cost but because of the scale-out limitations associated with clustered application
servers. With a known practical limit in the low tens of nodes, clustered application
servers can not be relied upon to meet the scalability needs of the business.
Traditional grid computing. While traditional grid computing can potentially provide the
scalability that Sample Corp. is looking for, it is ruled out as a viable alternative primarily
because of its disregard for fault tolerance. While traditional grid computing may be fine
for CPU-intensive applications that are not time-constrained, Sample Corp. needs to be
assured that optimized decision support is available on-time, every time.
Once put into production, clustered application servers can be fragile and require
significant manual intervention. Many companies choosing this approach also purchase
expensive add-on management software.
Application Fabrics: An Overview
Two major IT trends - commoditization of computing hardware and ubiquity of highperformance
networking - have made a new kind of application infrastructure software
possible: application fabrics. Application fabrics deliver on the promise of "real-time"
grid computing, virtualization and utility computing, and are applicable to the most
demanding CPU- and data- intensive applications in the enterprise. An application
fabric provides a software-based environment that simultaneously delivers scalability,
dependability, manageability and affordability for time-critical applications.
Compared to the traditional grid computing approach, application fabrics create a
self-managing, self-healing application environment out of standards-based commodity
hardware and operating systems, rather than relying on a set of separately-managed,
heterogeneous resources to provide additional computing power. This difference
is very important for several reasons. Most importantly, this architectural approach
allows application fabrics to provide support for time-sensitive applications that are
unable to withstand the latency and unpredictability associated with batch-oriented technologies like traditional grids. Further, this approach allows application fabrics to
virtualize the commodity hardware nodes into a single system, enabling developers and
administrators to view and manage the hardware as if it were a single computer. Finally,
this architecture provides application-level fault-tolerance, rather than depending on
the reliability of a collection of heterogeneous infrastructure resources under distributed
control.
The movement toward application fabrics, which began with large Internet sites like
Google and is now penetrating enterprise computing environments, is based on the
following premises:
- Time-critical applications require simultaneous scalability, dependability,
manageability and affordability. Application infrastructure must eliminate the
once-expected trade-offs among these requirements.
- The application is all that matters. Any infrastructure exists to serve the
application, not the other way around.
- Physical infrastructure is an interchangeable commodity. Standards-based
computing infrastructure has advanced to the point that organizations seeking
to maximize dependability and minimize cost can purchase the most affordable
hardware available.
- Hardware will inevitably fail, so insulate the application. Developers and
administrators should worry as little as possible about physical infrastructure. Rather
than trying to prevent failure at all costs - which is impossible - an application
fabric accepts that failure will happen and deals with it by assigning application-level
tasks to multiple nodes in the fabric.
These premises have created a consensus around basic requirements for application
fabrics. While individual implementation approaches may differ, application fabrics share
the following general characteristics:
- Scale-out virtualization. Application fabrics can easily scale out across tens,
hundreds, or even thousands of commodity computers, yet are viewed and
managed as a single system.
- Application-level fault tolerance. Fabric applications derive their dependability
from the fabric itself, rather than from the hardware on which they run.
- Automated Management. Application fabrics dynamically discover and assimilate
new hardware and software, minimizing administrative and operational overhead.
These characteristics work together to create a computing environment that is
simultaneously scalable, dependable, manageable and affordable.
Scale-out Virtualization
An application fabric ensures scalability for time-critical applications by deploying
these applications across many physical machines. To achieve cost-savings benefits,
application fabrics are most often deployed on low-cost, commodity-grade machines,
though they can be run on any type of hardware.
An application fabric could not provide the promised low cost of ownership if
administrators were required to maintain each computer separately or manually define
the internal configuration of the fabric. An application fabric makes it cost effective to
deploy applications on commodity hardware by virtualizing many machines so that they
can be viewed and managed as a single system.
The abstraction of many machines to one also enables developers to write distributed,
highly scalable applications while avoiding many of the challenges traditionally
associated with distributed software. Developers can basically write fabric-based
applications expected to run on one-hundred computers the same way they would
write an application expected to run on a single computer.
In practice, scale-out virtualization provides several measurable benefits:
- Organizations can deploy fabric applications using commodity hardware, reducing
upfront deployment costs.
- CPU-intensive applications get the scalability offered by a highly distributed
environment with greatly simplified development and management.
- Managers and administrators can treat the application fabric as a single system,
reducing the need to use specialized software and infrastructure to synchronize
machines, and thereby reducing administrative costs.
- Organizations can add extra capacity as required, increasing their agility and
enabling them to take advantage of advances in hardware price/performance
without changing their existing applications or incurring downtime as they are
deployed to the new hardware.
Organizations can run multiple applications in one fabric, eliminating application stovepiping
and enabling organizations to derive maximum computing power from their
hardware investments.
Application-Level Fault Tolerance
An application fabric transparently enables fault tolerance at the application layer, rather
than through specialized hardware, proprietary operating systems, or manual coding of
distributed applications.
Traditional approaches to dependability apply redundancy principles in a blunt,
inefficient fashion, typically yielding only a limited measure of availability: once the failure
condition is detected and the failover regime is enacted, new work is directed to a
standby system for processing them. Yet all work-in-flight on the failed system has been
lost, and must be reconstructed from available log files if the application architecture
provides for such recovery.
The application fabric approach to dependability begins with the application, not
the hardware, and as a result is able to operate in a much more granular fashion
when needed, automatically replicating transaction or task state at key points in
the application. Because the application fabric transparently propagates this state
information among multiple computers, the fabric can gracefully survive the loss of one
or more nodes, with program execution continuing where it left off.
The level of granularity with which the fabric manages state is determined by the
application architect or developer. Whereas an architect may choose to deploy existing
applications on a fabric unmodified, offering relatively course-grained reliability, a new
application being targeted for fabric deployment might utilize a more fine-grained
approach.
Since the fabric manages state propagation across machines, developers can focus
on the business logic of their applications without worrying about writing their own
mechanisms for preserving state, retrying failed connections, or reconstituting failed
tasks or transactions. Developers can declare, without revisiting existing code, how
long to wait for the successful completion of a task, how many times to retry something
on failure, and how to perform compensating transactions in the event of an external
system fault. The behaviors required to ensure the completion of a task or transaction
are built into the fabric itself, and any application built around the fabric inherits those
services.
Once an application fabric is running, the developer and administrator need not do
anything special to ensure that tasks or transactions succeed, even in the event of
catastrophic failure. The dependability of the solution is inherent in the fabric.
Automated Management
An application fabric transparently enables fault tolerance at the application layer, rather
than through specialized hardware, proprietary operating systems, or manual coding of
distributed applications.
Traditional approaches to dependability apply redundancy principles in a blunt,
inefficient fashion, typically yielding only a limited measure of availability: once the failure
condition is detected and the failover regime is enacted, new work is directed to a
standby system for processing them. Yet all work-in-flight on the failed system has been
lost, and must be reconstructed from available log files if the application architecture
provides for such recovery.
The application fabric approach to dependability begins with the application, not
the hardware, and as a result is able to operate in a much more granular fashion
when needed, automatically replicating transaction or task state at key points in
the application. Because the application fabric transparently propagates this state
information among multiple computers, the fabric can gracefully survive the loss of one
or more nodes, with program execution continuing where it left off.
The level of granularity with which the fabric manages state is determined by the
application architect or developer. Whereas an architect may choose to deploy existing
applications on a fabric unmodified, offering relatively course-grained reliability, a new
application being targeted for fabric deployment might utilize a more fine-grained
approach.
Since the fabric manages state propagation across machines, developers can focus
on the business logic of their applications without worrying about writing their own
mechanisms for preserving state, retrying failed connections, or reconstituting failed
tasks or transactions. Developers can declare, without revisiting existing code, how
long to wait for the successful completion of a task, how many times to retry something
on failure, and how to perform compensating transactions in the event of an external
system fault. The behaviors required to ensure the completion of a task or transaction
are built into the fabric itself, and any application built around the fabric inherits those
services.
Once an application fabric is running, the developer and administrator need not do
anything special to ensure that tasks or transactions succeed, even in the event of
catastrophic failure. The dependability of the solution is inherent in the fabric.
Automated Management
Since an application fabric environment is virtualized across a potentially large number
of computers, the fabric software provides the automation necessary to ensure cost
effective and efficient system management. Furthermore, all changes to a fabric's
infrastructure, operating software, or running applications can be made dynamically
- with no disruption to a production fabric or its running applications.
As a result, application fabrics free IT administrators and operations staffs from
being tethered to the momentary state of the physical infrastructure, enabling the
infrastructure to change in real time without impacting the runtime performance of
the application portfolio. Modern application fabrics enable this kind of virtualization
automatically, adjusting transparently to changes in the infrastructure underlying the
fabric. The application fabric software can even detect when new "bare metal" has been
added to the fabric's network, automatically installing the appropriate operating system,
fabric software and applications. New transactions or service requests are then routed
to the added resources with no manual intervention.
This type of automated management greatly reduces the administrative and operational
burden of running a highly distributed environment. By automating the deployment of
application and operating system updates, an application fabric can all but eliminate
rote maintenance tasks.
Additional Features
Increasingly, advanced application fabric software is mimicking features of singlemachine
computers and the operating systems that control them. For example,
application fabrics may have their own memory and disk resources, which are of course
virtualized across multiple physical computers. In the case of fabric-based memory, many organizations are using the distributed, in-memory caching it offers to accelerate
the performance of data-intensive applications.
Application fabrics may also have their own event handling and internal message
queuing systems, allowing event- and message-oriented applications to take advantage
of the scalability, dependability, manageability and affordability of the application fabric
environment.
Putting Application Fabrics to Use
At some point in the future, application fabrics will become a standard deployment
option for all applications. At this point in the maturity of the market, application fabrics
are being used most frequently to benefit time-critical analytics, high-performance
computing and data-processing applications, deployed either as stand-alone
applications or as Web services within an SOA environment. These applications can be
characterized as CPU- and/or data-intensive in their efforts to provide timely business
insights and capabilities that are essential to the ongoing operations of an enterprise.
For time-critical applications that are CPU-intensive, application fabrics provide
effortless scaling across a "fabric" of hundreds or even thousands of commoditygrade
computers. At the scale often required for these applications, the automated
management offered by application fabrics becomes a key consideration, greatly
reducing application total cost-of-ownership (TCO).
For time-critical applications that process high volumes of data, reliability is paramount.
Organizations cannot afford failure mid-way through a process or transaction, which
might cause errors and inconsistencies throughout multiple systems. For these
applications, application fabrics provide the reliability of expensive, high-end systems at
the cost of commodity hardware.
Case Study: Meeting the Challenges of Large-Scale Supply Chain Optimization
for a Global Retailer
Part Three of Three: The Solution
In the end, Sample Corp. chooses to deploy its application in an application fabric running
on nearly one hundred commodity-class computers. Application fabric software
first and foremost meets all of Sample Corp.'s key requirements. The fabric enables
effortless scaling of the application, and the fabric's application-level fault tolerance
ensures that the application will be insulated from any physical infrastructure-related
failure. Secondarily, but importantly, Sample Corp. is able to see its fabric-enabled application
running on in a matter of the days. This demonstration gives Sample Corp. the
confidence it needs to solidify its decision.
For both CPU- and data-intensive time-critical applications, the effortless scaling of
application fabric environments enables organizations to bring online only the computing
power they need today, with the knowledge they can easily add additional computers
later, as needed.
CPU/data-intensive time-critical applications may be deployed as Web services within
an SOA environment, rather than as stand-alone applications. In services-oriented
environments, business logic is not rigidly associated with a single application, but
rather available as Web services to be accessed and assembled into a variety of
composite applications, for a variety of audiences. Time-critical applications composed
of a large number of services can become very brittle, since the failure of one basic
service can cause a chain reaction that brings each of the composite applications that
consume that service to a halt. Deploying an application fabric as a key component of a
services-oriented environment secures the dependability of individual services and thus
ensures the performance of time-critical applications that rely on those services, without
the need for additional hardware or software infrastructure.
Google Puts Its Application Fabric To Highly Productive Use
Google's application fabric underlies its powerful core applications, including its search
engine. For each search request, the search application queries a 40+ terabyte index
of over 4 billion Web pages to produce search results, which are delivered to endusers
often at sub-second rates. Google's applications are run on 60,000+ famously
inexpensive commodity computers running Linux, and its application fabric manages
these tens of thousands of computers as a self-managing and self-healing network
that is both extremely scalable and inexpensive considering its capability. The fabric
facilitates bringing new machines on line to expand capacity and allows dead machines
to be swapped-out at the system administrators' convenience, all without interruption of
service.
The result of Google's underlying application fabric is that the company's executives
can work to grow the business, enhance existing services and create new ones, all
without concern for the ability of its applications and infrastructure to keep up. And
not only can Google's application fabric keep up, but it can do so with linear cost
increases to add capacity, rather than periodic massive overhauls to re-architect for
new requirements.
Benefits of Application Fabric Software to Key Stakeholders
Overall, application fabrics benefit enterprises by enabling applications to be
simultaneously scalable, dependable, manageable and affordable. These applications
can create new capabilities and insights for the business, which drive greater business
agility and competitive advantage.
Fig. 2. Because an
application fabric ensures
scalability, dependability
and manageability,
inexpensive computers
based on Intel and AMD
CPUs can be fully utilized
in the data center.
Fig. 3. As scale of
operations increases,
businesses using
traditional architectures
require more servers to
process the load, and
complex architectures to
stitch them together.
Specifically, application fabrics benefit numerous key stakeholders within an
organization:
- Application architects and developers. Application architects and developers
are in the business of translating business requirements into technology-based
solutions. Traditional application deployment approaches require architects to
design to the limitations of the infrastructure. Application fabric software frees
architects from having to trade-off among scalability, dependability, manageability
and affordability, thus allowing them to focus on creating maximum business value.
With application fabric software, developers are also freed from infrastructure
limitations, in particular the need to worry about complicated distributed computing
concepts. Instead, developers can write code as if the applications were going to
be deployed on a single computer.
- Systems administrators. Systems administrators are responsible for deploying
and managing applications and their infrastructure, including adding capacity to the
infrastructure as the demands on a given application grow. With application fabrics,
administrators can treat a network of commodity machines as a virtualized single
system, easing deployment and management challenges as all changes to any
hardware, software, or applications running within the fabric happen dynamically.
Further, application fabric software can detect when new "bare metal" has been
added to the fabric's network, automatically installing the appropriate operating
system, fabric software and applications.
- Technology executives. IT and engineering executives are responsible for enabling
competitive advantage through technology-related initiatives, while minimizing
the cost of doing so. Application fabrics provide a dependable environment that IT executives can count on to make strategic applications scalable, dependable,
manageable and affordable. As a result, technology executives can bring new
capabilities and insights to market faster, driving forward the organization's ability to
outpace the competition. And because they run on commodity-grade hardware and
industry-standard operating systems, application fabrics also minimize the cost of
deploying and scaling these applications. Another large component of a technology
executive's job is to manage the talent within a technology organization. In the
past, these executives were forced to deploy senior development staff to manually
build scalability and reliability into application environments. With application fabric
software, executives can rely on the fabric layer to provide these qualities, rather
than expensive and hard-to-find development talent.
- Business executives. Business executives are concerned with the overall success
of the business, which requires the agility to stay ahead of the competition.
Appistry EAF supports competitive agility by decoupling strategic applications
from the limitations of their physical infrastructure. Confident that their fabricbased
applications will keep pace, business executives are freed to imagine new
capabilities and drive for new insights, thus improving decision-making, providing
better value and service to consumers, operating more efficiently, and, ultimately,
staying ahead of the competition.
Conclusion
With the commercial availability of application fabric software, enterprises no longer
have to make trade-offs among scalability, dependability, manageability and affordability
for large-scale, time-critical applications. Rather than architecting these strategic
applications to function within the limits of its infrastructure, enterprises are freed to
imagine new capabilities and drive for new insights, confident that their fabric-enabled
applications will keep pace and serve the business' needs as they evolve.
Google is a powerful proof point that the future of application software is not in big iron,
but rather is in small silicon in large volumes. Application fabric software makes available
to all companies what Google has built for itself - a real-time grid that delivers not only
effortless scalability, but also virtualization, fault tolerance and automated management.
Together, these capabilities enable a new level of business agility, where the limits of
a company's success are bounded only by the limits of that company's creativity and
follow-through.
About Appistry
Appistry is the leading provider of application fabric software. Pioneering the nextgeneration
of grid computing, Appistry is enabling enterprises to quickly, easily
and cost-effectively deploy and manage large-scale, time-critical applications, thus
minimizing operational complexity and increasing business agility.
About Appistry Enterprise Application Fabric
Appistry Enterprise Application Fabric (Appistry EAF) is software that allows customers
to quickly, easily and cost-effectively deploy large-scale, time-critical applications across
a virtualized "grid" of commodity-grade computers. Appistry EAF creates a "scale
without fail" environment that provides scalability, dependability and manageability for
the applications that run within it, insulating them from the underlying hardware and its
frailties. As a result, fabric-based applications are extremely agile, able to quickly adapt
to the changing demands on the business.
Appistry EAF supports C, C++, Java and .NET programming languages such as C#
and VB .NET. Microsoft Windows and Linux are supported operating systems.
By some recent reports, Google's computing infrastructure consists of over
400,000 computers. Yet the company remains a model for the agile enterprise.
For this reason, we reference Google as an example throughout this whitepaper.
This industry example has not been sponsored or endorsed by Google, nor has the
company evaluated or endorsed Appistry or its products.
Copyright ' 2006 Appistry, Inc.
Appistry and the Appistry logo are trademarks of Appistry, Inc. All other registered
and unregistered trademarks are the sole property of their respective owners.
Contents
Executive Summary
Competitive Advantage Built On "Real-Time" Insights
Requirements of Time-Critical Applications
Limits of Traditional Approaches
- Application-Level Fault Tolerance
- Automated Management
- Additional Features
Putting Application Fabrics to Use
- Google Puts Its Application Fabric To Highly Productive Use
Benefits of Application Fabric Software to Key Stakeholders
Conclusion
About Appistry
About Appistry Enterprise Application Fabric
Case Study: Meeting the Challenges of Large-Scale Supply Chain
Optimization for a Global Retailer
- Part I: The Challenges
- Part II: The Alternatives
- Part III: The Solution