Application scalability is the ability to increase application throughput by increasing the hardware support to the host application. Put it differently, if an application is able to handle 100 users on a single CPU hardware, then the application should on be able to handle 200 users when the number of process are doubled. |
Major server vendors continue to provide increasingly larger and more powerful machines. Recently, scale-out solutions, in the form of clusters of smaller machines, have gained increased acceptance. |
Vertical scalability is adding more memory and CPUs to a single box, or scaling up. Vertical scalability or scaling up is well suited for database tier. |
Horizontal scalability or scaling out is adding more boxes of similar memory and CPU. Scale out is ideal for web-tier. |
Researches have shown that "pure" scale-up approach is not very effective in using all the processors in a large SMP (shared-memory servers). A carefully chosen scale up / scale out solution is recommended for better application throughput. |
There are two architectural models – commonly referred as SAAS Maturity models- that describe the transition of a service to what is called Multi-tenant efficient, highly scalable application. The SAAS Maturity model described by Microsoft has four distinct stages and is illustrated below. Another similar well-known model for SaaS-maturity is known as Forrester-model but adds another stage known as "Dynamic Business Apps-as-a-service". The three key Attributes of a SAAS Architecture: Configurability: Metadata used to configure the way the application behaves for customers Multi-tenant Efficiency : Maximizing the sharing of resources across tenants Scalability: Maximizing concurrency, resource efficiency SAAS Simple Maturity Model (Microsoft, 2006) SaaS Maturity Model (Forres...
Comments