Cloud computing is an on-demand, integrated, configured, ready-to-use combination of compute, storage, network, platform and application software available as a standardized set of service offerings on a pay-as-you-use pricing model.
Cloud computing is altering the IT service delivery by providing rapid service delivery – provisioning resources takes few minutes instead several weeks, on demand scaling – businesses can scale up or scale down resources based on needs instead of provisioning for peak demand, consolidation of resources by virtualization is leading to better asset utilization and reducing resourcing needs, self service provisioning is leading to reduced time for service acquisition, standardization of service offerings is leading to reduction in the cost of maintenance, flexible pay-as-you-use charging supported by metering and billing is resulting in reduced costs as businesses pay for what they consume.
With clear benefits of cloud computing, many legacy applications are being migrated to the cloud. This paper explores the cloud migration activity and presents six levers for resource optimization during the cloud migration process.
Cloud Migration
Cloud migration encompasses moving one or more enterprise applications and their IT environments from a “traditional hosting” type of environment into a cloud either private or public or hybrid.
Cloud migration activity is carried out in these phases:
1. Evaluation: Evaluation is carried out for current infrastructure and application architecture, environment in terms of compute, storage, monitoring and management, SLAs, operational processes, financial considerations, risk, security, compliance and licensing needs are identified to build a business case for moving to the cloud.
2. Migration strategy: Based on the evaluation, a migration strategy is drawn – a hotplug strategy is used where the applications and their data and interface dependencies are isolated and these applications can be operationalized all at once. A fusion strategy is used where the applications can be partially migrated, but for a portion of it there are dependencies based on existing licenses, specialized server requirements like mainframes or extensive interconnections with other applications.
3. Prototyping: Migration activity is preceded by a prototyping activity to validate and ensure small portion of the applications are tested on the cloud environment with test data setup.
4. Provisioning: Pre-migration optimizations identified are implemented. Cloud servers are provisioned for all the identified environments, necessary platform softwares and applications are deployed, configurations are tuned to match the new environment sizing, databases and files are replicated. All internal and external integration points are properly configured. Web services, batch jobs, operation and management software are setup in the new environments.
5. Testing: Post migration tests are conducted to ensure migration has been successful. Performance and load testing, failure and recovery testing and scale out testing are conducted against the expected traffic load and resource utilization levels.
Optimization
Before the actual migration activity, several resource optimization activities are carried out.
There are six levers which can be used for resource optimization:
* Optimize by consolidating under-utilized resources.
* Optimize based on time of day usage.
* Optimize based on seasonal demand variations.
* Optimize based on life cycle usage variations.
* Optimize by standardizing platforms.
* Optimize by application rationalization.
Following sections detail these optimization techniques:
1. Optimize by consolidating under-utilized resources
In an enterprise with multiple brands, where each brand maintains their own independent IT environments, resources are allocated to applications based on the needs of that brand. As the capacity planning is undertaken independently for each brand, resources are left with spare capacity that goes unutilized. When considered as a whole, the spare capacity across all brands turns out to be of significant value. This provides an opportunity to consolidate applications across brands and reduce the resources based on their utilization.
Resource optimization based on demand:
In a traditional data center computational capacity is over-provisioned considering peak loads and thus under-utilized. Traffic flow analysis is conducted to determine the resource demand variations for the applications that use the most bandwidth, time of day usage, average time users are connected to the service, peak season and off season usage, CPU, memory and storage resource utilization.
There are three types of demand variations that can be considered for optimization: Demand based on time of day, on season and lifecycle of usage.
2. Optimize by time of day demand variations
Certain applications demonstrate periodic spurt in traffic aligned with time-of-day variations based on factors which are unique to the organization or industry. Some examples are morning spike in load on attendance application due to employee attendance swipe, end of day sales reconciliation, catalog item description updates during the night in an ecommerce site, search indexing every 8 hours on an intranet search application.
Traffic profiling of all applications is performed during the technical evaluations phase, provides the needed information to choose applications for optimization. Applications are chosen such that peak traffic loads are non-overlapping with each other. Resource usage on such applications can be optimized by allocating a reduced common pool of shared resources.
3. Optimize by seasonal demand variations
Certain applications based on the industry and geography in which they are deployed, are exposed to seasonal variations in traffic. Traffic flow into eCommerce applications in North America are a classic example of this, during the holiday season (Nov, Dec, Jan) alone e-commerce sites like Amazon.com, Walmart.com receive 3X burst in traffic than their regular season traffic. This sudden burst in traffic would need the retailers to provision resources statically to cater to the peak loads and maintain them throughout the year. However, much of this capacity is under-utilized during the non-peak season. Retailers need to bear the costs of hardware, software licenses, network, power and people costs for maintenance. To reduce this overhead of costs, optimizing the resources based on such seasonal demand variability is considered.
4. Optimize by life cycle usage variations
Organizations have independent environments for various software lifecycle stages, which include development, pre-production testing, staging, multiple production sites and recovery environments. The software development lifecycle and environments for each of these brands are independent today and are scheduled and sized according to their needs. By aligning the schedules of software lifecycle stages of several brands and pooling the computing resources costs can be reduced.
Optimization is achieved by following these steps: Align the software development life cycle stages of multiple brands that have significant resources allocated for development and pre-production testing. Pool the computing resources for the brands into a virtual machine cluster with separate VM images as needed by development and pre-production testing. Create a resource allocation plan aligned with the software development lifecycle. Commission and decommission the computing resources as per the plan to reduce the resources.
5. Optimize by standardizing platforms
Certain IT environments have high diversity of operating systems, software applications, tools, and hardware from various vendors and versions. A highly fragmented environment with different vendors and versions for applications limits the interoperability, limits the reuse of applications and components across the organization leading to high levels of redundant functionality, increases the lead time in provisioning and change management of hardware and software due to limitations in effectively managing diverse platforms.
6. Optimize by application rationalization
Application rationalization helps to reduce overlapping and poorly utilized applications across brands in a enterprise. A current state chart of applications, their resource utilization efficiency, business criticality and cost is drawn for applications deployed in the IT environment of each brand.
Conclusion
Cloud computing provides a cost-effective, dynamically adaptive, scalable, self service provisionable platform for IT services delivery. These factors are driving migration of legacy applications into cloud computing platform.
Cloud migration presents an opportunity to significantly reduce costs incurred on applications. The six levers of optimization presented here help enterprises to fully leverage the potential of the cloud and benefit from the migration activity.
- The Customer Edge Drives the Need for NaaS - June 25, 2023
- Blockchain Evolves And Secures - January 13, 2019
- Bessemer Ventures’ 2018 Cloud Computing Trends - February 25, 2018