Monday, March 14, 2011

Cloud Services

Developing Cloud Services

Web-Based Applications:

The needs of a typical IT department are :
           They must deliver adequate computing power and data storage to all users within the company.
This must be done, within a set budget, to meet peak needs or to add capacity for new users.What the IT department needs is a way to increase capacity or add capabilities without investing in new servers and networking gear, or licensing new software. It is to this need that cloud computing speaks.Cloud services, in the form of centralized web-based applications, also appeal to the IT professional. One instance of an application hosted in the cloud is cheaper and easier to manage than individual copies of similar software installed on each user’s desktop PC. Upgrading a cloud app only has to be done one time, where upgrading traditional software has to be done for each PC on which that software is installed.
          The advantages of cloud services development are particularly notable to smaller businesses, who otherwise wouldn’t have the budget or resources to develop large-scale applications.

         By hosting locally developed web applications within the cloud, the small business avoids the cost of purchasing expensive hardware to host similar software.A company that develops its own web-based applications gains functionality while reducing expenses. The combined power of the cloud is accompanied by lower software purchase and management costs.

The Pros and Cons of Cloud Service Development

Advantages of Cloud Development :

           One of the advantages of cloud development is that of economy of scale. By taking advantage of the infrastructure provided by a cloud computing vendor, a developer can offer better, cheaper, and more reliable applications than is possible within a single enterprise.
The application can utilize the full resources of the cloud, if needed—without requiring a company to invest in similar physical resources.
          Speaking of cost, because cloud services follow the one-to-many model, cost is significantly reduced over individual desktop program deployment. Instead of purchasing or licensing physical copies of software programs (one for each desktop), cloud applications are typically “rented,” priced on a per-user basis. It’s more of a subscription model than an asset purchase (and subsequent depreciation) model, which means there’s less up-front investment and a more predictable monthly expense stream.

          IT departments like cloud applications because all management activities are managed from a central location rather than from individual sites or workstations. This enables IT staff to access applications remotely via the web. There’s also the advantage of quickly outfitting users with the software they need (known as “rapid provisioning), and adding more computing resources as more users tax the system (automatic scaling). When you need more storage space or bandwidth, companies can just add another virtual server from the cloud. It’s a lot easier than purchasing, installing, and configuring a new server in their data center.

           For developers, it’s also easier to upgrade a cloud application than with traditional desktop software. Application features can be quickly and easily updated by upgrading the centralized application, instead of manually upgrading individual applications located on each and every desktop PC in the organization. With a cloud service, a single change affects every user running the application, which greatly reduces the developer’s workload.

Disadvantages of Cloud Development

The biggest disadvantage of cloud development is the same one that plagues all web-based applications: Is it secure?

          Web-based applications have long been considered potential security risks. For this reason, many businesses prefer to keep their applications, data, and IT operations under their own control.There have been few instances of data loss with cloud-hosted applications and storage.

         It could even be argued that a large cloud hosting operation is likely to have better data security and redundancy tools than the average enterprise. In any case, however, even the perceived security danger from hosting critical data and services offsite might discourage some companies from going this route. Another potential disadvantage is what happens if the cloud computing host goes offline. Although most companies say this isn’t possible, it has happened.

EXAMPLE:

Amazon’s EC2 service suffered a massive outage on February 15, 2008, that wiped out some customer application data.

         The outage was caused by a software deployment that erroneously terminated an unknown number of user instances.For clients expecting a safe and secure platform, having that platform go down and your data disappear is a somewhat rude awakening. And, if a company relies on a third-party cloud platform to host all of its data with no other physical backup, that data can be at risk.

Types of Cloud Service Development
           The term services in cloud computing is the concept of being able to use reusable, fine grained components across a vendor’s network. This is widely known as “as a service.”Offerings with as a service as a suffix include traits like the following:
Low barriers to entry, making them available to small businesses
Large scalability
Multitenancy, which allows resources to be shared by many users
Device independence, which allows users to access the systems on different hardware

Software as a Service
Software as a service, or SaaS, is probably the most common type of cloud service development. With SaaS, a single application is delivered to thousands of users from the vendor’s servers.

Customers don’t pay for owning the software; rather, they pay for using it. Users access an application via an API accessible over the web.

 Each organization served by the vendor is called a tenant, and this type of arrangement is called a multitenant architecture. The vendor’s servers are virtually partitioned so that each organization works with a customized virtual application instance.

For customers, SaaS requires no upfront investment in servers or software licensing.

For the application developer, there is only one application to maintain for multiple clients.

EXAMPLE:

Many different types of companies are developing applications using the SaaS model. Perhaps the best-known SaaS applications are those offered by Google to its consumer base.

APPLICATIONS:

Customer resource management (CRM)
Video conferencing
IT service management
Accounting
Web analytics
Web content management

BENEFITS:

• Familiarity with the World Wide Web Most workers have access to a computer and know how to use it on the World Wide Web. As such, the learning curve for using external applications can be much smaller.

• Smaller staff IT systems require the overhead of salaries, benefits, insurance, and building space. The ability to farm out applications reduces the need for as much IT staff.

• Customization Older applications were difficult to customize and required tinkering with the code. SaaS applications are much easier to customize and can give an organization exactly what they want.

• Better marketing A provider who had developed an application for a very narrow market might have had problems marketing that application. However, with SaaS, the entire world is open to the providers.

• Web reliability We talked earlier about how the World Wide Web can be seen as a source of failure. And while that is sporadically true, the fact of the matter is that the Web is generally quite reliable.

• Security Secure Sockets Layer (SSL) is widely used and trusted. This allows customers to reach their applications securely without having to employ complex back-end configurations, like virtual private networks (VPNs).

• More bandwidth Bandwidth has increased greatly in recent months and quality of service improvements are helping data flow. This will allow organizations to trust that they can access their applications with low latencies and good speeds.

Platform as a Service

In this variation of SaaS, the development environment is offered as a service.

The developer uses the “building blocks” of the vendor’s development environment to create his own custom application. t’s kind of like creating an application using Legos; building the app is made easier by use of these predefined blocks of code, even if the resulting app is somewhat constrained by the types of code blocks available.PaaS supplies all the resources required to build applications and services completely from the Internet, without having to download or install software.PaaS services include application design, development, testing, deployment, and hosting. Other services include team collaboration, web service integration, database integration, security, scalability, storage, state management, and versioning.
           A downfall to PaaS is a lack of interoperability and portability among providers. That is, if you create an application with one cloud provider and decide to move to another provider, you may not be able to do so—or you’ll have to pay a high price. Also, if the provider goes out of business, your applications and your data will be lost.

PaaS is found in one of three different types of systems:

• Add-on development facilities These allow existing SaaS applications to be customized. Often, PaaS developers and users are required to purchase subscriptions to the add-on SaaS application.

• Stand-alone environments These environments do not include licensing, technical, or financial dependencies on specific SaaS applications and are used for general developments.

• Application delivery-only environments These environments support hosting level services, like security and on-demand scalability. They do not include development, debugging, and test capabilities.

Hardware as a Service:

Hardware as a Service (HaaS) is the next form of service available in cloud computing.

        Where SaaS and PaaS are providing applications to customers, HaaS doesn’t. It simply offers the hardware so that your organization can put whatever they want onto it. Rather than purchase servers, software, racks, and having to pay for the datacenter space for them, the service provider rents those resources.

HaaS allows you to “rent” such resources as

• Server space
• Network equipment
• Memory
• CPU cycles
• Storage space

Database Services

          Another “as a service” offering that is becoming prevalent in the world of cloud computing is Database as a Service (DaaS). The idea behind DaaS is to avoid the complexity and cost of running your own database.

DaaS offers these benefits:

• Ease of use There are no servers to provision and no redundant systems to worry about. You don’t have to worry about buying, installing, and maintaining hardware for the database.

• Power The database isn’t housed locally, but that doesn’t mean that it is not functional and effective. Depending on your vendor, you can get custom data validation to ensure accurate information. You can create and manage the database with ease.

• Integration The database can be integrated with your other services to provide more value and power. For instance, you can tie it in with calendars, email, and people to make your work more powerful.

• Management Because large databases benefit from constant pruning and optimization, typically there are expensive resources dedicated to this task. With some DaaS offerings, this management can be provided as part of the service for much less expense. The provider will often use offshore labor pools to take advantage of lower labor costs there. So it’s possible that you are using the service in Chicago, the physical servers are in Washington State, and the database administrator is in the Philippines.

Web Services

A web service is an application that operates over a network—typically, over the Internet. Most typically, a web service is an API that can be accessed over the Internet. The service is then executed on a remote system that hosts the requested services.

Web-based application where a large hunk of that application is delivered by a third party, thus easing development and bandwidth demands  for the custom program.

EXAMPLE:

A good example of web services are the “mashups” created by users of the Google Maps API. With these custom apps, the data that feeds the map is provided by the developer, where the engine that creates the map itself is provided by Google. The developer doesn’t have to code or serve a map application; all he has to do is hook into Google’s web API.

Advantages of web services:

faster
lower-cost application development,
leaner applications
reduced storage
Bandwidth demands.

On-Demand Computing

          On-demand computing packages computer resources (processing, storage, and so forth) as a metered service similar to that of a public utility. In this model, customers pay for as much or as little processing and storage as they need.  

         Companies that have large demand peaks followed by much lower normal usage periods particularly benefit from utility computing.The company pays more for their peak usage, of course, but their bills rapidly decline when the peak ends and normal usage patterns resume.

        Clients of on-demand computing services essentially use these services as offsite virtual servers. Instead of investing in their own physical infrastructure, a company operates on a pay-as-you-go plan with a cloud services provider.

         In previous years, on-demand computing was provided from a single server via some sort of time-sharing arrangement. Today, the service is based on large grids of computers operating as a single cloud.

No comments:

Post a Comment