Application Scalability

GD.Wheel.Solution.OfferingsApplication Scalability is the ability of an application to handle increased processing demand without requiring architectural changes. Increased customer expectations and dynamic usage patterns are posing new demands on applications.

New and old applications are expected to be scalable and respond to demand without an interruption in service.
Traditionally, applications were developed using tier-based architectures where each layer supported a focused activity. For example, a traditional Web application consisted of three tiers:

  • A front end Web server layer focused on creating content for presentation
  • An Application server layer focused on business logic
  • A Database server layer that has the logic to access and store data

Scaling a tiered application is typically done using the following approaches:

  1. Scale vertically (also referred to as scaling up) – Application performance is increased by adding more hardware, such as more CPUs and memory. This was the model used in the mainframe era and continues to be one of the typical methods for scaling database layers.
  2. Scale horizontally (scaling out) – This approach involves adding more instances of applications within layers to increase performance. Most web layers when coupled with a load balancer are horizontally scalable.

Scaling Vertically

Scaling vertically works well but it has a few shortcomings:

  • It is often difficult to upgrade hardware without introducing outages. One way to avoid this would be to use redundant application instances and use a backup instance while the hardware is being upgraded. This increases hardware and maintenance costs.
  • More powerful hardware is more expensive and this new hardware may not be used to full capacity at all times. Providing hardware to meet peak throughput requirements may not be cost justified.

Scaling Horizontally

Scaling horizontally works well for Web layers and it is possible to scale application and database layers as well with the clustering technologies available from application server vendors and database vendors. But this approach has some serious shortcomings:

  • All applications have bottlenecks and when these bottlenecks span across multiple layers and each layer with multiple instances has to interact with other layer with multiple instances, the application becomes increasingly complex to code, configure and maintain.
  • Application layers and database layers are often not linearly scalable. Adding each new machine does not necessarily result in a comparable increase in performance.

Solving the Scaling Problems

New technologies are introducing advanced approaches to solve the scaling problem. Compute Grid and Data Grid (distributed caching) products can limit scalability challenges by introducing many options for applications.

  • A distributed cache is the most effective way to alleviate the database bottlenecks. By making the frequently used data available in a cache, applications can see tremendous performance gains.
  • A compute grid can be used for compute intensive problems. A business problem is split into granular tasks and distributed to a cluster of machines. As the problem size grows the cluster that processes it can grow in size, thereby making it scalable.
  • A new approach is introduced by GigaSpaces and is still evolving. They address the problem architecturally and advise using Space Based Architecture for linearly scalable applications.

Our Expertise

In Grid Dynamics’ Application Scalability Practice, we have completed projects to address issues of scalability arising from the scenarios described above. We have expertise with:

  • Data Grids: Coherence, GemStone, GigaSpaces, Terracotta, Velocity
  • Compute Grids: Condor, DataSynapse, GridGain, Platform LSF, Sun Grid Engine

Customer Successes

We worked with a large content delivery company interested in increasing throughput to mobile phones. We were able to achieve a 44x improvement for the customer.

A major online payment service was looking to engage near real-time fraud detection.
 We developed a large-scale analytical application (> 1TB data)
and ran extreme transaction processing: running real-time fraud detection algorithms (40 ms ave. latency). The IMDG solution exceeded scale and latency reduction requirements.

Please contact us today for more information or to arrange for an initial assessment of your requirements.