A P P L I C A T I O N S A WHITE PAPER SERIES IMPLEMENTING A CLOUD COMPUTING MODEL IS A MAJOR CHALLENGE. ENTERPRISES NEED TO TAKE A HOLISTIC APPROACH TO ENSURE ACCESSIBILITY, FLEXIBILITY AND SECURITY. Journey to the Private Cloud SIDDARTH JAISWAR YUSUF RANGWALA SYNTEL, INC.
1 2 3 4 TABLE OF CONTENTS EXECUTIVE SUMMARY INTRODUCTION TO THE CLOUD: BASICS THE PRIVATE CLOUD MATURITY MODEL YOUR FIRST STEP: ASSESSMENT WHAT TO ASSESS 5 HOW TO ASSESS BUILD COST AND ROI MODELS COST MODEL BENEFITS 6 GENERAL CONSIDERATIONS AND GUIDELINES PREPARING FOR CLOUD THROUGH CONSOLIDATION AND VIRTUALIZATION CONSOLIDATION 7 8 VIRTUALIZATION MOVING TO THE CLOUD MIGRATION GUIDELINES MAKING THE CLOUD EFFICIENT ADVANTAGES OF AUTOMATION HOW TO AUTOMATE 9 OPTIMIZATION CONCLUSION Executive Summary Cloud computing is all the rage today. As an innovative model of using and delivering IT and business services, the hype around cloud computing also brings in a lot of confusion, which may deter the overall adoption to cloud. With its various models Public, Private, Hybrid and Community cloud organizations have considerable decision making to do in order to choose the right model. To add to the confusion, there is a plethora of cloud management platforms and vendors available for each particular implementation of the cloud model, which one has to carefully select. Implementing a cloud computing model is a major challenge for organizations that need to best leverage its vast potential to gain maximum results. Enterprises considering cloud computing need to take a holistic approach that would involve a new focus and method to ensure accessibility, resiliency and security. Like with any new technology, it is prudent to decide on the strategy and methodology of migrating business applications to the selected cloud platform. Moreover, the operational semantics of the application deployed on the cloud needs to be worked out as well. This paper offers important considerations that organizations need to reflect upon before beginning their cloud journey. 2012 SYNTEL, INC.
Introduction to the Cloud: Basics With all the hype around cloud, it is difficult to understand just what the basic components are. In a nutshell, cloud computing as a whole is composed of three primary segments: IaaS, PaaS and SaaS. IaaS, or Infrastructure as a Service, involves providing a virtualized infrastructure that can be scaled up or down depending on usage requirements without requiring prior investment in infrastructure. Amazon EC2 and Go Grid are some examples of IaaS service providers. IaaS is typically leveraged in a public cloud scenario where infrastructure providers have a large, organized, redundant and virtualized data center across the globe. Subscribers deploy their applications/data on these data centers and pay for the infrastructure they use. PaaS, or Platform as a Service, involves provision of a software platform, which facilitates running a business application in an optimized and highly available manner in a cloud infrastructure. These platforms also come with their own set of administrative tools that makes provisioning and management of these applications over the cloud easier. PaaS offerings facilitate building scalable, reliable applications. VMWare vfabric, Cloud Foundry and Microsoft Azure are some examples of PaaS offerings. SaaS, or Software as a Service, involves hosting business applications that are created keeping a particular industry requirement in mind so that multiple organizations can use the same business applications hosted on the cloud without requiring application modification. In other words, business applications that are multi-tenantable, cater to needs of not just one but multiple enterprises and hosted on a cloud infrastructure/ platform can be qualified as SaaS. SalesForce.com is an example of one such offering. Each of these segments can be offered in the following topologies: Private topology relates to enterprise data centers that can be transformed to support IaaS, PaaS and SaaS. There are further categorizations of private cloud, based on whether the data center is totally owned and co-located in the enterprise or managed/hosted by a third party. However, the common aspect of all three types is that a single enterprise uses it and has complete control of how the cloud is configured and implemented. Public topology relates to data centers owned by IT companies like Amazon, Microsoft and CenturyLink, where all or some cloud services are offered through infrastructure owned by the provider. Users pay for their usage based on the billing options offered by the provider, who handles the entire management and operation of the data center. Hybrid topology refers to a combination of public and private topologies, where some services are consumed through a public cloud, some services are private cloud based, or duplicated across both. Clearly, organizations embarking on a cloud journey do not have to implement IaaS, PaaS and SaaS together. Implementation of each service is contextual and depends on multiple parameters. Moreover, each of these services can be implemented in private, public or hybrid cloud models, depending on an organization s needs. As part of this approach paper, we ll focus on the scenario of private cloud implementation and its considerations. The Private Cloud Maturity Model The diagram below depicts the various stages to be considered in the journey of an enterprise towards private cloud enablement. Figure 1: Private Cloud Maturity Model Assessment Consolidation Virtualization Migration Automation Optimize & Market In this phase an enterprise must take stock of its existing infrastructure assets, staff resources and other holdings to enable a cost/benefit analysis based on the target cloud platform. The outcome of this assessment is an ROI model and high-level strategy document. During this stage, opportunities for consolidation of IT infrastructure and budgets are explored and implemented. All opportunities to virtualize the IT physical infrastructure are explored and implemented. Applications are selected for migration to cloud and ported to a reference architecture that is prepared for the private cloud platform. Now, the automation opportunities offered by the cloud platform are used to automate the administration, management (including provisioning additional computing resources), in order to reduce the time and effort required for these activities. In the final stage, the first batch of migrated applications are offered for use to intended users and usage metrics are closely monitored. The metrics are validated against the cost/benefit analysis and the appropriate optimization steps are taken. There will be different considerations and guidelines for each of the stages in the model above. Some parameters might be obvious, and could be considered earlier in the process than as listed in this paper. Our intention is to highlight some of these parameters to help organizations succeed in their migration to private cloud.
Your First Step: Assessment This is the first stage for any organization that intends to consider cloud for its enterprise landscape. The primary goal of this stage is to assess what currently exists in order to have a view of the overall enterprise landscape. This stage in itself does not signify any improvement in the maturity model, but develops a baseline for all subsequent stages. Assessment also provides the organization with: Strategy Inputs: Comprehensive picture of the enterprise and parameters that can be considered for future stages. For example, utilization numbers are used for consolidation and virtualization phases to optimize infrastructure usage. Performance Benchmarks: Provides necessary baseline numbers against which utilization and performance will be measured after migrating to cloud. Cloud Adoption Roadmap: Sets an overall strategy for migrating to cloud, which can include decisions on what platforms and offerings to select for migration, the roadmap for applications to be migrated, and the feasibility assessment of moving to cloud. What to Assess To prepare for the cloud journey, it is important for an organization to assimilate the right information. This section provides guidelines that will help evangelists collect the key data points. In general, you must collate a comprehensive list of infrastructure assets including applications in the enterprise landscape. Though quite elementary, this is something that might not be created or updated for reasons, ranging from employee turnover to deadline pressures. The following information should be considered: Utilization levels Performance benchmarks Application infrastructure inventory Collecting utilization levels for infrastructure on an application basis will help primarily in consolidation scenarios, as well as to predict cost savings. Overall, utilization parameters should include: CPU utilization (average and peak) Memory utilization (average and peak) Disk storage utilization outside of databases Database data files and predictive database growth Database log/transaction file sizes and truncation frequency Network utilization Performance benchmarks for each of the applications will assist in developing the right SLAs on the cloud. Generally, performance benchmarks should include: Average performance numbers across three testing cycles Peak usage performance numbers Stress performance numbers Additional information would include outage related information, maintenance schedules and usage patterns. Finally, an application infrastructure inventory should be compiled to include all applications that are deployed and used in the enterprise. This is absolutely essential to assess cloud migration compatibility. The following data points should be gathered: Technology platform that supports the application Web/application types and/or database servers Architecture layout It is always useful to envision the overall architecture of the final private cloud environment. When building the strategy, a good idea would be to build a private cloud framework, an example of which can be seen in figure 2. Though very preliminary, the idea is to identify the basic building blocks for your private cloud. As indicated above, the following components can be included in a framework Virtualized Infrastructure proves as a base on which the entire cloud is erected. The cloud fabric would contain the application and the platform part of the Cloud Fabric Management Fabric cloud. On a basic level, we will have the following: Management Fabric, which should take care about the monitoring, provisioning and management of the cloud. Communication Fabric, which will accept requests from applications for compute, as well as make the requests to invoke application APIs. This will provide the scalability to the cloud. User Applications, which are the modified applications for the cloud platform. Security aspect covers the various measures and applications to make and maintain the cloud platform secure. This phase should also assess these. However, documenting the security considerations will be an approach paper by itself, and is hence not covered in this whitepaper. How to Assess For each of the above points, care needs to be taken to collect the information in the right manner. In case of infrastructure, a monitoring tool can be extremely useful and easy to use for capturing runtime metrics. If such tools are not available or preferred, using traditional system monitoring graphs and counters can also be used to capture data during an average work period for the application. In case of applications, some general guidelines are: Include defining reference architecture in the strategy. This will help in standardization of the applications and ease the process of migration Evaluate if there is a need for assessing or refactoring the applications to be migrated for the cloud platform. This will be dependent on the cloud platform as well as the reference architecture Plan for discussions and workshops with all the stakeholders and application owners. They will be important in assessing applications with respect to business requirements and overcoming constraints for migrating to cloud. Build Cost and ROI Models Application 1 Application 2 Communication Fabric Operating System VIRTUALIZED INFRASTRUCTURE Figure 2: Reference Cloud Architecture Framework An important consideration for any new initiative is to evaluate its benefits in tangible terms. The cloud initiative is no different. In fact, it would be prudent to make an assessment on how this migration benefits, and if it is actually worthy of making the necessary changes. The cost and ROI models enable you to assess these benefits before migration of the applications to cloud. They also provide pointers indicating at what stage in the cloud model an organization can get the maximum value. Cost Model A cost model provides an idea of what it would incur to migrate your application to a private cloud network. This model helps calculate the cost of existing resources as well as projected costs in the proposed cloud environment. When you develop a cost model, here are some things to keep in mind: SECURITY
Migration Costs: This should include personnel costs and cost of efforts to migrate your infrastructure onto a private cloud. When considering infrastructure costs, it is important to factor in costs of additional infrastructure purchase such as routers, switches and other network gears, in case of limitations in the existing infrastructure to cope with increased traffic that the cloud is supposed to handle. Also consider the cost of additional software and maintenance expense to run the cloud such as hypervisors for virtualization, etc. Cost of application migration to port the application to the cloud platform need to be considered. Do think of costs for additional tools to migrate the applications Operational Costs: Operational costs would include the actual costs of maintaining the private cloud network. This would include Server Cost including network Software Cost Facilities Cost Real Estate Cost Benefits This would constitute the actual returns and advantages that an organization realizes due to cloud migration. Results would generally include tangible benefits (both in terms of resource usage metrics and expenditure reductions), and intangible gains like enhanced user experience, simplified maintenance etc. The following parameters should be considered when calculating the benefits: Reduction in resources to be brought for further expansion, if the private cloud is providing additional resources due to optimized usage Reduction in efforts to manage the resources, which may result in reduction in manpower, or shift focus of manpower resources to other areas. Optimized power consumption and cooling Optimized utilization of office space Apart from these, the following non-tangible benefits could be considered: Increase in productivity of employees by the use of the application on the private cloud. This due to improvement in performance, or due to the change mandated by the cloud environment, which results in lesser downtimes/errors. Ease in the management of physical resources due to automated processes of the cloud. Faster time to market in rolling out new products and services. This can be measured by estimating the revenue/profit earned between the time for rolling out the application in an on-premise environment and for rolling out the application on cloud. Increase in responsiveness to sudden or unpredictable peaks by way of automation in terms of SLA misses or the reduction in additional hardware to be provisioned. General Considerations and Guidelines Every enterprise has its own unique architecture and requirements. Though most cloud platforms do provide some kind of a cost benefit calculator, it is seldom the One size fits all case. A detailed cost calculation and benefits calculation would provide tangible measurements for measuring the efficiency of applications on cloud. It is also advisable to lay down best practices of implementing the cloud to ensure that the ROI calculation is appreciated. Based on Syntel experience, the following strategies can be considered to achieve a higher ROI: If the current application is not co-located, and the requirements do not inhibit it, co-locating your private cloud infrastructure may result in lesser burden of management of physical resources. A dedicated IaaS vendor can come in handy for this. Cloud bursting to public clouds to handle unexpected peaks from your private cloud can be considered for non-mission critical applications in order to minimize impact to mission critical applications, as well as savings in terms of procuring additional hardware to manage these peaks. Moving development and test environments with non-production data to a hosted private cloud (pay-as-you-go) is generally beneficial and risk-free. This ensures that these short-duration environment needs do not incur complete procurement costs and continued operational costs. However, for each of these, consider the entire enterprise scope, rather than limiting it to silo applications. Preparing for Cloud through Consolidation and Virtualization The first step towards moving to cloud would mean making your infrastructure efficient and flexible. This could be done either by adopting consolidation techniques, or implementing a virtualization solution, or a combination of both. Adopting the right strategy is dependent on the requirements of the applications in the enterprise. Apart from cost considerations to identify the infrastructure, the following are the key considerations of creating a consolidated and/or virtual infrastructure for the cloud: Consolidation On an average, the overall hardware utilization levels are often between 5 percent and 15 percent of the capacity of a physical server. By consolidating servers, businesses can increase overall hardware utilization and cut the cost through reduced rack space, electricity usage, and cooling costs. Virtualization Virtualization is the feature of dividing physical servers into smaller, manageable, and efficient virtual machines. Traditional deployments always restricted the applications on a single server, either due to heterogeneous environments (OS, software versions, etc), or in order to ensure lesser impact due to failures, or a combination of both. Virtualization tends to address this by providing means of hosting heterogeneous environments on a single/multiple physical server, with clear boundaries and failover capabilities. The Virtualization solution chosen for the cloud infrastructure should be checked for the following features: Resource Flexibility: Any dedicated physical server resources (like RAM, CPU etc.) in a virtual machine can be easily increased or decreased, with spare capacity coming from / returned to the host server. Virtual machines can be dynamically moved to another physical server, enabling large numbers of virtual machines to be balanced across a pool of physical servers. Guest Operating Systems: Ability to host many different operating systems and/or different versions of an operating system on a single physical server. Portability and Disaster Recovery: A virtual machine can be easily copied from one server to another, perhaps in a different physical location. Snapshot / Rollback Capability: A powerful aspect of some virtualization platforms is the ability to snapshoot a virtual machine for later rollback purposes. This feature can be considered as backup/ restore at the machine level. Similar to virtualization, the entire cloud infrastructure (storage, switches,
network) needs to be determined based on a number of factors and needs. The complete discussion of these is out of the scope for this paper, but needs to be considered during the cloud migration phase. Moving to the Cloud With the infrastructure virtualized and consolidated, a platform is already laid for cloudifying the applications. You might be able to use this virtualized environment to deploy your applications on as is basis, but that might be far from the actual benefits of the cloud. An efficient cloud will only hold its value if its applications can share and scale in a truly elastic and reliable manner. Therefore, we recommended employing a staggered approach and prioritizing the applications to be moved to the cloud to reduce the risks associated with migration. An important aspect of the transition includes application migration, and the criteria for this depends on the cloud platform one selects. For instance, some cloud platforms claim no modification is needed to the platform, while others need fine-tuning. Given below are some necessary parameters to be considered when selecting applications to private cloud. TYPE OF APPLICATIONS Parameters to be considered Knowing the application type. Is the application mission critical? Are there any legal issues of co-location of application and data in a particular place? Guidelines If the application is mission critical, its priority to move to the cloud should be lowest simply due to the uncertainty that accompanies a new infrastructure and implementation. In case of the cloud encompassing multiple geographical locations, we might have to consider any legal requirements of co-location and confine the application to a specific geographic location within the cloud if possible, or not move the application to the cloud if not possible. USAGE AND COST Parameters to be considered Understanding the usage pattern Does the application have only internal users or does it also need external user support? Does the application depend on third party software/components? Does the application contain asynchronous processing? Guidelines In order for applications to leverage the complete benefits of a cloud platform, the application has to have components that are atomic, stateless, idempotent and parallelizable. Some of these parameters are already present if the application is SOA based. Hence the cost, time and effort required to convert an application that does not possess these characteristics would be an important consideration for moving an application to the cloud. Additionally, if an application is dependent on other applications or third-party components which are not being moved to the cloud, one must take into consideration the bandwidth costs and latency introduced due to interacting with these on-premises applications when considering an application for private cloud. If these third-party applications and components must be moved to cloud, we need to migrate them as well. Asynchronous processing based applications are better suited for cloud execution environments. A proper assessment by architects should consider all the parameters and document their rationale for selection based on the parameters under consideration. After the selection of all such applications within an enterprise, architects should categorize them based on the business impact so that a roadmap can be prepared for their movement to the cloud with the applications with least business impact moving first. Depending on the application, the expected requirements and the platform, one might need to identify changes required before migrating the application. These changes might be required either to realize the complete potential of the cloud environment, or to even make the application operational on the cloud. This generally depends on the supportability of the cloud platform, or the PaaS offering selected. Preparing a reference architecture based on the reference framework envisioned in assessment phase will help identify changes in applications easily. A cloud platform framework, which enforces the reference architecture, should be built to facilitate application migration. All applications to be moved to the cloud should then be migrated to the reference architecture either by means of cloud platform framework or through manual migration. The figure below illustrates the components that will be added to the reference architecture during this stage: (highlighted components will be added during the automation phase) Guidelines If the usage pattern is unpredictable with peak loads causing SLA misses, the application should be a higher priority to be moved to the cloud to resolve the issue. However, this parameter has to be evaluated along with other parameters before deciding the priority. Applications that have external users will have lower migration priority versus that of internal users. ARCHITECTURE & DESIGN Parameters to be considered: Does the architecture and design promote parallelism of operations? Is the application SOA based? Will there be numerous calls between on-premise applications and data? Is the application lacking in residential nature? CLOUD STORAGE Management Service Portal Storage Virtualization SLA Management Image Standardization Monitoring & Event Management Alerts & Monitoring Performance & Capability Management Provisioning MANAGEMENT FABRIC CLOUD HOSTED APPLICATIONS UI Cloud Storage Services Batch Insertions Business Service 1 Business Service 2 Business Service 3 COMMUNICATION FABRIC Operating System Cloud Data Services Load Balancer Cloud Service Orchestration Cloud Service Interaction Virtual Machine Management VIRTUALIZED INFRASTRUCTURE To On-Premise DB Security Figure 3: Example Reference Architecture for Private Cloud SECURITY
Migration Guidelines Assess the deployment effort required for migrating applications and their updates. Some platforms have simplified and automated processes and tools, whereas in other cases, you might have to develop scripts. Factor in the effort required to migrate data. Consider development environments provided by cloud platforms to facilitate changes in the application, quickly and easily. Consider the use of accelerators to automate the migration process, if possible. Employ or build a suitable testing framework, which will help: Measure the functional aspect of the application on cloud Collect metrics related to usage of computing resources and other non-functional aspects of the application Help validate the projected ROI Making the Cloud Efficient ADVANTAGES OF AUTOMATION Now that your application is on the cloud, you are ready to reap the benefits. But, what if business needs demand that a new application be included in the cloud? Or, what if you suddenly need more resources allocated than were planned for? In conventional systems, this task is handled manually, but in the next stage of a private cloud implementation, we add automation to the cloud framework so that it becomes elastic, self managed and reliable. The primary areas where automation can be considered are: Provisioning: In traditional environments, server requests take up considerable time, involving multiple touch points and approvals. These can be simplified by making provisioning easier with an online request and creating an image automatically based on the request. Monitoring: Though traditional monitoring tools can be used, a private cloud implementation calls for a more proactive and quicker reaction to spikes or failures. This can be done by monitoring applications and promptly redirecting the call to another system on the cloud in case of failure. At times, one might also have to put in place a failover step (in case the failover call also fails). Management: In traditional systems, upgrades and backups require downtime and effort. In a cloud environment, one can ensure that their upgrades are carried out in an orderly fashion, ensuring zero downtime. This is generally accomplished by completing all pending requests on an instance and upgrading the system before moving to the next instance. In case of large instances, we can define territories to perform upgrades such that it has least impact. All of these, if automated, will make a cloud self-healing and self-reliable. HOW TO AUTOMATE The following features are prerequisites for effective cloud automation: Standardization: Standard configurations are critical to improving quality, minimizing support costs and enabling automation. For physical hardware, this could mean virtual server slices with a predefined configuration. In terms of platforms, it means a virtual machine image with all the necessary setups and resources defined. With standardization, every request only needs to be mapped to a predefined or standard configuration, rather than detailing out each requirement. Standardization can be applied during the consolidation phase itself to ensure an easy cloud implementation. System Management Processes: With all hardware consolidated, a solid system management process (like ITIL v3) will play an important role in meeting the challenges of provisioning and system support. A well defined and adhered to process can easily be automated, compared to a process with numerous exceptions. Automation Scripts: Use cloud platform APIs to automate communication with the platform. It may involve scripting to connect the tools to the platform APIs. Dashboard: The dashboarding capabilities need to be validated to determine if they meet enterprise requirements. If they fail to do so, consider enhancements to include more metrics. OPTIMIZATION This stage of the cloud journey is only possible after uninterrupted evaluation of the first set of applications running successfully for a few months on the cloud with all intended application stakeholders using them. With the metrics obtained through continuous monitoring, application owners can see where they are incurring more costs for running the application on the cloud. Technical architects can find out the bottlenecks for performance and other opportunities of optimization. For example, in a document management scenario, the team might decide to move the storage to a cloud based storage instead of the traditional on-premise storage, which would save costs through virtualization of storage and improve performance because of its proximity to the cloud application. After a predefined time period of fine-tuning and rechecking of metrics both from a cost and technical perspective, the next set of applications can be taken up for migration. Cost models have to be revisited at regular intervals to check the efficacy of moving applications to the cloud. Conclusion "One of the principal elements of Syntel s cloud strategy is its emphasis on migration, using its own automated software code translation capabilities and methodologies including MACH (Methodology for Application to Cloud/Hosted) and the CcAT (Cloud Code Automation Tool)." "Cloud Strategies Of The Leading IT Global Service Providers" by Bill Martorelli Forrester Research January 18, 2012 Cloud computing, despite its daunting jargon, is definitely worth considering as an enterprise model. The considerations and parameters for a private cloud implementation are unique and contextual across all phases and stages of the cloud maturity model. However, the journey to private cloud adoption may not be complicated if one applies a consistent process based on an Return of Investment model, Reference Architectures, and develops a vision and a roadmap before embarking on the voyage. The journey to private cloud requires a unique blend of technical skills, business skills and a comprehensive knowledge of cloud computing. The right mix of skills will ensure that all the considerations and best practices to achieve a successful cloud model are taken, thereby making the enterprise successful on the cloud. To learn more about Syntel's cloud computing solutions and how we can put your organization on the path to cloud adoption, please visit www.syntelinc.com/cloud.
about SYNTEL: Syntel provides custom outsourcing solutions to Global 2000 corporations. Founded in 1980, Syntel's portfolio of services includes BPO, complex application development, management, product engineering, and enterprise application integration services, as well as e-business development and integration, wireless solutions, data warehousing, CRM, and ERP. About the Authors Siddharth Jaiswar is Principal Architect with Syntel s Cloud Computing Center of Excellence. He is a Sun Certified Enterprise Architect (SCEA) and has extensive experience in designing and architecting Java/J2EE solutions. Siddarth leads Syntel s Private Cloud Center of Excellence, using vfabric, Appistry and other best-of-breed private cloud platforms to architect private cloud solutions for Syntel clients. He also leads Syntel s Cloud Consulting practice. Yusuf Rangwala is a Technical Architect with Syntel s Architecture Solutions Group (ASG). He has extensive experience in architecting enterprise applications on the Microsoft.Net platform, with a primary focus on ASP.Net. Yusuf also leads Syntel s Microsoft Private Cloud and Azure Centers of Excellence. We maximize outsourcing investments through an onsite/off-shore Global Delivery Service, increasing the efficiency of how complex projects are delivered. Syntel's global approach also makes a significant and positive impact on speed-to-market, budgets, and quality. We deploy a custom delivery model that is a seamless extension of your organization to fit your business goals and a proprietary knowledge transfer methodology to guarantee knowledge continuity. SYNTEL 525 E. Big Beaver, Third Floor Troy, MI 48083 phone 248.619.3503 info@syntelinc.com visit Syntel's web site at www.syntelinc.com