Cloud computing is the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user. The term is generally used to describe data centers available to many users over the Internet. It relies on sharing of resources to achieve coherence and economies of scale. It provides us a means for accessing the applications as utilities over the Internet. It allows us to create, configure, and customize the applications online.
Cloud Computing refers to manipulating, configuring, and accessing the hardware and software resources remotely. It offers online data storage, infrastructure, and application.The availability of high-capacity networks, low-cost computers and storage devices as well as the widespread adoption of hardware virtualization, service-oriented architecture and autonomic and utility computing has led to growth in cloud computing. By 2019, Linux was the most widely used operating system, including in Microsoft’s offerings and is thus described as dominant. The Cloud Service Provider(CSP) will screen, keep up and gather data about the firewalls, intrusion identification or/and counteractive action frameworks and information stream inside the network.
Deployment models define the type of access to the cloud, i.e. how the cloud is located? Cloud can have any of the four types of access: Public, Private, Hybrid, and Community.
- Public Cloud The public cloud allows systems and services to be easily accessible to the general public. Public cloud may be less secure because of its openness.
- Private Cloud The private cloud allows systems and services to be accessible within an organization. It is more secured because of its private nature.
- Community Cloud The community cloud allows systems and services to be accessible by a group of organizations.
- Hybrid Cloud The hybrid cloud is a mixture of public and private cloud, in which the critical activities are performed using private cloud while the non-critical activities are performed using public cloud.
Cloud computing is based on service models. These are categorized into three basic service models which are: - Infrastructure-as–a-Service (IaaS) - Platform-as-a-Service (PaaS) - Software-as-a-Service (SaaS) Anything-as-a-Service (XaaS) is yet another service model, which includes Network-as-a-Service, Business-as-a-Service, Identity-as-a-Service, Database-as-a-Service or Strategy-as-a-Service.
IaaS provides access to fundamental resources such as physical machines, virtual machines, virtual storage, etc. IaaS refers not to a machine that does all the work, but simply to a facility given to businesses that offers users the leverage of extra storage space in servers and data centers. Examples of IaaS include: Amazon CloudFormation (and underlying services such as Amazon EC2), Rackspace Cloud, Terremark, Windows Azure Virtual Machines, Google Compute Engine, and Joyent. All of the above resources are made available to end user via server virtualization. Moreover, these resources are accessed by the customers as if they own them.
Benefits: IaaS allows the cloud provider to freely locate the infrastructure over the Internet in a costeffective manner. Some of the key benefits of IaaS are listed below:
- Full control of the computing resources through administrative access to VMs.
- Flexible and efficient renting of computer hardware.
- Portability, interoperability with legacy applications.
PaaS provides the runtime environment for applications, development and deployment tools, etc. Platform-as-a-Service offers the runtime environment for applications. It also offers development and deployment tools required to develop applications. PaaS has a feature of point-and-click tools that enables non-developers to create web applications.
App Engine of Google and Force.com are examples of PaaS offering vendors. Developer may log on to these websites and use the built-in API to create web-based applications. But the disadvantage of using PaaS is that, the developer locks-in with a particular vendor. For example, an application written in Python against API of Google, and using App Engine of Google is likely to work only in that environment.
- Lower administrative overhead: Customer need not bother about the administration because it is the responsibility of cloud provider.
- Lower total cost of ownership: Customer need not purchase expensive hardware, servers, power, and data storage.
- Scalable solutions: It is very easy to scale the resources up or down automatically, based on their demand.
- More current system software: It is the responsibility of the cloud provider to maintain software versions and patch installations.
SaaS model allows to use software applications as a service to end-users. Software-as–a-Service (SaaS) model allows to provide software application as a service to the end users. It refers to a software that is deployed on a host service and is accessible via Internet. There are several SaaS applications listed below:
- Billing and invoicing system
- Customer Relationship Management (CRM) applications
- Help desk applications
- Human Resource (HR) solutions
Some of the SaaS applications are not customizable such as Microsoft Office Suite. But SaaS provides us Application Programming Interface (API), which allows the developer to develop a customized application.
Characteristics: Here are the characteristics of SaaS service model:
- SaaS makes the software available over the Internet.
- The software applications are maintained by the vendor.
- The license to the software may be subscription based or usage based. And it is billed on recurring basis.
- SaaS applications are cost-effective since they do not require any maintenance at end user side.
- They are available on demand.
- They can be scaled up or down on demand.
- They are automatically upgraded and updated.
- SaaS offers shared data model. Therefore, multiple users can share single instance of infrastructure. It is not required to hard code the functionality for individual users.
- All users run the same version of the software.
Benefits: Using SaaS has proved to be beneficial in terms of scalability, efficiency and performance. Some of the benefits are listed below:
- Modest software tools
- Efficient use of software licenses
- Centralized management and data
- Platform responsibilities managed by provider
- Multitenant solutions