CLOUD COMPUTING


What is Cloud?

The term Cloud refers to a Network or Internet. In other words, we can say that Cloud is something, which is present at remote location. Cloud can provide services over network, i.e., on public networks or on private networks, i.e., WAN, LAN or VPN.
Applications such as e-mail, web conferencing, customer relationship management (CRM),all run in cloud

What is Cloud Computing?

Cloud Computing refers to manipulating, configuring, and accessing the applications online. It offers online data storage, infrastructure and application.

Basic Concepts?

There are certain services and models working behind the scene making the cloud computing feasible and accessible to end users. Following are the working models for cloud computing:

·        Deployment Models

·        Service Models

 Deployment Models Are-


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, e.g., e-mail.

PRIVATE CLOUD-

The Private Cloud allows systems and services to be accessible within an organization. It offers increased security because of its private nature.

COMMUNITY CLOUD-

The Community Cloud allows systems and services to be accessible by group of  organizations.

HYBRID CLOUD-

   The Hybrid Cloud is mixture of public and private cloud. However, the critical activities are performed using private cloud while the non-critical activities are performed using public cloud.

SERVICE MODELS-

Service Models are the reference models on which the Cloud Computing is based. These can be categorized into three basic service models as listed below:

1.     Infrastructure as a Service (IaaS)

2.     Platform as a Service (PaaS)

3.     Software as a Service (SaaS)


Cloud Computing-Technologies?




   There is a certain  technologies  that  are  working  behind  the  cloud  computing  platforms  making cloud computing flexible, reliable, usable. These technologies are listed below:

·          Virtualization

·          Service-Oriented Architecture (SOA)

·          Grid Computing

·          Utility Computing

Virtualization-
                   Virtualization is a technique, which allows to share single physical instance of an application or resource among multiple organizations or tenants (customers). It does so by assigning a logical name to a physical resource and providing a pointer to that physical resource when demanded.

Service-Oriented Architecture(SOA)-
                Service-Oriented Architecture helps to use applications as a service for other applications regardless the type of vendor, product or technology. Therefore, it is possible to exchange of data between applications of different vendors without additional programming or making changes to services.

Grid Computing-
               Grid Computing refers to distributed computing in which a group of computers from multiple locations are connected with each other to achieve common objective. These computer resources are heterogeneous and geographically dispersed.
     Grid Computing breaks complex task into smaller pieces. These smaller pieces are distributed to 
     CPUs that reside within the grid.

Utility Computing-
               Utility computing is based on Pay per Use model. It offers computational resources on demand as a metered service. Cloud computing, grid computing, and managed IT services are based on the concept of Utility computing.


Infrastructure-as-a-service-

IAASprovides access to fundamental resources such as physical machines, virtual machines, virtual storage,

 etc., Apart from these resources, the IaaS also offers:

·          Virtual machine disk storage

·          Virtual local area network (VLANs)

·          Load balancers

·          IP addresses

·          Software bundles

       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 cost-effective 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.

 Platform-as-a-Service-
    PaaS offers the runtime environment for applications. It also offers development & deployment tools, required to develop applications. PaaS has a feature of point-and-click tools that enables non-developers to create web applications.

Google's App Engine, 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 lock-in with a particular vendor. For example, an application written in Python against Google's API using Google's App Engine is likely to work only in that environment. Therefore, the vendor lock-in is the biggest problem in PaaS.

Benefits-
Lower administrative overhead.
Lower total cost of ownership. 
Scable solution.
More current system software.

Software-as-a-Service-
  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 hosted service and is accessible via Internet. 
There are several SaaS applications, some of them are 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 an 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 are maintained by the vendor rather than where they are running.

· 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 share 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 are running same version of the software. 

Benefits-


Using SaaS has proved to be beneficial in terms of scalability, efficiency, performance 
and much more. Some of the benefits are listed below:

· Modest Software Tools

· Efficient use of Software Licenses

· Centralized Management & Data

· Platform responsibilities managed by provider

· Multitenant solutions 


Network-as-a-Service-
           Network as a service allows us to access to network infrastructure directly and securely.      NaaS makes it possible to deploy custom routing protocols.

NaaS uses virtualized network infrastructure to provide network services to the consumer. It is the responsibility of NaaS provider to maintain and manage the network resources which decreases the workload from the consumer. Moreover, NaaS offers network as a utility.

NaaS is also based on pay-per-use model.

How NaaS is delivered?

To use NaaS model, the consumer is required to logon to the web portal, where he can get online API. Here, the consumer can customize the route.

Mobile NaaS-

 Mobile NaaS offers more efficient and flexible control over mobile devices.
 It uses virtualization to simplify the architecture to create more efficient processes.