Unit5 DC CS3551
Unit5 DC CS3551
CLOUD COMPUTING
Definition
Cloud computing[1] is the on-demand availability of computer system resources,
especially data storage (cloud storage) and computing power, without direct active
management by the user.
Cloud computing means storing and accessing the data and programs on remote servers
that are hosted on the internet instead of the computer’s hard drive or local server.
Public Cloud
The public cloud makes it possible for anybody to access systems and services. The public
cloud may be less secure as it is open to everyone. The public cloud is one in which cloud
infrastructure services are provided over the internet to the general people or major indust ry
groups. The infrastructure in this cloud model is owned by the entity that delivers the cloud
services, not by the consumer. It is a type of cloud hosting that allows customers and users to
easily access systems and services. This form of cloud computing is an excellent example of
cloud hosting, in which service providers supply services to a variety of customers. In this
arrangement, storage backup and retrieval services are given for free, as a subscription, or on a
per-user basis. For example, Google App Engine etc.
Advantages of the Public Cloud Model
Minimal Investment: Because it is a pay-per-use service, there is no substantial upfront fee,
making it excellent for enterprises that require immediate access to resources.
No setup cost: The entire infrastructure is fully subsidized by the cloud service providers,
thus there is no need to set up any hardware.
Infrastructure Management is not required: Using the public cloud does not necessitate
infrastructure management.
No maintenance: The maintenance work is done by the service provider (not users).
Dynamic Scalability: To fulfill your company’s needs, on-demand resources are
accessible.
Disadvantages of the Public Cloud Model
Less secure: Public cloud is less secure as resources are public so there is no guarantee of
high-level security.
Low customization: It is accessed by many public so it can’t be customized according to
personal requirements.
Private Cloud
The private cloud deployment model is the exact opposite of the public cloud deployment
model. It’s a one-on-one environment for a single user (customer). There is no need to share
your hardware with anyone else. The distinction between private and public clouds is in how
you handle all of the hardware. It is also called the ―internal cloud‖ & it refers to the ability to
access systems and services within a given border or organization. The cloud platform is
implemented in a cloud-based secure environment that is protected by powerful firewalls and
under the supervision of an organization’s IT department. The private cloud gives greater
flexibility of control over cloud resources.
We’re talking about employing multiple cloud providers at the same time under this paradigm,
as the name implies. It’s similar to the hybrid cloud deployment approach, which combines
public and private cloud resources. Instead of merging private and public clouds, multi-cloud
uses many public clouds
Cloud Computing service models
Most cloud computing services fall into five broad categories:
1. Software as a service (SaaS)
2. Platform as a service (PaaS)
3. Infrastructure as a service (IaaS)
4. Anything/Everything as a service (XaaS)
5. Function as a Service (FaaS)
These are sometimes called the cloud computing stack because they are built on top of one
another. Knowing what they are and how they are different, makes it easier to accomplish your
goals. These abstraction layers can also be viewed as a layered architecture where services of
a higher layer can be composed of services of the underlying layer i.e, SaaS can provide
Infrastructure.
Software as a Service(SaaS)
Software-as-a-Service (SaaS) is a way of delivering services and applications over the Internet.
Instead of installing and maintaining software, we simply access it via the Internet, freeing
ourselves from the complex software and hardware management. It removes the need to install
and run applications on our own computers or in the data centers eliminating the expenses of
hardware as well as software maintenance.
SaaS provides a complete software solution that you purchase on a pay-as-you-go basis from a
cloud service provider. Most SaaS applications can be run directly from a web browser without
any downloads or installations required. The SaaS applications are sometimes called Web-
based software, on-demand software, or hosted software.
Advantages of SaaS
1. Cost-Effective: Pay only for what you use.
2. Reduced time: Users can run most SaaS apps directly from their web browser without
needing to download and install any software. This reduces the time spent in installation and
configuration and can reduce the issues that can get in the way of the software deployment.
3. Accessibility: We can Access app data from anywhere.
4. Automatic updates: Rather than purchasing new software, customers rely on a SaaS
provider to automatically perform the updates.
5. Scalability: It allows the users to access the services and features on-demand.
The various companies providing Software as a service are Cloud9 Analytics, Salesforce.com,
Cloud Switch, Microsoft Office 365, Big Commerce, Eloqua, dropBox, and Cloud Tran.
Disadvantages of Saas :
1. Limited customization: SaaS solutions are typically not as customizable as on-premises
software, meaning that users may have to work within the constraints of the SaaS provider’s
platform and may not be able to tailor the software to their specific needs.
2. Dependence on internet connectivity: SaaS solutions are typically cloud-based, which
means that they require a stable internet connection to function properly. This can be
problematic for users in areas with poor connectivity or for those who need to access the
software in offline environments.
3. Security concerns: SaaS providers are responsible for maintaining the security of the data
stored on their servers, but there is still a risk of data breaches or other security incidents.
4. Limited control over data: SaaS providers may have access to a user’s data, which can be
a concern for organizations that need to maintain strict control over their data for regulatory
or other reasons.
Platform as a Service
PaaS is a category of cloud computing that provides a platform and environment to allow
developers to build applications and services over the internet. PaaS services are hosted in the
cloud and accessed by users simply via their web browser.
A PaaS provider hosts the hardware and software on its own infrastructure. As a result, PaaS
frees users from having to install in-house hardware and software to develop or run a new
application. Thus, the development and deployment of the application take place independent
of the hardware.
The consumer does not manage or control the underlying cloud infrastructure including
network, servers, operating systems, or storage, but has control over the deployed applications
and possibly configuration settings for the application-hosting environment. To make it simple,
take the example of an annual day function, you will have two options either to create a venue
or to rent a venue but the function is the same.
Advantages of PaaS:
1. Simple and convenient for users: It provides much of the infrastructure and other IT
services, which users can access anywhere via a web browser.
2. Cost-Effective: It charges for the services provided on a per-use basis thus eliminating the
expenses one may have for on-premises hardware and software.
3. Efficiently managing the lifecycle: It is designed to support the complete web application
lifecycle: building, testing, deploying, managing, and updating.
4. Efficiency: It allows for higher-level programming with reduced complexity thus, the
overall development of the application can be more effective.
The various companies providing Platform as a service are Amazon Web services Elastic
Beanstalk, Salesforce, Windows Azure, Google App Engine, cloud Bees and IBM smart cloud.
Disadvantages of Paas:
1. Limited control over infrastructure: PaaS providers typically manage the underlying
infrastructure and take care of maintenance and updates, but this can also mean that users
have less control over the environment and may not be able to make certain customizations.
2. Dependence on the provider: Users are dependent on the PaaS provider for the availability,
scalability, and reliability of the platform, which can be a risk if the provider experiences
outages or other issues.
3. Limited flexibility: PaaS solutions may not be able to accommodate certain types of
workloads or applications, which can limit the value of the solution for certain
organizations.
Infrastructure as a Service
Infrastructure as a service (IaaS) is a service model that delivers computer infrastructure on an
outsourced basis to support various operations. Typically IaaS is a service where infrastructure
is provided as outsourcing to enterprises such as networking equipment, devices, database, and
web servers.
It is also known as Hardware as a Service (HaaS). IaaS customers pay on a per-user basis,
typically by the hour, week, or month. Some providers also charge customers based on the
amount of virtual machine space they use.
It simply provides the underlying operating systems, security, networking, and servers for
developing such applications, and services, and deploying development tools, databases, etc.
Advantages of IaaS:
1. Cost-Effective: Eliminates capital expense and reduces ongoing cost and IaaS customers
pay on a per-user basis, typically by the hour, week, or month.
2. Website hosting: Running websites using IaaS can be less expensive than traditional web
hosting.
3. Security: The IaaS Cloud Provider may provide better security than your existing software.
4. Maintenance: There is no need to manage the underlying data center or the introduction of
new releases of the development or underlying software. This is all handled by the IaaS
Cloud Provider.
The various companies providing Infrastructure as a service are Amazon web services,
Bluestack, IBM, Openstack, Rackspace, and Vmware.
Disadvantages of laaS :
1. Limited control over infrastructure: IaaS providers typically manage the underlying
infrastructure and take care of maintenance and updates, but this can also mean that users
have less control over the environment and may not be able to make certain customizations.
2. Security concerns: Users are responsible for securing their own data and applications,
which can be a significant undertaking.
3. Limited access: Cloud computing may not be accessible in certain regions and countries
due to legal policies.
Anything as a Service
It is also known as Everything as a Service. Most of the cloud service providers nowadays offer
anything as a service that is a compilation of all of the above services including some additional
services.
Advantages of XaaS:
1. Scalability: XaaS solutions can be easily scaled up or down to meet the changing needs of
an organization.
2. Flexibility: XaaS solutions can be used to provide a wide range of services, such as storage,
databases, networking, and software, which can be customized to meet the specific needs of
an organization.
3. Cost-effectiveness: XaaS solutions can be more cost-effective than traditional on-premises
solutions, as organizations only pay for the services.
Disadvantages of XaaS:
1. Dependence on the provider: Users are dependent on the XaaS provider for the
availability, scalability, and reliability of the service, which can be a risk if the provider
experiences outages or other issues.
2. Limited flexibility: XaaS solutions may not be able to accommodate certain types of
workloads or applications, which can limit the value of the solution for certain
organizations.
3. Limited integration: XaaS solutions may not be able to integrate with existing systems and
data sources, which can limit the value of the solution for certain organizations.
Function as a Service :
FaaS is a type of cloud computing service. It provides a platform for its users or customers to
develop, compute, run and deploy the code or entire application as functions. It allows the user
to entirely develop the code and update it at any time without worrying about the maintenance
of the underlying infrastructure. The developed code can be executed with response to the
specific event. It is also as same as PaaS.
FaaS is an event-driven execution model. It is implemented in the serverless container. When
the application is developed completely, the user will now trigger the event to execute the code.
Now, the triggered event makes response and activates the servers to execute it. The servers are
nothing but the Linux servers or any other servers which is managed by the vendor completely.
Customer does not have clue about any servers which is why they do not need to maintain the
server hence it is serverless architecture.
Both PaaS and FaaS are providing the same functionality but there is still some differentiation
in terms of Scalability and Cost.
FaaS, provides auto-scaling up and scaling down depending upon the demand. PaaS also
provides scalability but here users have to configure the scaling parameter depending upon the
demand.
In FaaS, users only have to pay for the number of execution time happened. In PaaS, users have
to pay for the amount based on pay-as-you-go price regardless of how much or less they use.
Advantages of FaaS :
Highly Scalable: Auto scaling is done by the provider depending upon the demand.
Cost-Effective: Pay only for the number of events executed.
Code Simplification: FaaS allows the users to upload the entire application all at once. It
allows you to write code for independent functions or similar to those functions.
Maintenance of code is enough and no need to worry about the servers.
Functions can be written in any programming language.
Less control over the system.
The various companies providing Function as a Service are Amazon Web Services –
Firecracker, Google – Kubernetes, Oracle – Fn, Apache OpenWhisk – IBM, OpenFaaS,
Disadvantages of FaaS :
1. Cold start latency: Since FaaS functions are event-triggered, the first request to a new
function may experience increased latency as the function container is created and
initialized.
2. Limited control over infrastructure: FaaS providers typically manage the underlying
infrastructure and take care of maintenance and updates, but this can also mean that users
have less control over the environment and may not be able to make certain customizations.
3. Security concerns: Users are responsible for securing their own data and applications,
which can be a significant undertaking.
4. Limited scalability: FaaS functions may not be able to handle high traffic or large number
of requests.
2. Cost Management
Even as almost all cloud service providers have a ―Pay As You Go‖ model, which reduces the
overall cost of the resources being used, there are times when there are huge costs incurred to
the enterprise using cloud computing. When there is under optimization of the resources, let’s
say that the servers are not being used to their full potential, add up to the hidden costs. If there
is a degraded application performance or sudden spikes or overages in the usage, it adds up to
the overall cost. Unused resources are one of the other main reasons why the costs go up. If you
turn on the services or an instance of cloud and forget to turn it off during the weekend or when
there is no current use of it, it will increase the cost without even using the resources.
3. Multi-Cloud Environments
Due to an increase in the options available to the companies, enterprises not only use a single
cloud but depend on multiple cloud service providers. Most of these companies use hybrid cloud
tactics and close to 84% are dependent on multiple clouds. This often ends up being hindered
and difficult to manage for the infrastructure team. The process most of the time ends up being
highly complex for the IT team due to the differences between multiple cloud providers.
4. Performance Challenges
Performance is an important factor while considering cloud-based solutions. If the performance
of the cloud is not satisfactory, it can drive away users and decrease profits. Even a little latency
while loading an app or a web page can result in a huge drop in the percentage of users. This
latency can be a product of inefficient load balancing, which means that the server cannot
efficiently split the incoming traffic so as to provide the best user experience.
5. Interoperability and Flexibility
When an organization uses a specific cloud service provider and wants to switch to another
cloud-based solution, it often turns up to be a tedious procedure since applications written for
one cloud with the application stack are required to be re-written for the other cloud. There is a
lack of flexibility from switching from one cloud to another due to the complexities involved.
Handling data movement, setting up the security from scratch and network also add up to the
issues encountered when changing cloud solutions, thereby reducing flexibility.
Host Machine: The machine on which the virtual machine is going to be built is known as
Host Machine.
Guest Machine: The virtual machine is referred to as a Guest Machine.
Work of Virtualization in Cloud Computing
Virtualization has a prominent impact on Cloud Computing. In the case of cloud computing,
users store data in the cloud, but with the help of Virtualization, users have the extra benefit of
sharing the infrastructure. Cloud Vendors take care of the required physical resources, but these
cloud providers charge a huge amount for these services which impacts every user or
organization. Virtualization helps Users or Organisations in maintaining those services which
are required by a company through external (third-party) people, which helps in reducing costs
to the company. This is the way through which Virtualization works in Cloud Computing.
Benefits of Virtualization
More flexible and efficient allocation of resources.
Enhance development productivity.
It lowers the cost of IT infrastructure.
Remote access and rapid scalability.
High availability and disaster recovery.
Pay peruse of the IT infrastructure on demand.
Enables running multiple operating systems.
Drawback of Virtualization
High Initial Investment: Clouds have a very high initial investment, but it is also true that
it will help in reducing the cost of companies.
Learning New Infrastructure: As the companies shifted from Servers to Cloud, it requires
highly skilled staff who have skills to work with the cloud easily, and for this, you have to
hire new staff or provide training to current staff.
Risk of Data: Hosting data on third-party resources can lead to putting the data at risk, it
has the chance of getting attacked by any hacker or cracker very easily.
Characteristics of Virtualization
Increased Security: The ability to control the execution of a guest program in a completely
transparent manner opens new possibilities for delivering a secure, controlled execution
environment. All the operations of the guest programs are generally performed against the
virtual machine, which then translates and applies them to the host programs.
Managed Execution: In particular, sharing, aggregation, emulation, and isolation are the
most relevant features.
Sharing: Virtualization allows the creation of a separate computing environment within the
same host.
Aggregation: It is possible to share physical resources among several guests, but
virtualization also allows aggregation, which is the opposite process.
Types of Virtualization
1. Application Virtualization
2. Network Virtualization
3. Desktop Virtualization
4. Storage Virtualization
5. Server Virtualization
6. Data virtualization
1. Application Virtualization: Application virtualization helps a user to have remote access to
an application from a server. The server stores all personal information and other characteristics
of the application but can still run on a local workstation through the internet. An example of
this would be a user who needs to run two different versions of the same software. Technologies
that use application virtualization are hosted applications and packaged applications.
2. Network Virtualization: The ability to run multiple virtual networks with each having a
separate control and data plan. It co-exists together on top of one physical network. It can be
managed by individual parties that are potentially confidential to each other. Network
virtualization provides a facility to create and provision virtual networks, logical switches,
routers, firewalls, load balancers, Virtual Private Networks (VPN), and workload security
within days or even weeks.
Cloud Elasticity
Elasticity refers to the ability of a cloud to automatically expand or compress the infrastructural
resources on a sudden up and down in the requirement so that the workload can be managed
efficiently. This elasticity helps to minimize infrastructural costs. This is not applicable for all
kinds of environments, it is helpful to address only those scenarios where the resource
requirements fluctuate up and down suddenly for a specific time interval. It is not quite practical
to use where persistent resource infrastructure is required to handle the heavy workload.
The Flexibility in cloud is a well-known highlight related with scale-out arrangements (level
scaling), which takes into consideration assets to be powerfully added or eliminated when
required.
It is for the most part connected with public cloud assets which is generally highlighted in pay-
per-use or pay-more only as costs arise administrations.
The Flexibility is the capacity to develop or contract framework assets (like process, capacity or
organization) powerfully on a case by case basis to adjust to responsibility changes in the
applications in an autonomic way.
It makes most extreme asset use which bring about reserve funds in foundation costs in general.
Relies upon the climate, flexibility is applied on assets in the framework that isn’t restricted to
equipment, programming, network, QoS and different arrangements.
The versatility is totally relying upon the climate as now and again it might become negative
characteristic where execution of certain applications probably ensured execution.
It is most commonly used in pay-per-use, public cloud services.
Example: Consider an online shopping site whose transaction workload increases during festive
season like Christmas. So for this specific period of time, the resources need a spike up. In order
to handle this kind of situation, we can go for a Cloud-Elasticity service rather than Cloud
Scalability. As soon as the season goes out, the deployed resources can then be requested for
withdrawal.
Cloud Scalability
Cloud scalability is used to handle the growing workload where good performance is also
needed to work efficiently with software or applications. Scalability is commonly used where
the persistent deployment of resources is required to handle the workload statically.
Example: Consider you are the owner of a company whose database size was small in earlier
days but as time passed your business does grow and the size of your database also increases, so
in this case you just need to request your cloud service vendor to scale up your database
capacity to handle a heavy workload.
It is totally different from what you have read above in Cloud Elasticity. Scalability is used to
fulfil the static needs while elasticity is used to fulfill the dynamic need of the organization.
Scalability is a similar kind of service provided by the cloud where the customers have to pay-
per-use. So, in conclusion, we can say that Scalability is useful where the workload remains
high and increases statically.
Types of Scalability:
2. Horizontal Scalability: In this kind of scaling, the resources are added in a horizontal row.
3. Diagonal Scalability
It is a mixture of both Horizontal and Vertical scalability where the resources are added
both vertically and horizontally.
Difference Between Cloud Elasticity and Scalability :
Cloud Elasticity Cloud Scalability
Replication
Replication in Cloud Computing refers to multiple storage of the same data to several
different locations by usually synchronization of these data sources. Replication in Cloud
Computing is partly done for backup and on the other hand to reduce response times,
especially for reading data requests.
Cloud Replication refers to the process of replicating data from on-premises storage to the
cloud, or from one cloud instance to another. Traditional data replication involves
replicating data across different physical servers on the company’s local network.
Cloud Data Replication Traditional Data Replication
Data is replicated from physical storage to the Data is replicated from one physical storage to
cloud, or from one cloud instance to another. another within the company’s local network.
It uses fully-managed remote servers located It uses in-house hardware and software that is owned
across the town or the county. and managed by the organization.
Cloud-based software and resources follow a
On-premise hardware and software, require users to
subscription-based pricing model, allowing users
purchase them at once, thereby making them a capital
to rent them on a monthly/annum basis. These
expense.
form the operating costs.
It is cost-effective as it only requires you to set up
It requires you to invest in hardware and software
an account with the cloud service provider to start
licenses, and hence it has a high up-front cost.
the replication process.
It only requires you to have an active internet You may not need an active internet connection to
connection to start the replication process. perform traditional data replication.
Advantages of Cloud Replication
High Availability: Cloud Data Replication keeps your data offsite and away from the
premises. In case the primary instance is destroyed by a major disaster like fire, storm,
flood, etc., your secondary data instance will be safe in the cloud, allowing you to recover
data.
Cheap: Replicating data to the cloud is much economical than replicating and maintaining
data in your data center. It helps minimize costs associated with managing the data center,
including hardware, software, support cost, etc.
Scalable: Cloud Replication houses the support for on-demand scalability. It allows users
to either increase or decrease their storage requirements as their business expands or
contracts. It doesn’t require users to purchase additional hardware.
Secure: Most cloud service providers provide a fully-managed service and are solely
responsible for maintaining physical and network security. It is, therefore, quite beneficial
for a small business that lacks proper security staff.
Cloud Monitoring
Cloud monitoring is a process of observing the services and applications that are centered in the cloud,
providing you with essential data, valuable insights, and alerts to possible upcoming issues or
disruptions.
Cloud server monitoring empowers to optimize performance and reduce the downtime of cloud-based
apps, processes, data, and initiatives.
Quickly identify threats or other problems before they can create interruptions in your service
Monitor relevant KPIs in real time with up-to-the-minute reporting to ensure that your business
is always moving in the right direction
Protect against data loss by identifying and analyzing all data that leaves the network,
minimizing the impact of potential data breaches
Improve performance with high-quality APIs, protected by authentication protocols
Locate and repair delays within application workflow for improved response times
Additionally, because cloud monitoring services are themselves cloud-based, they offer many of the
advantages commonly associated with cloud computing. This includes preconfiguration and easy
installation, reduced investments in installing and maintaining on-premises solutions, improved
scalability, expanded accessibility, and more.
Challenges of Using Cloud Monitoring
While cloud monitoring offers many advantages in terms of tracking and analysis, there are some
challenges you should be aware of. First, however, it’s worth noting that the right services are more
than capable of working with you and your business to overcome these challenges. In most cases, the
benefits of monitoring cloud servers significantly outweigh any potential obstacles.
Lack of Skills
As more and more organizations make digital transformation a top priority, it’s becoming apparent that
there exists a cloud-skill shortage. In fact, according to a recent survey by Gartner, 63 percent of senior
executives identify talent shortage as a major concern for their organization.1 Businesses without the
right IT talent may have trouble properly managing cloud monitoring solutions. That said, most
established cloud monitoring service providers are able to work with clients to operate a desired target
environment smoothly and securely.
Multiple Cloud Providers
In enterprise, 92 percent of businesses use multiple clouds — public and private — to support evolving
IT infrastructures.2 This multi-cloud strategy may allow organizations to better address their unique
needs, but it also creates increased complexity in terms of cloud structure, and that can make cloud
monitoring a difficult prospect. Different cloud providers may result in siloed data and tools, forcing
clients to adopt a range of vendor-specific monitoring tools to properly track cloud performance.
Hybrid Infrastructure
Hybrid clouds face many of the same challenges as multi-cloud strategies. In a hybrid setup, data
resides in both public and private cloud environments; attempting to monitor that data and track
processes when dealing with two distinct kinds of cloud may result in lack of visibility. Again, public
cloud providers generally supply their own monitoring tools, but there’s no guarantee those tools will
function well in conjunction with an organization’s own private-cloud monitoring solutions.
Overcoming these challenges is a top priority for many organizations who are interested in monitoring
and improving the performance of their cloud applications. Gigamon provides the solution.