Friday, January 23, 2015

Read a Thin Book - Cloud Architecture Patterns - 4 - Scalabiity

Scalability Primer


Definition


Vertically Scaling Up
-- to increate capacity of individual nodes through hardware improvement
-- hardware or infrastructure focused
Horizontally Scaling Out
-- increase overall capacity by adding more nodes
-- shifts the focus from maximizing the power of individual nodes to combining the power of many nodes.
-- more complex than vertical scaling
-- more fundamental influence on application structure.
-- software/development and architecture focused

Note:
Scalability is better described as elasticity since scaling down is also important in this model. People are used to extend/stretch capacity and rarely want to contract it.

Benefits


Vertically Scaling Up

--simple

Horizontally Scaling Out

-- commodity systems
-- unlimited growth

Constraints


Vertically Scaling Up

--can be costy
-- has a limit on maximum capacity

Horizontally Scaling Out

-- complex on implementation and maintenance
-- each node is less efficient on resource usages due to overhead of scaling out support

Misc

Cloud-native applications allocate resources horizontally. and scalability is one of the benefits.

The key to efficiently utilizing resources is stateless autonomous compute nodes. State
less nodes do not imply a stateless application. Important state can be stored external
to the nodes in a cloud cache or storage service, which for the web tier is usually done
with the help of cookies. Services in the service tier typically do not use session state, so
implementation is even easier: all required state is provided by the caller in each call.

No comments: