You are on page 1of 11

A Complete Guide to Cloud Computing

Author : Harsh Ajmera www.harshajmera.com

Table of Contents

Defining Cloud Computing ..................................................................................................................... 2 SalesForce.com ................................................................................................................................... 2 Wikipedia.com .................................................................................................................................... 2

Searchcloudcomputing.com ............................................................................................................ 2
Cloud Computing Infrastructure Model ................................................................................................ 3 Public Clouds ....................................................................................................................................... 3 Private Clouds ..................................................................................................................................... 4 Hybrid Clouds ...................................................................................................................................... 4 Levels of Cloud Computing..................................................................................................................... 5 Software as a Service .......................................................................................................................... 5 Platform as a Service .......................................................................................................................... 5 Infrastructure as a Service ................................................................................................................. 6 Benifits of Cloud Computing .................................................................................................................. 7 What Cloud Computing will not Effect .................................................................................................. 9 References ............................................................................................................................................ 10

A complete Guide to Cloud Computing- Harsh Ajmera

Page 1

Defining Cloud Computing


Cloud computing is a better way to run your business. Instead of running your apps
yourself, they run on a shared data center. When you use any app that runs in the cloud, you just log in, customize it, and start using it. Thats the power of cloud computing. Businesses are running all kinds of apps in the cloud these days, like CRM, HR, accounting, and custom-built apps. Cloud-based apps can be up and running in a few days, which is unheard of with traditional business software. They cost less, because you dont need to pay for all the people, products, and facilities to run them. And, it turns out theyre more scalable, more secure, and more reliable than most apps. - Salesforce.com

Cloud computing is Internet- ("cloud-") based development and use of computer


technology ("computing"). In concept, it is a paradigm shift whereby details are abstracted from the users who no longer need knowledge of, expertise in, or control over the technology infrastructure "in the cloud" that supports them. It typically involves the provision of dynamically scalable and often virtualized resources as a service over the Internet. Typical cloud computing providers deliver common business applications online which are accessed from a web browser, while the software and data are stored on the servers. These applications are broadly divided into the following categories: Software as a Service (SaaS), Utility Computing, Web Services, Platform as a Service (PaaS), Managed Service Providers (MSP), Service Commerce, and Internet Integration. The name cloud computing was inspired by the cloud symbol that is often used to represent the Internet in flow charts and diagrams. - Wikipedia.com

Cloud computing is a general term for anything that involves delivering hosted services
over the Internet. These services are broadly divided into three categories: Infrastructureas-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS). The name cloud computing was inspired by the cloud symbol that's often used to represent the Internet in flow charts and diagrams. A cloud service has three distinct characteristics that differentiate it from traditional hosting. It is sold on demand, typically by the minute or the hour; it is elastic -- a user can have as much or as little of a service as they want at any given time; and the service is fully managed by the provider (the consumer needs nothing but a personal computer and Internet access). searchcloudcomputing.techtarget.com

A complete Guide to Cloud Computing- Harsh Ajmera

Page 2

Cloud computing infrastructure models


There are many considerations for cloud computing architects to make when moving from a standard enterprise application deployment model to one based on cloud computing. There are public and private clouds that offer complementary benefits, there are three basic service models to consider, and there is the value of open APIs versus proprietary ones. Public, private, and hybrid clouds IT organizations can choose to deploy applications on public, private, or hybrid clouds, each of which has its trade-offs. The terms public, private, and hybrid do not dictate location. While public clouds are typically out there on the Internet and private clouds are typically located on premises, a private cloud might be hosted at a colocation facility as well. Companies may make a number of considerations with regard to which cloud computing model they choose to employ, and they might use more than one model to solve different problems. An application needed on a temporary basis might be best suited for deployment in a public cloud because it helps to avoid the need to purchase additional equipment to solve a temporary need. Likewise, a permanent application, or one that has specific requirements on quality of service or location of data, might best be deployed in a private or hybrid cloud. Public clouds Public clouds are run by third parties, and applications from different customers are likely to be mixed together on the clouds servers, storage systems, and networks (Figure 3). Public clouds are most often hosted away from customer premises, and they provide a way to reduce customer risk and cost by providing a flexible, even temporary extension to enterprise infrastructure. If a public cloud is implemented with security, performance, and data locality in mind, the existence of other applications running in the cloud should be transparent to both cloud architects and end users. Indeed, one of the benefits of public clouds is that they can be much larger than a companys private cloud might be, offering the ability to scale up and down on demand, and shifting infrastructure risks from the enterprise to the cloud provider, if even just temporarily. Portions of a public cloud can be carved out for the exclusive use of a single client, creating a virtual private datacenter. Rather than being limited to deploying virtual machine images in a public cloud, a virtual private datacenter gives customers greater visibility into its infrastructure. Now customers can manipulate not just virtual machine images, but also servers, storage systems, network devices, and network topology. Creating a virtual private datacenter with all components located in the same facility

A complete Guide to Cloud Computing- Harsh Ajmera

Page 3

helps to lessen the issue of data locality because bandwidth is abundant and typically free when connecting resources within the same facility.

Private clouds Private clouds are built for the exclusive use of one client, providing the utmost control over data, security, and quality of service (Figure 4). The company owns the infrastructure and has control over how applications are deployed on it. Private clouds may be deployed in an enterprise datacenter, and they also may be deployed at a colocation facility. Private clouds can be built and managed by a companys own IT organization or by a cloud provider. In this hosted private model, a company such as Sun can install, configure, and operate the infrastructure to support a private cloud within a companys enterprise datacenter. This model gives companies a high level of control over the use of cloud resources while bringing in the expertise needed to establish and operate the environment.

Hybrid clouds Hybrid clouds combine both public and private cloud models (Figure 5). They can help to provide on-demand, externally provisioned scale. The ability to augment a private cloud with the resources of a public cloud can be used to maintain service levels in the face of rapid workload fluctuations. This is most often seen with the use of storage clouds to support Web 2.0 applications. A hybrid cloud also can be used to handle planned workload spikes. Sometimes called surge computing, a public cloud can be used to perform periodic tasks that can be deployed easily on a public cloud. Hybrid clouds introduce the complexity of determining how to distribute applications across both a public and private cloud. Among the issues that need to be considered is the relationship between data and processing resources.

A complete Guide to Cloud Computing- Harsh Ajmera

Page 4

Different Levels of Cloud Computing


Cloud computing is typically divided into three levels of service offerings: Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a service (IaaS). These levels support virtualization and management of differing levels of the solution stack.

Software as a Service (SAAS) Software as a service features a complete application offered as a service on demand. A single instance of the software runs on the cloud and services multiple end users or client organizations. The most widely known example of SaaS is salesforce.com, though many other examples have come to market, including the Google Apps offering of basic business services including email and word processing. Although salesforce.com preceded the definition of cloud computing by a few years, it now operates by leveraging its companion force.com, which can be defined as a platform as a service. Platform as a Service (PAAS) Platform as a Service (PaaS) is an application development and deployment platform delivered as a service to developers over the Web. It facilitates development and deployment of applications without the cost and complexity of buying and managing the underlying infrastructure, providing all of the facilities required to support the complete life cycle of building and delivering web applications and services entirely available from the Internet. This platform consists of infrastructure software, and typically includes a database, middleware and development tools. A virtualized and clustered grid computing architecture is often the basis for this infrastructure software. Some PaaS offerings have a specific programming language or API. For example, Google AppEngine is a PaaS offering where developers write in Python or Java. EngineYard is Ruby on Rails.

A complete Guide to Cloud Computing- Harsh Ajmera

Page 5

Sometimes PaaS providers have proprietary languages like force.com from Salesforce.com and Coghead, now owned by SAP. There are at least two perspectives on PaaS depending on the perspective of the producer or consumer of the services: Someone producing PaaS might produce a platform by integrating an OS, middleware, application software, and even a development environment that is then provided to a customer as a service. Someone using PaaS would see an encapsulated service that is presented to them through an API. The customer interacts with the platform through the API, and the platform does what is necessary to manage and scale itself to provide a given level of service. Virtual appliances can be classified as instances of PaaS. Infrastructure as a Service (IAAS) Infrastructure as a Service (IaaS) is the delivery of hardware (server, storage and network), and associated software (operating systems virtualization technology, file system), as a service. It is an evolution of traditional hosting that does not require any long term commitment and allows users to provision resources on demand. Unlike PaaS services, the IaaS provider does very little management other than keep the data center operational and users must deploy and manage the software services themselves--just the way they would in their own data center. Amazon Web Services Elastic Compute Cloud (EC2) and Secure Storage Service (S3) are examples of IaaS offerings.

A complete Guide to Cloud Computing- Harsh Ajmera

Page 6

Cloud Computing Benefits


In order to benefit the most from cloud computing, developers must be able to refactor their applications so that they can best use the architectural and deployment paradigms that cloud computing supports. The benefits of deploying applications using cloud computing include reducing run time and response time, minimizing the risk of deploying physical infrastructure, lowering the cost of entry, and increasing the pace of innovation. Reduce run time and response time For applications that use the cloud essentially for running batch jobs, cloud computing makes it straightforward to use 1000 servers to accomplish a task it 1/1000 the time that a single server would require. The New York Times example cited previously is the perfect example of what is essentially a batch job whose run time was shortened considerably using the cloud. For applications that need to offer good response time to their customers, refactoring applications so that any CPU-intensive tasks are farmed out to worker virtual machines can help to optimize response time while scaling on demand to meet customer demands. The Animoto application cited previously is a good example of how the cloud can be used to scale applications and maintain quality of service levels. Minimize infrastructure risk IT organizations can use the cloud to reduce the risk inherent in purchasing physical servers. Will a new application be successful? If so, how many servers are needed and can they be deployed as quickly as the workload increases? If not, will a large investment in servers go to waste? If the applications success is short-lived, will the IT organization invest in a large amount of infrastructure that is idle most of the time? When pushing an application out to the cloud, scalability and the risk of purchasing too much or too little infrastructure becomes the cloud providers issue. In a growing number of cases, the cloud provider has such a massive amount of infrastructure that it can absorb the growth and workload spikes of individual customers, reducing the financial risk they face. Increased pace of innovation Cloud computing can help to increase the pace of innovation. The low cost of entry to new markets helps to level the playing field, allowing start-up companies to deploy new products quickly and at low cost. This allows small companies to compete more effectively with traditional organizations whose deployment process in enterprise datacenters can be significantly longer. Increased competition helps to increase the pace of innovation and with many innovations being realized through the use of open source software, the entire industry serves to benefit from the increased pace of innovation that cloud computing promotes. Streamlining the Data Center An organization of any size will have a substantial investment in its data center. That includes buying and maintaining the hardware and software, providing the facilities in which the hardware is housed and hiring the personnel who keep the data center

A complete Guide to Cloud Computing- Harsh Ajmera

Page 7

running. An organization can streamline its data center by taking advantage of cloud technologies internally or by offloading workload into the public. Lower cost of entry There are a number of attributes of cloud computing that help to reduce the cost to enter new markets: Because infrastructure is rented, not purchased, the cost is controlled, and the capital investment can be zero. In addition to the lower costs of purchasing compute cycles and storage by the sip, the massive scale of cloud providers helps to minimize cost, helping to further reduce the cost of entry. Applications are developed more by assembly than programming. This rapid application development is the norm, helping to reduce the time to market, potentially giving organizations deploying applications in a cloud environment a head start against the competition. Improving Business Processes The cloud provides an infrastructure for improving business processes. An organization and its suppliers and partners can share data and applications in the cloud, allowing everyone involved to focus on the business process instead of the infrastructure that hosts it.

A complete Guide to Cloud Computing- Harsh Ajmera

Page 8

What remains the same


Numerous advances in application architecture have helped to promote the adoption of cloud computing. These advances help to support the goal of efficient application development while helping applications to be elastic and scale gracefully and automatically. The overriding objective of good application architectures, however, has not changed at all: it is to support the same characteristics that have always been important: Scalability. This characteristic is just as important as it has ever been. Applications designed for cloud computing need to scale with workload demands so that performance and compliance with service levels remain on target. In order to achieve this, applications and their data must be loosely coupled to maximize scalability. The term elastic often applies to scaling cloud applications because they must not only be ready to scale up, but also scale down as workloads diminish in order to not run up the cost of deploying in the cloud. Availability. Whether the application serves the users of social networking sites, or it manages the supply chain for a large manufacturing company, users of Internet applications expect them to be up and running every minute of every day. Sun has been an industry leader in this area establishing early on its SunTone certification program that helped customers to certify that its applications and services would stand up to required availability levels. Reliability. The emphasis on reliability has shifted over time. When large applications meant large symmetric multiprocessing systems, reliability meant that system components rarely fail and can be replaced without disruption when they do. Today, reliability means that applications do not fail and most importantly they do not lose data. The way that architecture addresses this characteristic today is to design applications so that they continue to operate and their data remains intact despite the failure of one or more of the servers or virtual machines onto which they are decomposed. Where we once worried about the failure of individual server components, now we build applications so that entire servers can fail and not cause disruption. Security. Applications need to provide access only to authorized, authenticated users, and those users need to be able to trust that their data is secure. This is true whether the application helps individual users on the Internet prepare their tax returns, or whether the application exchanges confidential information between a company and its suppliers. Security in todays environments is established using strong authentication, authorization, and accounting procedures, establishing security of data at rest and in transit, locking down networks, and hardening operating systems, middleware, and application software. It is such a systemic property that we no longer call it out as its own principle security must be integrated into every aspect of an application and its deployment and operational architecture and processes.

A complete Guide to Cloud Computing- Harsh Ajmera

Page 9

Flexibility and agility. These characteristics are increasingly important, as business organizations find themselves having to adapt even more rapidly to changing business conditions by increasing the velocity at which applications are delivered into customer hands. Cloud computing stresses getting applications to market very quickly by using the most appropriate building blocks to get the job done rapidly. Serviceability. Once an application is deployed, it needs to be maintained. In the past this meant using servers that could be repaired without, or with minimal, downtime. Today it means that an applications underlying infrastructure components can be updated or even replaced without disrupting its characteristics including availability and security. Efficiency. This is the new characteristic on the list, and it is perhaps one that most differentiates the cloud computing style from others. Efficiency is the point of cloud computing, and if an application cant be deployed in the cloud quickly and easily, while benefitting from the pay-by-the-sip model, it may not be a good candidate. Enterprise resource planning applications, for example, may be best suited to vertically scaled systems and provided through SaaS in the near term. Applications that extract, manipulate, and present data derived from these systems, however, may be well suited to deployment in the cloud.

References
1. 2. 3. 4. 5. www.wikipedia.com www.salesforece.com www.sun.com www.oracle.com www.searchcloudcomputing.techtarget.com

A complete Guide to Cloud Computing- Harsh Ajmera

Page 10

You might also like