November 4, 2009
Cloud computing has lately gained a lot of interest for the advantages it deliver s from a price to performance ratio based on the principles of multi-tenancy, distribution and scalability that forms the core principles of cloud computing. Specifically, companies such as Amazon and others have made cloud computing accessible to a large community of developers by exposing web services APIs that allow 3rd party companies to host their applications on the Amazon cloud and take advantage of the robustness of their larger network instead of having to incur the cost of maintaining one’s own data center. There is not only a strong commercial aspect supporting migration of application s to Cloud but also valid technical reasons to do so. Cloud based architectures allow applications to scale to massive levels dynamically with little tuning while leveraging the capabilities of the underlying infrastructure.
HSC was recently charted to execute a transformation project for an existing collaboration platform to a cloud based platform. In this article we have captured the strategy which was adopted for re-engineering the existing application from a shared hosting platform to a popular cloud based infrastructure and database platform.
The customer sells a web based hosted conferencing solution. The solution combines collaboration/communication tools in a friendly front-end for easy use by enterprise customers. With the increased acceptance of the platform it the customer felt that the current architecture was limited with respect to scaling. The customer had an option to upgrade to a much larger data-center and high availability solution, but the initial investment (in addition to re-engineering cost) for the upgrade meant the customer would have to put up a lot of money upfront without assured returns. Instead, the customer wanted a ‘scale as you grow’ solution that kept the company spending controlled.
Cloud based ‘pay as you go’ approach was the ideal solution for this customer. The cloud solution that was recommended by HSC was to use the Amazon cloud infrastructure. In addition to cost savings, the reliability of the amazon cloud was of significant benefit to the customer as well.
Figure 1-1: Original network deployment architecture
The original collaboration application was architected as an n – tier solution, which build s on top of various SaaS platforms and supports multi -tenancy in its northbound interface. The only scalability it achieved was through classical load balancing techniques available today. Down time during failovers or planned upgrades was another challenge the development and support team was continuously facing. Their premium customers were looking at SLAs which would allow hot upgrades (upgrade while the system is live) and carrier grade availability. As part of this project, HSC was additionally tasked at proposing a solution strategy, which could be employed to take care of availability issues and reduce overall downtime under different circumstances. The figure below captures the original architecture for the website.
Figure 1-2: Solution Architecture
After studying the existing architecture and the business requirements HSC proposed a cloud -based architecture which leverages the Amazon’s Elastic Compute Cloud (EC2) and other associated services to introduce dynamic scalability in the platform and at the same time takes care of issues related to availability during failovers and upgrades.
Key aspects of the proposed solution:
The subsequent sections of the document explain the key architectural changes that HSC made to the solution and how they were deploying on the Amazon cloud infrastructure.
The data layer of the original solution was monolithic and had a complex architecture to support multi – tenancy. While the solution served the requirements, it featured a lot of complex overhead code for the business logic. Additionally there were limitations in the system for it to be deployed in a dedicated mode for customers who were heavy users, while maintaining acceptable performance for other users of the service.
HSC proposed a multi-dimensional data architecture, which could support both dedicated and a multi-tenancy mode.
The customer had different user profiles with different usage requirements and accompanied SLAs. During our technical evaluation of the system, it was felt that the existing multi-tenanted architecture imposed an uncalled for overhead on the platform which in turn lead to the underperformance of the solution even when deployed in a dedicated mode. However, such overheads were un -avoidable for subscribers who were occasional users of the system and had SLAs, which were compensated by a cheaper utility-based service offering.
Keeping these aspects in mind, HSC introduced a multi -feature server approach where dedicated server instances, without a multi- tenancy framework, could be deployed dynamically to cater f or subscribers with higher service usage and stringent SLA requirements.
These servers could either be instantiated dynamically or could be provisioned statically using a web based control panel, which consumes APIs exposed by Amazon Elastic compute cloud infrastructure. The web based control panel itself was built on top of HSC’s reusable components for EMS/NMS development.
To reduce the turnaround time and introduce distribution, the solution was deployed across various data centers of Amazon with location selection, instance count being a function of customers and associated SLAs in those regions. This approach to distribution also introduced the much needed redundancy which would prevent the system from a complete failure, and hence if the servers in on e -region were not reachable or loaded, the system would still be able to re-route and serve requests from other regions. Furthermore all data servers were replicated automatically at pre -determined time intervals or manually when instructed by the operator across the regions.
Distribution based on geography and solution scaling was built into the system using Amazon’s Load balancing and Auto scaling APIs.
High availability was one of key concerns addressed by the cloud- based architecture. As is evident from the solution description high-availability has been introduced in the system at multiple layers. The key strategy for introduction of redundancy was based on utilization of Amazon’s infrastructure and isolating server instances from total infrastructure failure. This was achieved in the proposed solution through: –
The figure below describes the network layout architecture of the new cloud hosted solution developed by HSC.
Figure 1-3: Network deployment architect ure of HSC’s proposed solu tion
Figure 1-4: Solution Architecture of the Cloud hosted solution
Figure 1-4, showcases the solution architecture of the pilot solution, which was deployed for the customer.
The key wins of the solution were: