Thursday, March 21, 2013

Cloud Computing

As the businesses are growing, we need more resources to run the day to day activities. IT is a major part of these resources. Almost 60-70 % of this complex IT infrastructure budget goes towards maintenance. This cost includes infrastructure, manpower, electricity, software cost, hardware cost etc. While the individual IT systems and applications in service are often well considered and expertly implemented, the sheer scale of the ongoing IT investment itself has emerged as the dominant concern. Even when best-of-breed technologies, open standards, market-leading vendors, and modern architectural practices like SOA have been employed pervasively, most enterprises now find themselves with too many platforms, too many technologies, too many domains of expertise, and too many vendors to coordinate and manage.

Cloud Computing is making this infrastructure and services available on-need basis or in other words is "renting" or borrowing online software instead of actually purchasing and installing it on their own computers. It is the same business model as people using Hotmail or Yahoo mail services, except that cloud computing goes much further. Cloud computing is where entire businesses and thousands of employees will run their computer tools as online rented products. All of the processing work and file saving will be done "in the cloud" of the Internet, and the users will plug into that cloud every day to do their computer work. The Cloud will provide everything that includes hard disk, development platform, database, computing power or complete software applications. To access these resources from the cloud vendors, organizations do not need to make any large scale capital expenditures. Organization need to "pay per use" i.e. organization need to pay only as much for the computing infrastructure as they use. The billing model of cloud computing is similar to the electricity payment that we do on the basis of usage.

We can divide the services provided by cloud in three major categories:

  • IaaS (Infrastructure as a Service) - includes service like computer infrastructure, storage, databases, hosting services etc
  • PaaS (Platform as a Service) - cloud includes service like full or partial application development
  • SaaS (Software as a Service) - includes service like a complete turnkey application, such as Enterprise Resource Management etc.

On the basis of usage, all the above services can be provided as:

  • Public - In a public Cloud resources are dynamically provisioned on a fine-grained, self-service basis over the Internet. Amazon’s Elastic Compute Cloud (EC2) is an example of public IaaS service.
  • Private - Compu ting on private networks. This offer the ability to host applications or virtual machines in a company's own set of hosts. These provide the benefits of utility computing – shared hardware costs, the ability to recover from failure, and the ability to scale up or down depending upon demand. This is not a very widely accepted as users still have to buy, build, and manage this cloud and thus do not benefit from lower up-front capital costs and less hands-on, however this is helpful for mission critical services where security is of very high concern.
  • Community/Partner cloud - A community cloud is used where several organizations have similar requirements and seek to share infrastructure so as to realize some of the benefits of cloud computing. With the costs spread over fewer users than a public cloud (but more than a single tenant) this option is more expensive but may offer a higher level of privacy, security and/or policy compliance. Examples of community clouds include Google’s "Gov Cloud".

How does it work?

When a user accesses any application/service from the cloud, it’s IP Address can be used to establish where the user is located. DNS services can then direct the user to a cluster of servers that are close to the user so the site can be accessed rapidly and in the user's local language. Users do not log in to a server, but they log in to the service they are using by obtaining a Session ID or Cookie. Whatever user sees in the browser usually comes from a cluster of web servers. The web servers run user interface software which collects commands from the user (mouse clicks, key presses, uploads, etc.) and interprets them. Information is then stored on or retrieved from the database servers or file servers and an updated page is displayed to the user. The data across the multiple servers is synchronized around the world for rapid global access.

Benefits of using Cloud Services

Need Based Availability

Users always have a choice to opt the cloud services as the need arise and later on if required, user can any time withdraw the services. It gives users flexibility to do his desired work with a very minimum spending and maximum utilization of the resources.

“Pay-Per-Use” Billing Model

This model is suitable for those type of business where the client want to commence a new business or want to revamp his current IT implementation. Client has to pay only for the required users with a flexibility of addition/deletion of these users any time and he will be charged on the basis of current working user accounts only.

In another similar model, users need to pay only for the services they have opted for i.e. where the vendor is providing number of services and client need to use only some specific set of services. For example in our mobile phones, we are being charged only for the services that we have opted for.

CapEx Saving

This is the most sought after option people look for cloud services. This is where client saves most of his spending. As already depicted, every business need to spend a large chunk of their budget on infrastructure, hardware, software and on support activities for IT to run their business. If they use the cloud services, a major portion of this budgeted amount can be saved and the same can be spend on other business activities giving business a huge CapEX saving.

Location Independent

When using Cloud services, location doesn’t matter. This means business doesn’t come to halt when there are some unforeseen circumstances arise in day to day life that is showstopper to continue business. Cloud services are geographically located on different location so business runs as usual without any impediment.

Zero Touch Automation

Client need not to do a lot of software development, purchase hardware, handling different SLA for s/w, h/w etc. All the services are located at one place so if any changes required, they can be implemented on servers only and no changes are required on client side.

Reduced Time to deployment

Most of the services are ready to use and available on the cloud, you just need to understand your requirement and need to tweak the existing services to make these suitable for your business. If there are any generic changes required on these services, it either doesn’t require any deployment or need a very minor deployment window. It helps in business continuity.

Scalable, Reliable & Sustainable

Scalability is accomplished through load balancing of application instances running separately on a variety of operating systems and connected through Web services. CPU and network bandwidth is allocated and de-allocated on demand. The system's storage capacity goes up and down depending on the number of users, instances, and the amount of data transferred at a given time.

Intelligent load-balancing in today's RAC nodes with faster connection failover gives client a feel of reliability. These cloud services provide a faster response time for enterprise applications that includes intensive database work.

Vendors are providing services for a mix of small, medium-size, and large companies with different options/services. These services start on a low-cost, fixed-priced model and quickly scale capacity. It provides a road map for these services so that these can be scaled across the IaaS, PaaS, and SaaS flavors with proper network capacity to consume all services and make these services sustainable for long.

Desktop feel in a browser

A client need a browser to access all the cloud services. Once the services have been deployed on clouds, users can access their desktop applications in browser itself.

Multiple protocol support including HTTP, SOAP etc

There is a support available for most of the protocols for using these cloud services so it doesn’t matter which product you want to use, just need to be sure that the product you are planning to use support the standard protocols used by your cloud vendor.

Usage of old/outdated hardware at client side.

As most of the processing is done on server side, client can use their old outdated hardware. It saves a lot of spending that is usually done when you want to implement a new technology in today’s world.


Challenges

  • Proprietary APIs and different formats for importing and exporting data. As most of the cloud vendors have their own set of services/tools, it becomes somewhat difficult if we want to change the provider at a later stage.
  • Companies who are far from the location of cloud providers could experience latency, particularly when there is heavy traffic.
  • Resource Utilization – Though all the providers are using state of the art technologies to best utilize their resources, it becomes very challenging to provide the best resource utilization on economical prices.
  • Encryption Algorithm – Many vendors has their own set of encryption algorithms to store the customer data. It sometimes become difficult when changing vendors so a care must be taken while choosing the vendors if they are using their own proprietary encryption algorithms or they are using some industry standard encryption algorithms.
  • High Speed Internet connection is still a major issue in remote locations especially in developing countries.
  • Data Security when it is available on Cloud. Though the provider use high level of encryption, a lot need to be look into for cross county data sharing as the customer do not know where his data is located.
  • Better resiliency of resources is required so as to provide a 100% uptime to the customers.
  • Software Licensing also need to be considered.