Thursday, December 18, 2014

Cloud Computing

Not long ago were the days when someone needed to boost his or her business productivity, lower the costs and increase profits in the competitive business world, he or she had to go for using business software that managed the information loitering inside the business and produced very useful insights and decisions on the business which he or she could not have known unless for the application they used. This became the drive force that led businesses to heights they never could have achieved before. With the time as more and more people turned towards this trend to become competitive in the evolving business world, little by little, they started realizing the dark side of it. The applications were not given to them for free. They did cost a lot of money when compared to their annual business income. The applications demanded lot of computational power. This led the businesses to have their own data centers that consumed space, power, cooling mechanisms, networks and storage. They had to employ a team of engineers that had the enough technical knowledge to configure those resources and maintain them. Once any failure happens in the systems, which is almost in evitable, lot of money had to be spent on restoring them. All these put together, made a significant negative impact on the profits of the businesses. That is when the concept of Cloud Computing came into the play.

As Wikipedia quotes,
“Cloud computing is computing in which large groups of remote servers are networked to allow centralized data storage and online access to computer services or resources”
Few years ago cloud computing was a “Hype” but now it has become a reality. This simple concept has now become the pioneer in driving the modern complex businesses in to success. The easiest way to understand what this concept means is to consider Gmail, the most popular email service provided by google and used by millions of people across the globe. For anybody who needs to use the service provided by Gmail, what they have to do is to simply login to their Gmail account. They do not need any special infra-structure to handle the processing of those services. No space, power, dedicated servers, networks or storage is needed to keep the service up and running. No technical experts are needed to make sure the maintenance of the resources needed for the service happens regularly. Google encapsulates and takes care of all those burdens and provides us a service that we can use with almost no cost at all when compared to the scenario where we had to take care of all of those aspects. The user is provided with numerous options to customize the application according to what they prefer. A good example of where this technology has been implemented and is used extensively is the email system administrated by the Department of Computer Science and Engineering, University of Moratuwa. There, the department pays for Google and gets the service of the Google Gmail servers and provides the students with email accounts running on those servers.

The biggest advantage of that kind of an act is that the users do not need to spend much time on getting familiar to the service since it is just like the good old email service they were using with Gmail for a long time. They would have the same familiar UI, look and feel and the tools provided by google free Gmail. It does not have any set up or maintenance cost and that too makes it a more feasible solution. Also since cloud based services are typically housed in highly efficient data centers that operate at higher server utilization rates and use hardware and software that is built specifically for the service they provide, which in the previous example was the mail service, even small scale businesses which are rarely able to create one such on their own, is able to achieve those services by paying a fair amount of money to the companies that provide these cloud computing services.

Everything in this world has both its pros and cons. The most significant drawback that can be observed in the concept of cloud computing is that its central point of failure. For example, by any mean if any intruder become successful in breaching the security of the cloud servers, all the clients who depend on those cloud services would be in trouble. Dozens of companies and organizations would become vulnerable to losing millions and billions of profit within just a fraction of a second. Hence it is critical that those cloud servers are well secured and protected.

Multi tenancy is yet another revolutionary concept that came up with the rise of cloud computing in the world. Without having separate customized application instances to each of the cloud customers, multi tenancy applications provide customized services to each of the customers yet from the same application. It has changed the traditional way we look at software. Ranging from consumer applications to business applications this concept has been used widely in the cloud computing world. Multi tenancy provides an architecture in which a single instance of a software running on a cloud server serves multiple customers. A customer in this context is called a tenant and the application serves to a group of tenants at once. Still the fact remains that not every customer would want the same functionality from the application. For instance the functionalities expected from the application by a software company would be different from the functionality expected by a garment factory. While a software company would need to manage the information of their clients, a garment factory would not need that functionality in their system. The user interface and the look and feel a certain software company expects would be different than that a garment factory would expect from the application. Still multi-tenant applications are built in such a way that it can cater these conflicting needs of different organizations by providing them the ability to customize and use the app the way they want. Since it is only a single application that each and every customer uses, it is much easier for the technical experts in the cloud side to focus on it and to improve and update the application to provide better and better security and reliability for the customers regularly. All these have led this multi tenancy concept to be what leads the present as well as the future of enterprise cloud computing.

It would sound astounding that in cloud computing, the customers would never need to buy anything. They would only have to pay for what they consume or the service they receive for only the time they actually need it. That makes it a more economical strategy since the best use of the money spent is employed. For example, any large scale and even small scale company has different periods of time in an year when their sales go high and other times in the year when their sales would not be that high. In most of the cases, the sales going high would be due to any event coming up like Christmas or Sinhala Tamil New Year. The high demand experienced on those seasons would only last for about a month and the sales would go back to the normal demand level. Software wise, during the times when the demand rises, the software would require more computational power and storage to perform its functionalities. A naïve approach to finding a solution to this problem would be to buy computers and storage that could comply the high demand of computational power and storage. But if considered in a broad sense, it is quite clear that the extra computational power and storage bought would not be put to optimal use during the time of the year where the sales are not that high. Simply put, the cost that was spent on upgrading the computers becomes a waste once the season is over. The most economical strategy to follow would be not to buy that extra computational power and storage but to rent it. It is possible to allocate a computer or a set of computers with dedicated storage in the cloud via a cloud service provider and use that computational power to meet the computational and storage demands. The business would have to pay only for the time period the service is used which would be a very small amount of money when compared to upgrading or buying new computers with extra computational power. And when the season ends, simply the company can roll back to their old computer system which had enough storage and computational power to cater the general sales demand. This ability of scaling up and down is also a key feature provided by cloud computing driving businesses to success.

Technically, cloud services can be viewed basically in three categories. They are
  • IaaS(which stands for Infrastructure as a Service)
  • PaaS(which stands for Platform as a Service)
  • SaaS (which stands for Software as a Service)

These three categories act as the basic layers of the cloud computing services that exist at present. Let us consider each of those in detail.

Infra-structure as a Service which is also referred to as Hardware as a Service is the category that falls to the lowest level in terms of computation that provides a foundation to Platform as a Service and Software as a Service. These services are usually utilized by clients who needs services that directly interacts with hardware. Basically this provides access to the computing resources in the cloud. The term “Infrastructure as a Service” itself suggests that the computing resources refer to the hardware access that is provided to the client in the means of a virtualized hardware environment. The client would not feel he is interacting with hardware yet in the actual scenario, he does. The hardware services provided by the cloud might include virtual server space, memory, data storage, load balancers, bandwidth, IP addresses and network connections. These infrastructure enable by the clients to build cost effective business specific IT solutions leaving the burdens of hardware management and maintenance to the cloud service provider. A popular infrastructure service provider is amazon that runs in the name Amazon Web Services, Inc.

The Platform as a Service category can be considered as something that runs on the IaaS as a foundation. Here also, as the name itself suggests, these provide a platform and an environment for the application developers all over the world to build applications and services over the internet. This provide much freedom for the clients since it is the client who decides how the service they build should work or how the application they build should look like. The developer is provided with the platform where he or she has freedom to bring all the creative and innovative ideas they have in their minds into a virtual reality with the help of the tools supplied by the cloud service provider. Cloud features and services like tools for testing and deployment, hosting, database management, operating systems and server side scripting environments fall into this category. These enable clients who are not really technical experts to even develop their own applications owing to the simplicity and the flexibility of the services provided as a development platform. The most popular example for Software as a Service is the Google App Engine which enables its users to build and run applications on Google’s infrastructure. Apart from that, Windows Azure and Apache Stratos also can be considered as cloud computing services that falls to the Platform as a Service category.

The highest level category of cloud computing is the Software as a Service category which usually runs on a platform service having an infrastructure service underneath it as a foundation. Unlike the other two categories, here the target client audience would be the end users who do not necessarily need to have any background technical knowledge. The applications are made as simple as possible for any user to be able to interact with it without any difficulty. The application or software may range from social networks to large scale enterprise level mission critical business systems. It is SaaS that has actually changed the way people looked at software by changing the concept of buying software to the concept of renting software. This allowed more economical use of computational power with the usage of cutting edge technology software available in the whole world. The only drawback of the services provided under this category is that the clients will be restricted to use and be satisfied with what the software or the service provider provides. The client will have no freedom to change the software or service according to his or her will. Yet most of the SaaS at present are built in a way such that they would give the best user experience for the clients and the clients would not feel a need of changing them. The best example for Software as a Service is Google Docs. Google docs allows us to use one piece of software for all our documentation needs. The service can be accessed via internet from where ever in the world by just entering the username and the password of the Gmail account through the browser. The concurrent sharing of documents has also been made possible just because of this concept of Software as a Service in cloud computing.

In the future, it is believed that cloud computing which is at present kind of like restricted to consumer applications and business applications, would dominate many fields in the world and become the pioneer in leading a revolution in the world of Computer Science.

Ruchiranga Wickramasinghe

Author & Editor

Computer Science Master's Student at EPFL, Switzerland

4 comments :

  1. Cloud computing is the best technology that every top company in this world are using for their computing purpose. This article provides the information that is more relevant to it. Thanks for sharing this valuable information in here. By the way you are running a great blog here. Keep up this good work.

    Cloud computing training centers in chennai
    hadoop training

    ReplyDelete
  2. There are lots of information about latest technology and how to get trained in them, like Hadoop Training Chennai have spread around the web, but this is a unique one according to me. The strategy you have updated here will make me to get trained in future technologies(Hadoop Training in Chennai). By the way you are running a great blog. Thanks for sharing this.

    Hadoop training institutes in chennai | Hadoop Training Chennai

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete

Find me on

LinkedIn Google+
Twitter Facebook
Ruchiranga Wickramasinghe | Create Your Badge