Vous êtes sur la page 1sur 22

:: Cloud Computing ::

Introduction:
The term "cloud" is analogical to "Internet". The term "Cloud Computing" is based on cloud drawings used in the past to represent telephone networks and later to depict Internet in. Cloud computing is Internet based computing where virtual shared servers provide software, infrastructure, platform, devices and other resources and hosting to customers on a pay-asyou-use basis. All information that a digitized system has to offer is provided as a service in the cloud computing model. Users can access these services available on the "Internet cloud" without having any previous know-how on managing the resources involved. Thus, users can concentrate more on their core business processes rather than spending time and gaining knowledge on resources needed to manage their business processes.

Cloud computing customers do not own the physical infrastructure; rather they rent the usage from a third-party provider. This helps them to avoid huge . They consume resources as a service and pay only for resources that they use. Most cloud computing infrastructures consist of services delivered through common centers and built on servers. Sharing resources amongst can improve, as servers are not unnecessarily left idle, which can reduce costs significantly while increasing the speed of application development.

How does it work?


In traditional enterprise computing, IT departments forecast demand for applications and capacity and invest time and money to develop those resources in-house or purchase them from others and operate them in-house. With cloud computing, institutions procure IT services from remote providers, and campus constituents access these resources over the Internet. Email, for example, long considered a staple of an institutions IT operations, can be obtained from a range of sources, and a growing number of campuses contract with outside suppliers for this function. Software is hosted by the provider and does not need to be installedor maintained on individual computers around campus. In some cases, a large university or a consortium might become a provider of cloud services. Storage and processing needs can also be met by the cloud. Institutions pay only for the resources used, and users can access the applications and files they need from virtually any Internet-connected computer. In a mature cloud computing environment, institutions would be able to add new IT services or respond to changes in capacity on the fly, saving capital costs that can be redirected to programs of strategic value to the institution.

Cloud Service Models:


Cloud Service Models simply mean what type of services can be provided to customers. Different models cater to different kinds of requirements, and can achieve different business objectives. A simple search and you may find internet hits with dozens of Cloud as a Service, where can be replaced by any one of the following: Desktop, Security, Data, Software, Platform, Infrastructure, IT, Testing, Hardware, Computing, Database, Storage etc. All this is a bit confusing. As cloud computing is still evolving, the providers are free to innovate and offer various services, and there are no hard and fast rules governing these service offerings. So, let us simplify and put forward the most accepted type of Service Models. Sometimes they are called SPI models as of their initials like:

SPI Service Models


SaaS (Software as a Service) PaaS (Platform as a Service) IaaS (Infrastructure as a Service)

1. SaaS
Here the consumer is free of any worries and hassles related to the service. The Service Provider has very high administrative control on the application and is responsible for update, deployment, maintenance and security. The provider exercises final authority over the application. For example, Gmail is a SaaS where Google is the provider and we are consumers. We have very limited administrative and user level control over it, although there is a limited range of actions, such as enabling priority inbox, signatures, undo send mail, etc, that the consumer can initiate through settings. The following figure illustrates the relative levels of control between the provider and the subscriber SaaS Component Stack and Scope of Control.

Who are SaaS Subscribers?


Apart from organizations and enterprises, SaaS subscribers/users can also be individuals like you and me. In most of the cases the usage fee is calculated based on the number of users. For example, Google Apps is free up to 10 email accounts, but it charges $5 per user per month for Google Apps for Business(more than 10 users)

When/Why should you opt for a SaaS?


When you want to focus on your business rather than wasting your time in replacing broken pieces of hardware, managing IT infrastructure, and the most critical of them all - hiring and retaining your IT staff etc.

Which SaaS should you opt for?

Best use of SaaS is in productivity and collaboration apps in the cloud like Google Apps, Online Project Management like DeskAway, Zoho Mail, Chat, Docs, Project, Sheet, Writer etc.

CRM apps Impel CRM, Salesforce.com, Microsoft Dynamics. Cloud based Storage and Sharing services like Dropbox, Skydrive(windows live), Amazon S3, Google Docs, Box.net, Mozy. SMEs/SMBs can opt for EazeWork (for HR, PayRoll and Sales)

2. PaaS
In plain English, PaaS is a platform where software can be developed, tested and deployed, meaning the entire life cycle of a software can be operated on a PaaS. This service model is dedicated to application developers, testers, deplorers and administrators. This service provides everything you need to develop a cloud SaaS application. The following figure shows PaaS Component Stack and Scope of Control

A PaaS typically includes the development environment, programming languages, compilers, testing tools and deployment mechanism. In some cases, like Google Apps Engine (GAE), the developers may download development environment and use them locally in the developers infrastructure, or the developer may access tools in the providers infrastructure through a browser.

Who are PaaS Subscribers?


ISV (Independent Software Vendors), IT Service providers or even individual developers who want to develop SaaS.

When/Why should you opt for a PaaS?


You focus only on developing the application, everything else will be taken care of by the platform.

Which PaaS should you opt for?


GAE is more popular with individual Java, Python developers. Microsoft Windows Azure is targeting its pool of enterprise class users. ASP.Net (C#, VB.Net) developers will find easy to adopt it. Amazon has also moved one stack up to offer its PaaS Beanstalk (one more option for Java developers) A few of the India based PaaS providers like OrangeScape and Wolf frameworks are making waves for their 5G visual PaaS. OrangeScape apps can run on all the major cloud platforms - Google App Engine, Microsoft Azure, IBM SmartCloud, Amazon EC2 or data center- without having to rewrite applications. Engine Yard and Heroku are leading cloud PaaS for Ruby on Rails (RoR). Heroku (acquired by saleforce.com) is also a preferred PaaS for Facebook apps creation. PHP developers can choose between PHP Fog and CloudControl. For a multi-language application platform explore DotCloud. India based Ozonetel Systems offers KooKoo PaaS for cloud telephony service.

3. IaaS
Do you require virtual computers, cloud storage, network infrastructure components such as firewalls and configuration services? IaaS is what you should opt for. The System Administrators are the subscriber of this service. Usage fees are calculated per CPU hour, data GB stored per hour, network bandwidth consumed, network infrastructure used per hour, value added services used, e.g., monitoring, auto-scaling etc. The following figure shows IaaS Component Stack and Scope of Control.

Who are IaaS Subscribers?


Are you aware of Farmville and Mafia Wars? Yes, these are the most popular Facebook games created by Zynga.com. It has more than 230 million monthly users run more than 12000 servers on Amazon AWS. When they launch a new game, they start with a few servers and then ramp up their capacity in real time. To prevent the DDOS attack on its servers, the controversial Wikileaks was hosted on Amazon AWS. Now it seems it has moved back to a Swedish host. Most important among the lot are SaaS and PaaS Players who are hosted with IaaS providers. India based online ticketing service redBus. For details read the Case study What IRCTC can learn from redBus cloud implementation.

When/Why should you opt for an IaaS?


Very useful for startup companies who dont know how successful their newly launched application/website will be. You have the choice of multiple Operating System, Platforms, Databases and Content Delivery Network (CDN) all in one place.

Which IaaS should you opt for?


Amzon is the pioneer of IaaS. Other leading providers are Rackspace, GoGrid, Joyent, Rightscale and Terremark (Bought by verison). For India based IaaS explore the following providers:

NetMagic Solutions InstaCompute (from Tata Communications)

Deployment Models:
There are four different deployment models of cloud computing:

1. PRIVATE CLOUD:

The cloud infrastructure is operated solely for an organization. Contrary to popular belief, private cloud may exist off premises and can be managed by a third party. Thus, two private cloud scenarios exist, as follows:

On-site Private Cloud o Applies to private clouds implemented at a customers premises. Outsourced Private Cloud o Applies to private clouds where the server side is outsourced to a hosting company.

Examples of Private Cloud:


Eucalyptus Ubuntu Enterprise Cloud - UEC (powered by Eucalyptus) Amazon VPC (Virtual Private Cloud) VMware Cloud Infrastructure Suite Microsoft ECI data center.

2. Community Cloud:
The cloud infrastructure is shared by several organizations and supports a specific community that has shared concerns (e.g., mission, security requirements, policy, and compliance considerations). Government departments, universities, central banks etc. often find this type of cloud useful. Community cloud also has two possible scenarios:

On-site Community Cloud Scenario o Applies to community clouds implemented on the premises of the customers composing a community cloud Outsourced Community Cloud o Applies to community clouds where the server side is outsourced to a hosting company.

Examples of Community Cloud:


Google Apps for Government Microsoft Government Community Cloud

3. Public Cloud:
The most ubiquitous, and almost a synonym for, cloud computing. The cloud infrastructure is made available to the general public or a large industry group and is owned by an organization selling cloud services. Examples of Public Cloud:

Google App Engine Microsoft Windows Azure IBM Smart Cloud Amazon EC2

4. Hybrid Cloud
The cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load-balancing between clouds).

Examples of Hybrid Cloud:


Windows Azure (capable of Hybrid Cloud) VMware vCloud (Hybrid Cloud Services)

Leader in Cloud Computing:

Application Development using Cloud Computing:

There are several platforms available for developing the cloud applications. Here we are going to discuss two major platforms

1. Microsoft Azure:

A Windows Azure application is much like one that runs in your own datacenter. You write code in your preferred language, such as C#, Java, PHP, Node.js, or something else. You then execute that code in virtual machines running Windows Server. But because Windows Azure is designed to help you create applications that are more reliable, more scalable, and require less administration, creating a Windows Azure application isn't exactly the same as building an on-premises application. Even though most of what you already know about building software for Windows Server applies to Windows Azure, there are a few new things you need to understand. In Windows Azure, every application is implemented as one or more roles. Each role contains the code and configuration information required to carry out some part of your application's function. Windows Azure today provides two main types of roles: web roles and worker roles. A web role is designed for code that

interacts directly with web browsers or other HTTP clientsit depends on IIS, Microsoft's web server. A worker role is more general, designed to run a variety of code. If you just want to create a simple ASP.NET or PHP application, for example, you might use only a web role. For a more demanding application, you might decide to use a web role to interact with users, then rely on a worker role to carry out the requests those users make. And in some cases, you'll use just a worker role, such as with an application that processes lots of data in parallel. Whatever roles you break your application into, the code for each one will execute in a role instance. Each role instance is really just a virtual machine (VM) running a flavor of Windows Server, and each one executes in a Windows Azure datacenter. Figure 2 shows how this looks for a simple application that runs two instances of a web role.

2. Google Web Toolkit and AppEngine: Google Web Toolkit (GWT) is a development toolkit for building and optimizing complex browser-based applications. Its goal is to enable productive development of high-performance web applications without the developer having to be an expert in browser quirks, XMLHttpRequest, and JavaScript. GWT is used by many products at Google, including Google Wave and the new version of AdWords. It's open source, completely free, and used by thousands of developers around the world. Google App Engine lets you run web applications on Google's infrastructure. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. With App Engine, there are no servers to maintain: You just upload your application, and it's ready to serve your users. Google App Engine supports apps written in several programming languages. With App Engine's Java runtime environment, you can build your app using standard Java technologies, including the JVM, Java servlets, and the Java programming languageor any other language using a JVM-based interpreter or compiler, such as JavaScript or Ruby. App Engine also features two dedicated Python runtime environments, each of which includes a fast Python interpreter and the Python standard library. Finally, App Engine provides a Go runtime environment that runs natively compiled Go code. These runtime environments are built to ensure that your application runs quickly, securely, and without interference from other apps on the system.

GWT Architecture:

Google AppEngine Structure:

Our Windows Azure App: Here for this presentation we have developed a small asp.net Application to demonstrate how to develop cloud based Application.

Benefits of Cloud Computing: The benefits of cloud computing for an enterprise include: o Reduction in upfront capital expenditure on hardware and software deployment. Consumption is usually billed on a utility (like phone bills) or subscription (like magazines) model. Users can terminate the contractat any time and are often covered by Service Level Agreements (SLAs) with financial penalties. This reduces risk and uncertainty and ensures return on investment (ROI). o Location independence, so long as there is access to the Internet. o Increased flexibility and market agility as the quick deployment model of cloud computing increases the ability to re-provision rapidly as required. o Allows the enterprise to focus on its core business. o Increased competitive advantage. o Increased security at a much lesser cost as compared to traditional standalone applications due to centralization of data and increased security-focused resources. o Easy to maintain as they don't have to be installed on each user's computer.

FEAR OF THE CLOUD: What are the security concerns that are preventing companies from taking advantage of the cloud? Numerous studies, for example IDCs 2008 Cloud Services User Survey [29] of IT executives, cite security as the number one challenge for cloud users. In this section we present a taxonomy of the security concerns. The Cloud Security Alliances initial report [39] contains a different sort of taxonomy based on 15 different security domains and the processes that need to be followed in an overall cloud deployment. We categorize the security concerns as: 1. Traditional security 2. Availability 3. Third-party data control 1. Traditional security :

These concerns involve computer and network intrusions or attacks that will be made possible or at least easier by moving to the cloud. Cloud providers respond to these concerns by arguing that their security measures and processes are more mature and tested than those of the average company.
VM-level attacks. Cloud provider vulnerabilities like SQL injection. Phishing cloud provider. Authentication and Authorization.

2. Availability:

These concerns center on critical applications and data being available. Well-publicized incidents of cloud outages include Gmail, Amazon s3.
Uptime. Single point of failure. Assurance of computational integrity.

3. Third-party data control: The legal implications of data and applications being held by a third party are complex and not well understood. There is also a potential lack of control and transparency when a third party holds the data. Part of the hype of cloud computing is that the cloud can be implementation independent, but in reality regulatory compliance requires transparency into the cloud.

Conclusion:

A new kind of application platform doesnt come along very often. But when a successful platform innovation does appear, it has an enormous impact. Think of the way personal computers and servers shook up the world of mainframes and minicomputers, for example, or how the rise of platforms for N-tier applications changed the way people write software. While the old world doesnt go away, a new approach can quickly become the center of attention for new applications. Cloud platforms dont yet offer the full spectrum of an on-premises environment. For example, business intelligence as part of the platform isnt common, nor is support for business process management technologies such as full-featured workflow and rules engines. This is all but certain to change, however, as this technology wave continues to roll forward.

Refenences:
1. 2. 3. 4. 5. 6.

www.Code.google.com www.Techno-pluse.com www.msdn.microsoft.com www.wikipedia.org www.infoworld.com www.howstuffworks.com