As defined by one of the top IT service providers, cloud computing is an
emerging computer paradigm where data and services reside in massively scalable
data centers and can be accessed from any connected devices over the Internet.
Cloud computing, however, has become the phrase du jour, to quote Ben Pring,
senior analyst at Gartner, and the definition above is only one of the many.
The term cloud itself has been used to represent the Internet, and network
diagrams have, more often than not, connections that pass through this cloud.
When computing is added to this, we find that these connecting lines can
originate or terminate within the cloud; with hosted, powerfully scalable
applications and vast storage capability. To cut to the chase, as it were, cloud
computing allows IT to increase capability and add capacity without investing in
new infrastructure (hardware or software) or training.
Moving to the Clouds?
The pundits have already foretold that application development will soon
move straight to the cloud and developers will soon be able to code, test, and
deploy applications while remaining platform and OS agnostic. While this is yet
to be fully realized, it is almost certain that adoption rates will rise in
2010, and more tools and platforms will have the maturity to allow this kind of
development. The movement will be away from delivering infrastructure as a
service, and towards the platform and application level.
So, should one do away with all local applications and migrate completely to
the cloud, or the other way around? Clearly, the middle path of using a
combination of local and cloud applications seems to be a good way to start,
allowing companies to retain ownership and control of critical applications and
using cloud computing in those areas where it makes most operational and
economic sense. This hybrid model is currently finding much favor.
Redesigning Applications
Reading through many application design guidelines for cloud computing, it
is found that many of these guidelines are built around the cloud provider.
Theres no doubt that this is important, but provider-neutral practices that are
built on existing best practices for application design (not necessarily
specific to cloud computing) are just as important. Some of the distilled wisdom
of cloud computing experts across the web are:
Mix and match (platforms and architectures): Cloud computing allows placement
of databases, application processing and user interface (UI) processing on
separate providers as well as a mix of on-premise and cloud systems.
Functionally independent, these components can inhabit the same platform if
necessary, or even on different ones. It all depends on what particular
combination provides the best performance-cost ratio.
Minimize dependencies: Reducing dependencies between application components
is definitely desirable; as such a loosely-coupled architecture will allow you
to continue optimizing your mix of platforms and architectures down the line.
The immediate questions that arise here concern security and governance, and it
thus makes sense to find the right balanceminimizing dependencies and allowing
architectural flexibility without making unnecessary compromises on safety.
Step by Step
|
Too much communication, or too little: Application components such as
databases, application processors, process engines and UIs on a distributed
network need to communicate, and if this information flow is at the right
levels, applications become much easier to work around on a specific platform,
cloud computing or on-premise. However, if there is too much chatter, as it is
called, latency can creep in with distributed application components. To avoid
this, it becomes necessary to structure inter-application component
communications asynchronously, thus boosting efficiency.
Dont compromise on portability: As cloud computing providers multiply
rapidly and the competition heats up, it will become quite common to see
providers offer native application programming interfaces (APIs) bristling with
features and various bells and whistles. While these might add value to your
applications, the trade-off on portability has to be carefully evaluated. There
really is no way to completely avoid using native APIs, but the design guideline
here is to always keep portability in mind, and allow for emerging standards.
In Conclusion
Using cloud services without the appropriate oversight will quickly result
in a chaotic application environment where private information can be leaked to
the cloud, possibly with disastrous consequences. Excessive use of cloud
services can also negatively impact the bottomline, especially as many cloud
providers (including Amazon) do not provide itemized break-ups of costs.
Thus, for optimal use of the cloud computing paradigm, it is vitally
important to have the right policies in place right from the outset. With proper
governance and security, there is no reason why cloud computing cannot be used
with complete safety and confidence. As far as application development goes,
design guidelines that encompass both cloud computing and on-premise platforms
can result in applications that provide robust value throughout their lifecycle.
S Janardhanan
The author is VP, technology and quality,
ITC Infotech
maildqindia@cybermedia.co.in