What You Should Know Before Moving into the Cloud
By Prashant Agrawal, Sr. Project Manager, MindTree Limited
As with most relatively new paradigms, cloud computing is more of an evolution rather than a revolution. Cloud computing as a concept came of age as the Internet, service oriented architecture (SOA) and virtualization converged.
What distinguishes cloud computing from earlier paradigms is that capabilities are delivered "as a service," services are delivered in a highly scalable and elastic fashion, Internet technologies and techniques to develop and deliver the services, and services are designed for delivery to external customers.
With "service" being one of the key characteristics, SOA plays a key role in developing applications on cloud computing platforms. SOA provides a set of principles to ensure application architecture packages functionality as a set of interoperable services. Focusing on loose coupling, SOA allows services running on any platform/operating systems to communicate and interact with each other.
Cloud computing has been defined with three service layers –- Software as a Service, or SaaS, Platform as a Service, or PaaS, and Infrastructure as a Service, or IaaS.
Apart from the business challenges (like cost benefit, existing investments, etc.), there are many other challenges in developing on or migrating to cloud. Challenges with cloud computing include the following:
- Security: Consumers of cloud computing platform need to consider issues around application security, data security, and compliance and regulatory needs (PCI, SOX, SAS 70 etc).
- Management and monitoring: Due to lack of control on the virtual infrastructure (especially in Platform as a Service PaaS scenarios), application architecture itself should have provisions to provide better control to administrators on various management aspects.
- Scale-out architecture: Existing business applications have focused on "scale-up" architecture instead of "scale-out" architecture. Scale-out architecture typically exists in most of the Web applications. However, computationally complex tasks and massive data processing may need re-architecting using distributed processing.
- Bandwidth/latency: The scalable nature of platform can clock up bandwidth usage considerably -– if allowed to scale unchecked. Similarly, due to remote location, latency needs to be factored into business use cases and application architecture & design.
- Integration: Applications running in the cloud will require integration with applications running on-premise and other applications in the Cloud. A robust integration platform needs to be designed to facilitate this. SOA plays a critical role in minimizing integration challenges.
- Data Migration: Cloud computing platforms offer highly scalable Distributed File Systems (Amazon S3, Azure Storage, Google AppEngine Datastore) as primary data store. Data Migration from RDBMS to a DFS needs to be factored into the design.
- Lock-in: At this stage, there are no open standards that exist which will facilitate the migration from one cloud provider to another. There are some initiatives around this like the "Open Cloud Manifesto."
From the software providers' perspective, cloud computing allows them to be agile and nimble with dedicated focus on business innovation, since they can leverage "undifferentiated heavy lifting" and operational efficiency of Cloud provider.
The operational benefits of adopting Infrastructure as a Service (IaaS) and PaaS include reliability, on-demand scaling, operational efficiency, pay-per-use pricing, opex instead of capex.
Some of the business benefits of cloud computing include the ability to target new customer segments and build an annuity-based revenue model.
How to Evaluate Cloud Offerings
Enterprises considering leveraging cloud providers should take the following measures:
- Evaluate: All cloud providers have different levels of maturity, support different technology stacks and provide varying degrees of abstraction for applications, cost etc.
- Strategize: With investments made in an existing solution and infrastructure, it might not be practical and feasible for a "lift-and-shift" approach to cloud.
- Migration strategy defines the timeline, roadmap and sequence of the solution components to migrate to cloud. This also includes the management and monitoring, security, and operational aspects too.
- Partial migration: An optional hybrid solution includes some components within the overall solution moving to cloud. Examples of this include data aggregation and analysis, independent features/modules within a solution, and blob storage to store and deliver media using cloud Storage.
- Complete migration: Components that naturally (as is or with minimum changes) cannot be migrated to cloud need to be re-architected and sometimes re-implemented. The complexity of this depends on the architecture, dependency on various other systems, as well as the synergy between the current architecture and the architecture supported by the cloud provider.
- Leverage platform advantage: Several IaaS and PaaS platforms provide additional features for handling common problems of Internet scale solutions, like distributed storage (BigTable, Azure Storage, Amazon S3) and federated identity management infrastructure. Leveraging these features, as opposed to using 'traditional solutions' in the Cloud, provides scalability and cost efficiency.
- Leverage cloud ecosystem: As the cloud space evolves, additional features are becoming available for software providers to integrate into their solutions. These features impact the "build" versus "buy" choices for consumers as well as additional value that can be created through partnerships and aggregation of services within the Cloud (Examples: Windows Azure .NET Services, AWS CloudWatch, etc.)
Cloud computing, though primarily evolutionary, will have a major impact on the way software services are delivered and consumed by businesses and consumers alike. With its multiple flavors (IaaS, PaaS, SaaS), unique challenges and considerable benefits, cloud computing requires organizations to adopt the platform in a well-planned, phased and structured manner. With the migration planning and methodology steps outlined in this document, migration to the Cloud can be achieved successfully.