Traditional SaaS vs Cloud Enabled SaaS
Join the DZone community and get the full member experience.
Join For FreeInspired by Gilad's great summary on the Cloud Programming model,
I try to summarize the difference that I observe between the
traditional SaaS model and the "cloud-enabled SaaS model". Although
cloud providers advocates zero effort is need to migrate existing
applications into the cloud, it is my belief that this "strict-port"
approach doesn't fully exploit the full power of cloud computing. There
are a number of characteristic that cloud is different from traditional
data center environment, application which design along these
characteristic will take more advantages from the cloud.
I believe a Cloud-enabled-Application should have the following characteristic in its fundamental design.
Latency Awareness
Traditional
SaaS App typically run within a single data center and assume low
latency among server components. Now in the cloud environment that span
many distant geographic locations, but the assumption of low latency
cannot hold any more. We need to be “smarter” when choosing where to
deploy to avoid the situation of putting frequently communicating
components between far-distant locations. “Cloud-enabled SaaS app” need
to be aware of latency difference and built in self-configuring and
self-tuning mechanism to cope with that.
Cost Awareness
Traditional
SaaS app typically run on already purposed hardware where utilization
efficiency is not a concern. Now with the “pay as you go” model,
application need to pay more attention to its usage pattern and
efficiency of underlying resources because it will affect the operation
cost. Cloud-enabled SaaS application need to understand the cost model
of different resources utilization (such as CPU cost may be very
different from Bandwidth cost) and adjust their usage strategy to
minimize the operation cost.
Security Awareness
Traditional
SaaS app typically run on a fully trusted data center based on
perimeter security. But in the Hybrid cloud model, the perimeter being
drawn is very different now. Application need to carefully select where
to store its data such that sensitivity will not be leaking. This
involve careful determination of storage provider or use encryption for
protection.
Capitalize on Elasticity
Traditional
SaaS App is not used to large-scale growth / shrink of compute
resources and typically haven’t designed well to handle how data get
distributed to newly joined machines (in a growth scenario) or
redistributed among remaining machines (in a shrink scenario). This
ends up having a very inefficient use of network bandwidth and results
in high cost and low performance. More sophisticated data distribution
protocol that align with the growth and shrink dimension is needed for
“Cloud-enabled SaaS app”
Opinions expressed by DZone contributors are their own.
Comments