Deploying an Application on the Cloud

— Cloud Computing, the impending need of computing as an optimal utility, has the potential to take a gigantic leap in the IT industry, is structured and put to optimal use with regard to the contemporary trends. Developers with innovative ideas need not be apprehensive about non utility of costly resources for the service which does not cater to the need and anticipations. Cloud Computing is like a panacea to overcome the hurdles. It promises to increase the velocity with which the applications are deployed, increased creativity, innovation, lowers cost all the while increasing business acumen. It calls for less investment and a harvest of benefits. The end-users only pay for the amount of resources they use and can easily scale up as their needs grow. Service providers, on the other hand, can utilize virtualization technology to increase hardware utilization and simplify management. People want to move large scale grid computations that they used to run on traditional clusters into centrally managed environment, pay for use and be done with it .This paper deals at length with regard to the cloud, cloud computing and its myriad applications.


INTRODUCTION
Cloud Computing can be defined as the novel style of computing where virtualized resources are provided as services on internet which are dynamically scalable [1].cloud computing represents a different way to architect and remotely managing computing resources [8].It refers to both application delivered as the service over the internet and system software in the datacenters that provide those services .thedata centre hardware and software is called cloud [2].Cloud Computing is a major paradigm shift [3].Most of the enterprises shifting their applications on to the cloud owing to its speed of implementation and deployment, improved customer experience, scalability, and cost control.Reliability, availability and security are the three greatest concerns for moving on to the cloud [3].
Businesses are running all kinds of applications in the cloud, like customer relationship management (CRM), HR, accounting, and much more.Some of the world's largest companies moved their applications to the cloud with salesforce.com after rigorously testing the security and reliability of infrastructure [17].Smart phones, laptops, PCS and PDAs can access programs, storage and application development platforms over the internet using cloud computing via services offered by the cloud providers.Virtualization is the key technology that enables Cloud Computing [3].Remote hosting took its transformation from renting infrastructure to providing and maintaining Virtual servers sustaining the fluctuations in demand.The big players in cloud computing are Google, Amazon, and, of late, Microsoft and IBM.
The early adopter of this technology is Amazon.Amazon began providing Amazon Web Services in 2005, known only to the cognoscenti.Amazon's Web Services is the oldest and most mature of the public cloud service providers.Microsoft Azure represents a major evolution both of operating systems and of Microsoft's overall strategy.While written entirely from the ground up, it benefits from a long, mostly distinguished, and expensive pedigree.IBM was a very early proponent of both virtualization and cloud computing.IBM Smart Business cloud solutions support clouds built behind the enterprise firewall, or the IBM cloud.IBM's public cloud offering is still new, while its private cloud offerings are, for the cloud, very mature.

II. PHASES OF COMPUTING PARADIGMS
 In phase 1, many users shared powerful mainframes using dummy terminals. In phase 2, stand-alone PCs became powerful enough to meet the majority of users' needs. In phase 3, PCs, laptops, and servers were connected together through local networks to share resources and increase performance. In phase 4, local networks were connected to other local networks forming a global network such as the Internet to utilize remote applications and resources [1]. In phase 5, grid computing provided shared computing power and storage through a distributed computing system [6]. In phase 6, cloud computing further provides shared resources on the Internet in a scalable and simple way.Mainframe computing offers finite computing power, while cloud computing provides almost infinite power and capacity.In addition, in mainframe computing dummy terminals acted as user interface devices, while in Cloud Computing www.ijacsa.thesai.org/

III. CLOUD AND CLOUD COMPUTING
A cloud is a pool of virtualized computer resources.
A cloud can: [10]  Host a variety of different workloads, including batch-style back-end jobs and interactive ,User-facing applications  Allow workloads to be deployed and scaled-out quickly through the rapid provisioning of Virtual machines or physical machines  Support redundant, self-recovering, highly scalable programming models that allow Workloads to recover from many unavoidable hardware/software failures. Monitor resource use in real time to enable rebalancing of allocations when needed A Cloud is a virtual space available to deploy the applications, whereas Cloud Computing is a general term for anything that involves delivering hosted services over the Internet.At its simplest, it is delivering the resources and capabilities of information technology dynamically as a service.Cloud Computing is a style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet [5].It generally incorporates Infrastructure as a Service (IaaS), Platform as a service (PaaS), and Software as a Service (SaaS).

A. Attributes
The attributes of cloud computing are: [13] 1) Service Based: Consumer concerns are abstracted from provider concerns through service interfaces that are welldefined.The interfaces hide the implementation details and enable a completely automated response by the provider of the service to the consumer of the service.

2) Scalable and Elastic:
The service can scale capacity up or down as the consumer demands at the speed of full automation (which may be seconds for some services and hours for others).Elasticity is a trait of shared pools of resources.
3) Shared: Services share a pool of resources to build economies of scale.IT resources are used with maximum efficiency.The underlying infrastructure, software or platforms are shared among the consumers of the service (usually unknown to the consumers).This enables unused resources to serve multiple needs for multiple consumers, all working at the same time.
4) Metered by Use: Services are tracked with usage metrics to enable multiple payment models.The service provider has a usage accounting model for measuring the use of the services, which could then be used to create different pricing plans and models.These may include pay-as-you-go plans, subscriptions, fixed plans and even free plans.The implied payment plans will be based on usage, not on the cost of the equipment.

5)Uses Internet Technologies:
The service is delivered using Internet identifiers, formats and protocols, such as URLs, HTTP, IP and representational state transfer Web-oriented architecture.

B. Benefits
The most frequently cited benefits of cloud computing are: [3]  It is agile, with ease and speed of deployment  Its cost is use-based, and will likely be reduced  In-house IT costs are reduced  Capital investment is reduced  The latest technology is always delivered  The use of standard technology is encouraged and facilitated As an application moves to the cloud, the access to it becomes more simple and ubiquitous [12].Low cost ultra light devices and inexpensive hand held devices build on latest operating systems such as android provide access to the internet, the number and types of tasks taking advantage of the new technology will increase by several orders of magnitude, going far beyond the comparatively modest list of things that we use computers and the Internet for today.

A. Public Cloud
A public cloud, or external cloud, is the most common form of cloud computing, in which services are made available to the general public in a pay-as-you-go manner [13].Customersindividual users or enterprisesaccess these services over the internet from a third-party provider who may share computing resources with many customers [16].The public cloud model is widely accepted and adopted by many enterprises because ,the leading public cloud vendors as Amazon, Microsoft and Google, have equipped their infrastructure with a vast amount of data centers, enabling users to freely scale and shrink their rented resources with low cost and little management burden.Security and data governance are the main concern with this approach [5].

B. Private Cloud
A Private Cloud, or internal cloud, is used when the cloud infrastructure, proprietary network or data center, is operated solely for a business or organization, and serves customers within the business fire-wall [9].Most of the private clouds are large company or government departments who prefer to keep their data in a more controlled and secure environment.

C. Hybrid Cloud
A composition of the two types (private and public) is called a Hybrid Cloud, where a private cloud is able to www.ijacsa.thesai.org/maintain high services availability by scaling up their system with externally provisioned resources from a public cloud when there are rapid workload fluctuations or hardware failures [11].In the Hybrid cloud, an enterprise can keep their critical data and applications within their firewall, while hosting the less critical ones on a public cloud.

D. Community Cloud
The idea of a Community Cloud is derived from the Grid Computing and Volunteer Computing paradigms.In a community cloud, several enterprises with similar requirement can share their infrastructures, thus increasing their scale while sharing the cost.Another form of community cloud may be established by creating a virtual data center from virtual machines instances deployed on underutilized users machines [2].

VI. CLOUD ARCHITECTURE
From an engineering perspective the cloud is a computing architecture characterized by a large number of interconnected identical computing devices that can scale on demand and that communicate via an IP network.From a business perspective it is computing services that are scalable and billed on a usage basis [18].

VII. CLOUD SERVICES
A Cloud is essentially a class of systems that deliver IT resources to remote users as a service.The resources encompass hardware, programming environments and applications [9].The services provided through cloud systems can be classified into Infrastructure as a service (IaaS), Platform as a Service (PaaS) and Software as a service (SaaS).

A. Infrastructure as a Service
The IaaS is categorized into: 1) Computation as a Service (CaaS), in which virtual machine based servers are rented and charged per hour based on the virtual machine capacitymainly CPU and RAM size, features of the virtual machine, OS and deployed software.
2) Data as a Service (DaaS), in which unlimited storage space is used to store the user's data regardless of its type, charged per GB for data size and data transfer.
Amazon has provided a popular universal and comprehensive solution to Cloud Computing, called the Amazon Elastic Compute Cloud (EC2).EC2 provides many useful features for customers, including a mature and inexpensive billing system able to charge for computing at a very fine-grained level (memory usage, CPU usage, data transfer, etc.), deployment between multiple locations, elastic IP addresses, connection to a customer's existing infrastructure through a Virtual Private Network, monitoring services by Amazon Cloud Watch, and elastic load balancing.EC2 has deployed such fine granularity and precision that it has become a benchmark and model in cloud computing [20].
Go Grid also provides Hybrid Hosting, which is a distinguishing feature.Many applications simply don't run well in a pure multi-tenant server environment [4].Databases perform better on a dedicated server where they don't have to compete for input/output resources, and the situation is similar with web server applications.Go Grid provides these special applications with dedicated servers that also have high security assurance.

B. Platform as a Service
Platform as a Service (PaaS) cloud systems provide an execution environment that application services can run on.The environment is not just a pre-installed operating system but is also integrated with a programming-language-level platform, which users can be used to develop and build applications for the platform [1].
Microsoft's cloud strategy is to construct a cloud platform that users can move their applications to in a seamless way, and ensure its managed resources are accessible to both cloud services and on-premises applications.To achieve this, Microsoft introduced the Windows Azure Platform (WAP), which is composed of a cloud operating system named Windows Azure, and a set of supporting services.Windows Azure is the main part of the WAP.It employs virtual machines as its runtime environments.www.ijacsa.thesai.org/

C. Software as a Service
Software-as-a-Service (SaaS) is based on licensing software use on demand, which is already installed and running on a cloud platform.These on-demand applications may have been developed and deployed on the PaaS or IaaS layer of a cloud platform.SaaS replaces traditional software usage with a Subscribe/Rent model, reducing the user's physical equipment deployment and management costs.The SaaS clouds may also allow users to compose existing services to meet their requirements [5].This section presents some SaaS clouds and applications.

VIII. ADVANTAGES OF CLOUD OVER REMOTE HOSTING
The benefits of cloud hosting over the traditional remote hosting re as follows [6]:  Scalability(also called elasticity), the ability to provision one or more servers quickly and to scale up or down quickly  Pre-configured operating system images, such as a variety of popular Linux distributions: Ubuntu, Debian, Novell (SUSE), Gentoo, Centos, Fedora, Arch, and Red Hat Enterprise Linux and various versions of Windows-based servers.
 Virtual servers or physical servers that can be sized to different plans through a control panel, all the way up to 15.5 GB of RAM; servers can be configured with one to four processors and with one to four cores per processor, and disk drives are usually arranged in a fault-tolerant RAID configuration  Dedicated IP addresses for cloud servers.
 Communication among servers in the same cloud (colocated), effectuated at high-speed and free of communications charges

 Replication and/or distribution over various geographical areas
 Persistence provided by a separate cloud storage facility, as storage in a virtual cloud server is not persistent when the server instance is shut down.

A. Licensing
Application is made up of many components which are associated with some license agreements [9].Analysis should be made about the effects of those license agreements on the deployment of application on cloud.Applications which are designed licensed for CPU, when we deploy it on the cloud increases the load by exciding the CPU license limit.

B. Processing requirements and memory locks
Application should be designed to work on the parallel architectures, because of the dynamic scalability of cloud.Multi threaded code which allows process to split in to small chunks suits for the cloud environment.A single threaded application cannot take the real advantage of clouds distributed nature [20].

C. Bandwidth requirements
Because a public cloud is accessed via the Internet, bandwidth is significantly limited when compared to a private cloud.Given the public cloud's bandwidth limitation, applications that have moderate client bandwidth requirements should only be considered.[9].

D. Communication protocol
The cloud is based on the Internet Protocol (IP), so for an application to be considered, it must use IP as its communication mechanism.While there are many protocols that can be run over IP, the use of Transport Control Protocol (TCP) is preferred.

E. Data security
The application will need to provide security at the data storage, processing and transmission stages.Three critical components of this are [5]:  Data in transit needs to be protected either at the application or the transmission level. Data at rest must be protected by the application.The application must provide a mechanism to protect the data stored in the cloud.Encrypting data at rest is the best option at this time, and a future technical tip will delve into the specifics of this area [5]. Servers to server communications are typically forgotten because they currently exist within the data center.

X. APPLICATION DEPLOYEMENT
In this section we present an example how the combination of virtualization and on of self service facilitate application deployment in this example we consider a two-tier Web application deployment using cloud.

A. Steps for deployment
The following steps comprise the deployment of the application [7]:  A load balancer, Web server, and database server appliances should be selected from a library of preconfigured virtual machine images. Configuring each component to make a custom image should be made.Load balancer is configured accordingly; web server should be populated with the static contents by uploading them to the storage cloud where as the database servers are populated with the dynamic content of the site. The developer then feeds the custom code in to the new architecture making components meet their specific requirements.
123 | P a g e www.ijacsa.thesai.org/ The developer chooses a pattern that takes the images for each layer and deploys them, handling networking, security, and scalability issues.
The secure, high-availability Web application is up and running.When the application needs to be updated, the virtual machine images can be updated, copied across the development chain, and the entire infrastructure can be redeployed.In this example, a standard set of components can be used to quickly deploy an application.With this model, enterprise business needs can be met quickly, without the need for the time-consuming, manual purchase, installation, cabling, and configuration of servers, storage, and network infrastructure [9].Initially start visual studio in the administrator mode then go to file select new file.Select cloud service from project types and from template select web cloud service.In the solution explorer double click on default.aspx.Develop and press f5 to compile and debug the application.
In the solution explorer, right click on the application and then click publish.A publish folder gets opened which contains service package file and cloud service configuration file.

2) Step-2
Log in to the windows azure portal using your windows live id to deploy the application on the cloud

3) Step-3
In the portal, click on the hosted services, storage accounts and CDN Figure 3. creation of a service on azure cloud Click new hosted service.Select a subscription that will be used for application.

4) Step-4
Enter the name of the application, enter URL for your application, and then choose a region from the list of regions.
Select deploy to stage environment.For Configuration file, click the corresponding Browse locally… button, navigate to the folder where your Service Configuration.cscfg is, and select the file.

7)
Step-7 www.ijacsa.thesai.org/Click OK.You will receive a warning after you click OK because there is only one instance of the web role defined for your application (this setting is contained in the Service Configuration.Cscfg file).For purposes of this walk-through, override the warning by clicking yes, but realize that you likely will want more than one instance of a web role for a robust application.CLOUD COMPUTING CHALLENGES In summary, the new paradigm of cloud computing provides a number of benefits and advantages over the previous computing paradigms and many organizations are adopting it [5].However, there are still a number of challenges, which are currently addressed by researchers and practitioners in the field.They are briefly presented below.

A. performance
Cloud may lack performance in some intensive transaction oriented and other intensive applications.High latency delays may be observed by the users who are at far long distance from cloud

B. Security and Privacy
Security is still a major criterion when coming to cloud computing, customers are worried about the attacks which are vulnerable, when information and other important resources are kept outside the firewall.Standard security practices should be done to overcome this problem [5].

C. Control
Some IT departments are concerned because cloud computing providers have a full control of the platforms.Cloud computing providers typically do not design platforms for specific companies and their business practices.

D. Bandwidth costs
With cloud computing, companies can save money on hardware and software; however they could incur higher network bandwidth charges.Bandwidth cost may be low for smaller Internet-based applications, which are not data intensive, but could significantly grow for data-intensive applications.

E. Reliability
Cloud computing still does not always offer round-theclock reliability.There were cases where cloud computing services suffered few-hours outages.In the future, we can expect more cloud computing providers, richer services, established standards, and best practices.IBM has launched the Research Computing Cloud, which is an on-demand, globally accessible set of computing resources that support business processes.

XII. CONCLUSION
Cloud computing is a very flexible paradigm for delivering computational power.It means many things to many people.For some it means being able to set up a new start-up company knowing that initial resources will be inexpensive but a sudden increase in demand from users won't make the company a victim of its own success, as has happened in some cases in the past where servers have been unable to cope with demand, and the company loses clients as they become unhappy with poor response times.
For other people, cloud computing means easier administration, with issues such as licensing, backup and security being taken care of elsewhere.In other cases, cloud computing means having a powerful computational environment available anywhere that the user can access a web browser.
The various forms of serviceinfrastructure, platform, and software as a service provide exciting ways to deliver new products that innovators might come up with.Already there are examples of widely used products and web sites that have sustained remarkable growth because creative ideas could be implemented quickly, and because the subsequent demand could be met easily through the flexibility of cloud computing.
The future seems to be limited only by the imaginations of innovators who can think of applications that will help people communicate, store and process vast quantities of information, whether it is millions of individuals with small collections of www.ijacsa.thesai.org/personal information, or a single large organization with large collections of data to be processed.

Figure 1 .
Figure 1.Architecture of a cloud Like the OSI model, this framework is best read from the bottom up.Everything is dependent upon security.Provisioning is above security because it cannot occur reliably without security, and all of the services are based upon the ability to perform the tasks in the provisioning group.Infrastructure as a Service is the first grouping dependent upon (resting upon) provisioning services.(i.e.; once provisioning services are provided, Infrastructure as a Service can be delivered.Likewise with PaaS(Platform as a service) and SaaS(software as a service).Integration and User Services are shown as vertical rectangles spanning IaaS, PaaS and SaaS

Figure 2 .
Figure 2. Deployment Strategy on Cloud for two tier architectureB.Deployment on azure cloud 1) Step-1Initially start visual studio in the administrator mode then go to file select new file.Select cloud service from project types and from template select web cloud service.In the solution explorer double click on default.aspx.Develop and press f5 to compile and debug the application.