The cloud usually means the Internet or the network and computing refers to the virtual resource provided as a service by the remote provider. The services through resources can be software, infrastructure, platform, devices, and other resources. This article delves into the subject, giving a quick idea of the basics of cloud computing.
Using an online resource is a common phenomenon in today's computing endeavors. Most enterprise applications—be it e-commerce, banking, education, or healthcare—are built keeping current trends in mind. This led to the heavy use of online resources from storage to raw processing power. Because a single server cannot meet the requirement, the application is driven towards the use of distributed systems. The Internet is a ready platform to utilize in the cloud computing model, although it is not limited to it. Some of the applications that are supposed to work in a local environment have an online counterpart to balance the demand of low-cost usages. For example, an Office application such as Microsoft Word, which basically is a desktop application, has its online interface that works in the cloud arena. More and more applications are built keeping in mind the cloud and its utility. There are several advantages to it. For example,
- With the use of online resources, the location becomes independent. As a result, the application can be accessed from anywhere provided there is Internet connectivity.
- An organization's capital expenditure on hardware and software can be minimized to a large extent.
- A client can better manage their expenditures because it focuses on the utility or subscription of the resource.
- The subscription can be acquired or terminated on demand. This gives greater flexibility on the use of the resource.
- With almost no maintenance required for acquired resources, an enterprise can focus on its core business.
Utilizing a cloud resource has its issues too. Latency, transaction control, and security are some of the common concerns. In cloud computing, digitized resources are situated elsewhere; therefore, a security breach is a potential threat that must be closely looked into. The information is vulnerable to misuse or compromise. However, not all applications are supposed to reap the benefit of the cloud. The applications that require heavy processing power or have a crucial real-time response are not much suitable to have a cloud implementation. On the other hand, applications that are implemented in the cloud can be of great service. Thus, the cloud should be treated as an additional platform; a judicious use is the key to derive the right benefit from its merits.
The technology required for realizing cloud computing already existed in the form of services, applications, and the Internet. The cloud computing model just gave another perspective of its utilization. The justification of the word "cloud" is in reference to the abstraction of system implementation right from the end user to system developer. Here, the exact location of every bit of the resource is unknown. The application, storage, and maintenance are all outsourced to others, but the user is granted ubiquitous access to its subscribed resource. This type of virtualization is possible due to pooling and sharing. This is quite opposite to centralized infrastructures, where resource monopoly restricted its effective utilization. Here, costs can be monitored and metered, resources are scalable, and multi-tenancy is enabled.
Beware that cloud computing is not the Internet as it may seem to be, due to its many characteristic resemblances, nor is it a distributed system although it may use one for effectuation. The essence is that it is an abstraction based on the idea of pooling physical resources and offering them as a virtual resource. It offers a new model of platform-independent access to services, application staging, and resource provisioning. To get an idea how it revolutionized the nature of commercial system deployment, let's see a couple of examples.
- Google has built the network of data centers to enhance the service of the search engine. This made it easy for the company to grab huge advertising revenue worldwide. This money is then used to build free software and lets the users based on that infrastructure use them. This has a huge impact on the market of user-facing software. This is a classic example of SaaS model.
- The Amazon Web Services, on the other hand, offers Infrastructure-as-a-Service (IaaS) by letting one rent a computer on Amazon's infrastructure.
Cloud Computing Model
The cloud computing model is divided into two classes: the deployment model and the service model.
- The Deployment Model: The deployment model describes the location of the cloud and defines its purpose. There are primarily four different types of deployment model. They are Public, Community, Hybrid, and Private.
- Public cloud: The public cloud infrastructure is deployed for public use over the Internet or VPN, often maintained by some large organization or group who sells cloud services publicly. Here, fine-grained services are dynamically provisioned on the basis of self-service, and pay-as-you-go bills are issued on the basis of utilization. This is the traditional form of cloud deployment, also called an external cloud.
- Private cloud: The private infrastructure is deployed for some exclusive use over private networks and provides restricted cloud services to the subscribers. For example, services provided by applications or virtual machine hosted by a company. It may be managed by the organization itself or by a third party. The service is scaled up or down on demand. The service may be offered either on or off premises.
- Hybrid cloud: The hybrid cloud is a combination of two or more public, private, and community cloud infrastructures. Although they work on distinct identities, they are bound together as a unit. It is actually the physical hardware and the virtualized cloud server that form the hybrid to provide a single common service.
- Community:The community cloud infrastructure is deployed with the idea of sharing resources among organizations of similar requirements. It is more expensive, compared to the public cloud, but often is better equipped to deal with issues such as privacy, security and, policy compliance.
Figure 1: The cloud computing model
- The Service Model: The Service Model describes the type of service offered by the provider. It demarcates the fine line between the start of services provided by the cloud and the point from which the client's network management responsibilities end. The service model evolved to encompass different types of services provided by the vendor. Some well-known service models are Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), and Infrastructure-as-a-Service (IaaS). They are together called the SPI model. It is the type of service model which distinguishes the part that the vendor manages and the part which is client's responsibility.
- Infrastructure-as-a-Service (IaaS): It provides a computing infrastructure such as virtual machines, virtual storages,and physical hardware assets as a service to the potential client. The host is responsible for managing the infrastructure and the client is responsible for deployment aspects such as operating system, applications, and user interaction. Some popular IaaS examples are Amazon Web Service (AWS), Microsoft Azure, Google Compute Engine (GCE), RackSpace,and DigitalOcean.
- Platform-as-a-Service (PaaS): It provides the computing platform as a service, such as a virtual machine, operating system, applications, development frameworks, database, Web server, programming language execution environment, and so forth. The client uses the platform or the application. The service provider manages the cloud infrastructure and the client is responsible for installation, deployment, and application management. Some popular PaaS examples are AWS Elastic Beanstalk, Heroku, Google App Engine, and Apache Stratos.
- Software-as-a-Service (SaaS): It provides access to software without worrying about its installation, maintenance, or execution. It is also called on-demand software. The thin client receives an interface, usually through a browser. The vendor manages everything except managing data input and user interaction, which is the client's responsibility. Some popular SaaS examples are Google Apps and MSOffice365.
The popularity of Cloud Computing owes its success to two things: the ever-growing Internet and the evolution of large service companies. It changed the way systems are deployed. It brought forth the idea of infinite scalability, universal availability, and pay-as-you-go. With Cloud Computing, one organization can grow small to large quickly due to the nature of utilization and availability of the cloud resources. The open spectrum of cloud services revolutionized the idea of overall computing and how it effects the service provider and the clients altogether. Perhaps the most notable concept is that, although it is not a new technology, it effectively utilized the existing system to deal with the evolutionary idea and coined a terminology called cloud computing.