« Oslo Repository creation not successful? | Main | ASP.NET MVC eBook Tutorial released »

Will my business operations come to a standstill, if the Cloud is not available?

Being one of the concerns we have often heard from customers who are seeking early adoption of Cloud within their enterprises. 

Cloud technologies being fairly nascent and the space evolving rapidly with the emergence of new players and re-positioning of leading platform players honing their products for the cloud has given way for several new and innovative opportunities to be explored but then its rapid adoption is being hindered due to several concerns primarily revolving around data privacy, loss of control, reliability etc... I shall touch upon reliability here.Read on..

The evolution of technologies such as the Internet, SOA and Virtualization which have laid the cornerstone for the Cloud, read more here, provides the following key benefits:

  1. Low Cost
  2. Global Scale
  3. Better Agility
However there are several concerns which exist today, one I shall attempt to address here is “Reliability”. Cloud architecture, by design, is considered to be highly available, up and running 24*7. Several Cloud providers have made huge investments to plan for any eventualities and ensure that the cloud is always available. However this is a concern since many cloud offerings do not offer service level commitments that are typically needed to operate critical business processes.  Outages have been experienced on the platforms provided by cloud providers such as Google , Amazon causing disruptions to businesses of the early adaptors. These may be initial glitches, which get addressed by the cloud vendors in due course as the platform matures. But then this still remains a major risk today, with customers that are considering this as one of the key criteria’s to evaluate the potential of the cloud as an application delivery model for the enterprise

From a Technical standpoint, requirements could be as listed below:

  1. Critical systems can still go on in spite of a network outage to the cloud
  2. Client does not lose ability to execute even if cloud is down. Cloud is used for scalability and performance. But if required customer can turn off and roll back immediately. Get flexibility and benefit of cloud but don’t lose control.
  3. No single point of failure
  4. Access to near real time information at all times

From a Business standpoint, requirements could be as listed below:

  1. What if the Cloud is not available tomorrow, will my business stop functioning?
  2. Information available to me from my systems should be near real time if not real time.

I would attempt to address this problem statement by considering the Azure technology stack available from Microsoft today. And here are my thoughts behind developing, an Architecture for the cloud which is both reliable as well as resilient,

  1. Code deployed on the Windows Azure platform will be on .NET and which is portable to run both on the cloud as well as on-premise AS-IS. Code can be executed on any platform that has the .Net Framework installed. The code you build for the cloud will not be locked-in.
  2. Service based architecture will inadvertently address the integration issue. Hosting the service endpoints on the Azure .NET Services, provides for location transparency enabling service clients to be independent of the physical location of services. In our case a client request  can be transparently routed either to the cloud service or in case of failure to an On-Premise instance of the running service hence switch from active to passive link rather seamless for clients accessing the cloud.
  3. In order to address the outage or unavailability issue, the Enterprise can host a failover site with a similar architecture running in an Enterprise Disaster Recovery data center. Although the Cloud by nature is designed to be available at all times, in times of eventualities when the Cloud itself goes down, a Low cost DR site or a Hosted Infrastructure will have to be kept alive with the “Lights On”
  4. Cloud storage can also be a single point of failure. We can address that in this scenario  by using a 2-way sync / replication approaches using either SQL Server or the Microsoft Sync Framework

Below is a figure which depicts my proposed Reliable and Resilient architecture model that leverages the Cloud as well as the On-Premise world, with benefits realized by this design.

ReliableCloud1.png

The application components get published on the cloud at the same time deployed to the data center during the Go-Live. A redundant set of binaries would exist which are duplicated on the cloud as well as in the data center. The binaries in the data center will seldom be used.

As can be seen, the additional DR site may marginally add to the overall TCO of an enterprise. However enterprises will have to weigh the costs with respect to the criticality of having an application available guaranteed 99.999% of the time to keep the business processes operational at all times.

Alternatively desktop applications can function in the absence of a cloud by providing offline storage and synchronization capabilities. This design is especially relevant in the following scenarios:

a. Augment to the functionality of on-premise  legacy applications by leveraging the cloud

b. Applications which have intermittent connectivity to the cloud

c.  Software + Services scenarios

More on this design pattern covered in my next blog.

TrackBack

TrackBack URL for this entry:
http://www.infosysblogs.com/apps/mt-tb.cgi/1940

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.

Subscribe to this blog's feed

Follow us on

Blogger Profiles

Infosys on Twitter