Está en la página 1de 14

CLOUD OPTIMIZATION

Abstract:
Computing services that are provided over the Internet and accessible from any computing device is referred to as cloud computing services. The growing demand and future predictions of cloud computing has increased the attention and interest of software developers for this type of services. It is a model that organizations can exploit in order to reduce costs, increase flexibility, and reduce risk. It can be used to host applications ranging from the business critical to those needed to satisfy short-term needs. When deciding whether and how to move an application to the cloud, its important to make an accurate assessment of whether the step would yield the expected benefits. Once it is determined that an application can run in the cloud, a second assessment can be made to determine whether it can be further optimized. Optimization is the process of monitoring the state of the layer, comparing with the target goals and deciding what has to be changed in the system so the target goals are met in the most efficient manner. This thesis will try to clarify concerns about performance in cloud computing, analyzing the factors that make the performance of clouds unpredictable and suggesting ways to solve this problem.

Introduction
Cloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software, and information are provided to computers and other devices as a utility over a network. Cloud computing provides computation, software applications, data access, data management and storage resources without requiring cloud users to know the location and other details of the computing infrastructure. End users access cloud based applications through a web browser or a light weight desktop or mobile applications while the business software and data are stored on servers at a remote location. Cloud application providers strive to give the same or better service and performance than if the software programs were installed locally on end-user computers. Cloud computing can also be defined as 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 information technology including server, storage, network, and even software technology that is provided as a service or application over the network. The technology most often takes the form of infrastructure, platform, or software as a service. One of the more prominent features of cloud computing environments is that they include an API for manipulating them. This is a powerful feature that promotes a level of flexibility far beyond what is typically provided by enterprise datacenters. The ability to program infrastructure itself is one of the capabilities that allow the development of dynamic environments that can be created, scaled, updated, or destroyed in minutes rather than the hours, weeks, or months that the same tasks in a physical infrastructure would require. The programmable nature of cloud infrastructure itself makes it useful for applications ranging from overnight batch jobs that use a large number of server resources in parallel to solve a problem in a short time, to familiar multi-tier Web server environments that persist for long periods of time. Cloud computing gives IT organizations more flexibility in terms of where applications run. This is due in part to the standard platforms that cloud providers offer and also to the packaging discipline that cloud computing imposes on developers. Now a company might run its applications in an enterprise data centre, in the cloud, in multiple clouds, or in hybrid architecture that uses both.

Likewise, there is a spectrum of cloud computing implementations. Clouds may be implemented by service providers (public clouds) or in enterprise data centres (private clouds) that allocate a large number of resources and capabilities so that applications can scale from one to thousands of servers in a short time. Emerging models such as virtual data centres allow customers to reserve capacity and work with dedicated resources within a cloud, increasing the ability to manage costs and service levels. Hybrid clouds can further optimize benefits to an organization by combining the needed elements of public clouds, private clouds, and enterprise data centre technology.

Characteristics
On-demand self-service: Cloud computing resources can be procured and disposed of by the consumer without human interaction with the cloud service provider. This automated process reduces the personnel overhead of the cloud provider, cutting costs and lowering the price at which the services can be offered. Resource pooling: By using a technique called virtualization, the cloud provider pools his computing resources. This resource pool enables the sharing of virtual and physical resources by multiple consumers, dynamically assigning and releasing resources according to consumer demand (NIST 2009a). The consumer has no explicit knowledge of the physical location of the resources being used, except when the consumer requests to limit the physical location of his data to meet legal requirements. Broad network access: Cloud services are accessible over the network via standardized interfaces, enabling access to the service not only by complex devices such as personal computers, but also by light weight devices such as smart phones. Rapid elasticity: The available cloud computing resources are rapidly matched to the actual demand, quickly increasing the cloud capabilities for a service if the demand rises, and quickly releasing the capabilities when the need for drops. This automated process decreases the procurement time for new computing capabilities when the need is there, while preventing an abundance of unused computing power when the need has subsided. Measured service: Cloud computing enables the measuring of used resources, as is the case in utility computing. The measurements can be used to provide resource efficiency information to the cloud provider, and can be used to provide the consumer a payment model based on pay-

per-use. For example, the consumer may be billed for the data transfer volumes, the number of hours a service is running, or the volume of the data stored per month.

The Benefits of Cloud Computing


There are lots of advantages to using cloud computing for international companies. One of the major ones is the flexibility that it offers. Cloud computing means that staff can access the files and data that they need even when they're working remotely and/or outside office hours. As long as they can get on the Internet, staff can access information from home, on the road, from clients' offices or even from a smartphone such as a BlackBerry or iPhone. Staff can also work collaboratively on files and documents, even when they're not physically together. Documents can simultaneously be viewed and edited from multiple locations. Cloud computing can be very quick and easy to get up and running. Consider, for example, how quickly you can set up a Gmail or Hotmail account and start emailing - it takes minutes and all you need is a computer and the Internet. Downloading and installing software, on the other hand, takes much longer. Cloud computing is often cheaper and less labour-intensive for companies too. There is no need to buy and install expensive software because it's already installed online remotely and you run it from there, not to mention the fact that many cloud computing applications are offered free of charge. The need to pay for extensive disk space is also removed. With cloud computing, you subscribe to the software, rather than buying it outright. This means that you only need to pay for it when you need it, and it also offers flexibility, in that it can be quickly and easily scaled up and down according to demand. This can be particularly advantageous when there are temporary peaks in demand, such as at Christmas or in summer, for example. A major advantage of using cloud computing for many companies is that because it's online, it offers virtually unlimited storage compared to server and hard drive limits. Needing more storage space does not cause issues with server upgrades and equipment - usually all you need to do is increase your monthly fee slightly for more data storage In addition, there is no need to take on specialist IT staff, and businesses don't have to worry about maintaining and upgrading software or fixing bugs, as all maintenance is done by the providers. This frees-up in-house IT teams to focus on technical issues specific to the business.

Remote maintenance means it's easy for businesses to always have the latest and most powerful version of any particular software. Automatic software updates can be especially useful for legal or financial compliance reasons. For example, consider accounting and bookkeeping software - when tax rates change the system will be automatically and centrally updated. Many international businesses also choose cloud computing because of its green credentials. Microsoft recently claimed that cloud computing can reduce a business's carbon emissions by as much as 30%, as businesses don't need to power an entire server, they only use (and pay for) what they need online.

Service Models
Cloud computing providers offer their services according to three fundamental models: 1) Infrastructure as a service (IaaS) 2) Platform as a service (PaaS) and
3) Software as a service (SaaS)

Where IaaS is the most basic and each higher model abstracts from the details of the lower models. Infrastructure as a Service (IaaS) The capability provided to the customer of IaaS is raw storage space, computing, or network resources with which the customer can run and execute an operating system, applications, or any software that they choose. The cloud customer is not able to control the distribution of the software to a specific hardware platform or change parameters of the underlying infrastructure, but the customer has control over operating systems, storage, deployed applications, and possibly limited control of select networking components Platform as a Service (PaaS) In the case of PaaS, the cloud provider not only provides the hardware, but they also provide a toolkit and a number of supported programming languages to build higher level services (i.e. software applications that are made available as part of a specific platform). The users of PaaS

are typically software developers who host their applications on the platform and provide these applications to the end-users. Software as a Service (SaaS) The SaaS customer is an end-user of complete applications running on a cloud infrastructure and offered on a platform on-demand. The applications are typically accessible through a thin client interface, such as a web browser. The customer does not control either the underlying infrastructure or platform, other than application parameters for specific user settings.

Deployment models
Regardless of which delivery model is utilized, cloud offerings can be deployed in four primary ways, each with their own characteristics. The characteristics to describe the deployment models are; (i) who owns the infrastructure; (ii) who manages the infrastructure; (iii) where is the infrastructure located; (iv) and who accesses the cloud services. Public cloud Public cloud computing is based on massive scale offerings to the general public. The infrastructure is located on the premises of the provider, who also owns and manages the cloud infrastructure. Public cloud services may be free or offered on a pay-per-usage model. There are limited service providers like Microsoft, Google etc owns all Infrastructures at their Data Centre and the access will be through Internet mode only. No direct connectivity proposed in Public Cloud Architecture. Public cloud users are considered to be untrusted, which means they are not tied to the organization as employees and that the user has no contractual agreements with the provider. Private cloud Private clouds run in service of a single organization, where resources are not shared by other entities. The physical infrastructure may be owned by and/or physically located in the organizations datacenters (on-premise) or that of a designated service provider (off-premise) with an extension of management and security control planes controlled by the organization or designated service provider respectively (Bardin, Callas, Chaput et al. 2009). Private cloud users are considered as trusted by the organization, in which they are either employees, or have contractual agreements with the organization.

Community cloud Community cloud shares infrastructure between several organizations from a specific community with common concerns (security, compliance, jurisdiction, etc.), whether managed internally or by a third-party and hosted internally or externally. The costs are spread over fewer users than a public cloud (but more than a private cloud), so only some of the cost savings potential of cloud computing are realized. Community users are also considered as trusted by the organizations that are part of the community. Hybrid cloud Hybrid clouds are a combination of public, private, and community clouds. Hybrid clouds leverage the capabilities of each cloud deployment model. Each part of a hybrid cloud is connected to the other by a gateway, controlling the applications and data that flow from each part to the other. Where private and community clouds are managed, owned, and located on either organization or third party provider side per characteristic, hybrid clouds have these characteristics on both organization and third party provider side. The users of hybrid clouds can be considered as trusted and untrusted. Untrusted users are prevented to access the resources of the private and community parts of the hybrid cloud.

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 ecommerce 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 preproduction 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.

Literature Survey

Problem
The introduction of cloud computing changes our thinking as what is considered to beour system and our data is no longer physically stored on a specific set of computers and disks. But rather both the concept of system and the locus of our data have evolved into something diffuse and geographically distributed. A logical deduction is that this makes it harder to have everything under your control. So, as in most major technologic developments, there is concern among potential customers of cloud computing services of the details of the limitations and potentials that cloud computing may offer. To find what these limitations are we must first look at what cloud computing means from several different perspectives, specifically in this thesis we will consider the economic, legal, and technical perspectives. We will identify some of the questions that the customers are going to ask to the cloud providers before signing a service agreement and entrusting them with confidential data. This thesis specially addresses the problems that might arise related to the performance of applications running in clouds. The goal was to discern the factors affecting performance and, when possible, provide some solutions or guidelines to cloud users that might run into performance problems.

Proposal

One of the most important challenges ahead is that clouds will always be compared to local machine in the time of usage. Its important for the user to know what he gains of shifting to the cloud. Obviously using services on local machines, the user needs more resources but at least he knows that he has access to his data all the time and he has the data he owns on his local machine. But who is in charge of restoring his data if something happens to the cloud and the fact that the user is not aware of the physical place which his data is stored makes cloud more unreliable for him. Cloud computing raises a range of important policy issues, which include issues of privacy, security, anonymity, telecommunications capacity, government surveillance, reliability, and liability, among others. At a minimum, users will likely expect that a cloud will provide: Reliability and Liability. Users will expect the cloud to be a reliable resource, especially if a cloud provider takes over the task of running mission-critical applications and will expect clear delineation of liability if serious problems occur. Security, privacy, and anonymity. Users will expect that the cloud provider will prevent unauthorized access to both data and code, and that sensitive data will remain private. Access and usage restrictions. Users will expect to be able to access and use the cloud where and when they wish without hindrance from the cloud provider or third parties. The purpose is to find such solutions which can help in improving the policy issues related to security, privacy, and reliability. On improving these policies, cloud computing performance will be enhanced.

References

1) Wikipedia, Cloud Computing, http://en.wikipedia.org/wiki/Cloud_computing


2) Cloud computing,

http://grids.ucs.indiana.edu/ptliupages/publications/ReportNarimanMirzaeiJan09.pdf
3) Optimizing the cloud six levers, http://meship.com/Blog/2011/05/05/optimizing-the-

cloud-six-levers/
4) Exploring the limits of cloud,

http://upcommons.upc.edu/pfc/bitstream/2099.1/13421/1/VDelgado_thesis.pdf
5) Techlavya, http://techlavya.wordpress.com/2011/12/16/what-is-cloud-computing-what-

are-its-advantages/ 6) Optimizing applications for cloud computing environment white paper nov 2009.
7) Cloud computing journal, http://cloudcomputing.sys-con.com/node/1792026 8) Cloud computing effect on enterprises, http://lup.lub.lu.se/luur/download? func=downloadFile&recordOId=1764306&fileOId=1764311 9) Oppapers, http://www.oppapers.com/essays/The-Cloud-Computing-ParadigmAnd-Its/615350

También podría gustarte