0% found this document useful (0 votes)
17 views43 pages

FCC NOTES

The document provides an overview of cloud computing, detailing its definition, operations, and advantages over traditional IT infrastructure. It discusses various cloud service models (IaaS, PaaS, SaaS, FaaS) and deployment models (private, public, hybrid), as well as the differences between cloud, cluster, and grid computing. Additionally, it highlights the characteristics, pros, and cons of cloud computing, emphasizing its scalability, reliability, and cost-effectiveness.

Uploaded by

Sankit Ingale
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views43 pages

FCC NOTES

The document provides an overview of cloud computing, detailing its definition, operations, and advantages over traditional IT infrastructure. It discusses various cloud service models (IaaS, PaaS, SaaS, FaaS) and deployment models (private, public, hybrid), as well as the differences between cloud, cluster, and grid computing. Additionally, it highlights the characteristics, pros, and cons of cloud computing, emphasizing its scalability, reliability, and cost-effectiveness.

Uploaded by

Sankit Ingale
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

Sub: Fundamental of cloud computing

Unit 1
Introduction to Cloud Computing

1.1 Introduction to Cloud Computing


What is Cloud Computing?
The term cloud refers to a network or the internet. It is a technology that uses
remote servers on the internet to store, manage, and access data online rather than local
drives. The data can be anything such as files, images, documents, audio, video, and
more.
There are the following operations that we can do using cloud computing:
o Developing new applications and services
o Storage, back up, and recovery of data
o Hosting blogs and websites
o Delivery of software on demand
o Analysis of data
o Streaming videos and audios
o
Why Cloud Computing?
Small as well as large IT companies, follow the traditional methods to provide the
IT infrastructure. That means for any IT company, we need a Server Room that is the
basic need of IT companies.
In that server room, there should be a database server, mail server, networking,
firewalls, routers, modem, switches, QPS (Query Per Second means how much queries
or load will be handled by the server), configurable system, high net speed, and the
maintenance engineers.
To establish such IT infrastructure, we need to spend lots of money. To overcome
all these problems and to reduce the IT infrastructure cost, Cloud Computing comes into
existence.

How Cloud Computing Works?


Cloud computing helps users in easily accessing computing resources like storage, and
processing over internet rather than local hardware’s. Here we discussing how it works
in nutshell:
• Infrastructure: Cloud computing depends on remote network servers hosted on
internet for store, manage, and process the data.
• On-Demand Access: Users can access cloud services and resources based on-
demand they can scale up or down the without having to invest for physical
hardware.
• Types of Services: Cloud computing offers various benefits such as cost saving,
scalability, reliability and accessibility it reduces capital expenditures, improves
efficiency.

Origins Of Cloud Computing


Mainframe computing in the 1950s and the internet explosion in the 1990s came
together to give rise to cloud computing. Since businesses like Amazon, Google,
and Salesforce started providing web-based services in the early 2000s. The term “cloud
computing” has gained popularity. Scalability, adaptability, and cost-effectiveness are
to be facilitated by the concept’s on-demand internet-based access to computational
resources. These days, cloud computing is pervasive, driving a wide range of services
across markets and transforming the processing, storage, and retrieval of data

What is Virtualization in Cloud Computing?


Virtualization is the software technology that helps in providing the logical
isolation of physical resources. Creating logical isolation of physical resources such as
RAM, CPU, and Storage. over the cloud is known as Virtualization in Cloud Computing.
In simple we can say creating types of Virtual Instances of computing resources
over the cloud. It provides better management and utilization of hardware resources with
logical isolation making the applications independent of others. It facilitates streamlining
the resource allocation and enhancing scalability for multiple virtual computers within a
single physical source offering cost-effectiveness and better optimization of resources.

Architecture Of Cloud Computing


Cloud computing architecture refers to the components and sub-components required for
cloud computing. These components typically refer to:
1. Front end (Fat client, thin client)
2. Back-end platforms (Servers, Storage)
3. Cloud-based delivery and a network (Internet, Intranet, Intercloud)
1. Front End (User Interaction Enhancement)
The User Interface of Cloud Computing consists of 2 sections of clients. The Thin clients
are the ones that use web browsers facilitating portable and lightweight accessibilities
and others are known as Fat Clients that use many functionalities for offering a strong
user experience.
2. Back-end Platforms (Cloud Computing Engine)
The core of cloud computing is made at back-end platforms with several servers for
storage and processing computing. Management of Applications logic is managed
through servers and effective data handling is provided by storage. The combination of
these platforms at the backend offers the processing power, and capacity to manage and
store data behind the cloud.
3. Cloud-Based Delivery and Network
On-demand access to the computer and resources is provided over the Internet, Intranet,
and Intercloud. The Internet comes with global accessibility, the Intranet helps in
internal communications of the services within the organization and
the Intercloud enables interoperability across various cloud services. This dynamic
network connectivity ensures an essential component of cloud computing architecture
on guaranteeing easy access and data transfer.

What Are the Types of Cloud Computing Services?


The following are the types of Cloud Computing:
1. Infrastructure as a Service (IaaS)
2. Platform as a Service (PaaS)
3. Software as a Service (SaaS)
4. Function as a Service (FaaS)
1. Infrastructure as a Service (IaaS)
• Flexibility and Control: IaaS comes up with providing virtualized computing
resources such as VMs, Storage, and networks facilitating users with control over
the Operating system and applications.
• Reducing Expenses of Hardware: IaaS provides business cost savings with the
elimination of physical infrastructure investments making it cost-effective.
• Scalability of Resources: The cloud provides in scaling of hardware resources up
or down as per demand facilitating optimal performance with cost efficiency.

2. Platform as a Service (PaaS)


• Simplifying the Development: Platform as a Service offers application
development by keeping the underlying Infrastructure as an Abstraction. It helps
the developers to completely focus on application logic (Code) and background
operations are completely managed by the AWS platform.
• Enhancing Efficiency and Productivity: PaaS lowers the Management of
Infrastructure complexity, speeding up the Execution time and bringing the
updates quickly to market by streamlining the development process.
• Automation of Scaling: Management of resource scaling, guaranteeing the
program’s workload efficiency is ensured by PaaS.

3. software as a service (SaaS)


• Collaboration And Accessibility: Software as a Service (SaaS) helps users to
easily access applications without having the requirement of local installations. It
is fully managed by the AWS Software working as a service over the internet
encouraging effortless cooperation and ease of access.
• Automation of Updates: SaaS providers manage the handling of software
maintenance with automatic latest updates ensuring users gain experience with the
latest features and security patches.
• Cost Efficiency: SaaS acts as a cost-effective solution by reducing the overhead
of IT support by eliminating the need for individual software licenses.
4. Function as a Service (FaaS)
• Event-Driven Execution: FaaS helps in the maintenance of servers and
infrastructure making users worry about it. FaaS facilitates the developers to run
code as a response to the events.
• Cost Efficiency: FaaS facilitates cost efficiency by coming up with the principle
“Pay as per you Run” for the computing resources used.
• Scalability and Agility: Serverless Architectures scale effortlessly in handing the
workloads promoting agility in development and deployment.

What Are Cloud Deployment Models?

The following are the Cloud Deployment Models:


1. Private Deployment Model
It provides an enhancement in protection and customization by cloud
resource utilization as per particular specified requirements. It is perfect for
companies which looking for security and compliance needs.

2. Public Deployment Model


It comes with offering a pay-as-you-go principle for scalability and
accessibility of cloud resources for numerous users. it ensures cost-
effectiveness by providing enterprise-needed services.

3. Hybrid Deployment Model


It comes up with a combination of elements of both private and public
clouds providing seamless data and application processing in between
environments. It offers flexibility in optimizing resources such as sensitive data
in private clouds and important scalable applications in the public cloud.

What Is Cloud Hosting?


The infrastructure is where the people start and begin to build from the scratch.
This is the layer where the cloud hosting lives. Let’s say you have a company and a
website and the website has a lot of communications that are exchanged between
members. You start with a few members talking with each other and then gradually the
number of members increases. As time passes, as the number of members increases,
there would be more traffic on the network and your server will get slow down. This
would cause a problem.
A few years ago, the websites are put on the server somewhere, in this way you
have to run around or buy and set the number of servers. It costs a lot of money and takes
a lot of time. You pay for these servers when you are using them and as well as when
you are not using them. This is called hosting. This problem is overcome by cloud
hosting. With Cloud Computing, you have access to computing power when you needed.
Now, your website is put in the cloud server as you put it on a dedicated server. People
start visiting your website and if you suddenly need more computing power, you would
scale up according to the need.
1.2 Cloud Computing vs. Cluster Computing vs. Grid Computing

Cloud Computing:
Cloud Computing refers to the on-demand delivery of the IT resources
especially computing power and data storage through the internet with pay per use
pricing. It generally refers to the data centres available to the users over internet. Cloud
Computing is the virtualized pool of resources. It allows us to create, configure and
customize our applications online. The user can access any resource at anytime and
anywhere without worrying about the management and maintenance of actual
resources. Cloud computing delivers both a combination of hardware and software-
based computing resources over network.

What is Cloud Computing?


Cloud Computing is a Client-server computing architecture. 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.
Cloud computing is also referred to as Internet-based computing, it is a technology
where the resource is provided as a service through the Internet to the user. The stored
data can be files, images, documents, or any other storable document.
Advantages of Cloud Computing
• One of the advantages of cloud computing is scalability.
• Cloud computing provide on demand self-service.
• Cloud Computing is cost effective.
• Cloud services are accessible from anywhere with an internet connection.
• Cloud Computing provide rapid elasticity.
Disadvantages of Cloud Computing
• Dependence on Internet Connectivity
• Security Concerns
• Cloud computing require constant and high-speed internet.
• Users have less control over the underlying infrastructure and configurations.

The below figure ill90ustrates a simple architecture of Cloud Computing –


Cluster Computing:
Cluster computing refers to the process of sharing the computation task to multiple
computers of the cluster. The number of computers is connected on a network and they
perform a single task by forming a Cluster of computers where the process of computing
is called as cluster computing.
Cluster Computing is a high-performance computing framework which helps in solving
more complex operations more efficiently with a faster processing speed and better data
integrity. Cluster Computing is a networking technology that performs its operations
based on the principle of distributed systems.

What is Cluster Computing?


Cluster Computing involves connecting two or more homogeneous computers to work
as a unified system. This approach is commonly used for tasks that require high
computational power and reliability. Here are the key characteristics:
Advantages of Cluster Computing
• Homogeneity: Since the computers in a cluster are of the same type, they are
easier to manage and maintain.
• High Performance: Clusters can offer significant computational power and
speed by pooling resources.
• Reliability: Clusters can provide redundancy and fault tolerance if one node fails.
Disadvantages of Cluster Computing
• Limited Scalability: Clusters are typically limited to a single location, which can
restrict their scalability.
• Cost: The requirement for homogeneous hardware can be costly.

The below figure illustrates a simple architecture of Cluster Computing –


Grid computing

What is Grid Computing?


Grid Computing refers to a network of computers, which can be either
homogeneous or heterogeneous, working together across different locations to perform
complex tasks. It leverages the unused processing power of multiple machines to achieve
its goals.
Grid Computing is a Distributed computing architecture. In grid computing,
resources are used in collaborative patterns, and also in grid computing, the users do not
pay for use.

Advantages of Grid Computing


• Flexibility: Grid Computing can integrate a variety of hardware and operating
systems.
• Scalability: It can harness resources from a global network, allowing for greater
scalability.
• Cost Efficiency: By utilizing existing unused resources, Grid Computing can be
more cost-effective.
• Grid Computing provide high resources utilization.
• Grid Computing allow parallel processing of task.
• Grid Computing is designed to be scalable.

Disadvantages of Grid Computing


• Complexity: Managing and coordinating a grid of diverse machines can be
complex.
• Performance Variability: The performance might vary due to the diversity of the
participating machines and network latency.
• The software of the grid is still in the evolution stage.
• Grid computing introduce Complexity.
• Limited Flexibility
• Security Risks

SR. Cloud Computing Grid computing


NO.
1 Cloud computing is a Client-server While it is a Distributed computing
computing architecture. architecture.
2 Cloud computing is a centralized While grid computing is a decentralized
executive. executive.
3 In cloud computing, resources are While in grid computing, resources are
used in centralized pattern. used in collaborative pattern.
4 It is more flexible than grid While it is less flexible than cloud
computing. computing.
5 In cloud computing, the users pay for While in grid computing, the users do
the use. not pay for use.
6 Cloud computing is a high accessible While grid computing is a low
service. accessible service.
7 It is highly scalable as compared to While grid computing is low scalable in
grid computing. comparison to cloud computing.
8 It can be accessed through standard While it is accessible through grid
web protocols. middleware.
9 Cloud computing is based on Grid computing is based on application-
service-oriented. oriented.
10 Cloud computing uses service Grid computing uses service like
like IAAS, PAAS, SAAS. distributed computing, distributed
pervasive, distributed information.

Serial
Number Category Cloud Computing Cluster Computing

Providing on demand IT Performing a complex task in


1. Goal
resources and services. a modular approach.

Resource Specific assigned resources Specific assigned resources


2.
Sharing are not shareable. are not shareable.

In cloud computing there is


Resource In Cluster Computing there is
3. heterogeneous resource
type homogeneous resource type.
type.

Virtualization hardware and


4. Virtualization No virtualization resources.
software resources.
Security through isolation Security through node
5. Security
can be achieved. credential can be achieved.

Initial capital cost for setup Initial capital cost for setup is
6. Initial Cost
is very low. very high.

Security
7. Very low Very high
Requirement

Requires little more


8. Maintenance Requires low maintenance.
maintenance.

No hardware requirement More hardware requirement


9. Hardware
physically. physically.

10. Node OS Multiple OS runs in VM Windows, Linux

User management is
User User management is
11. centralized or decentralized
Management centralized.
to vendor/third party.

12. Scalability Allowed Limited

In Cloud Computing User In Cluster Computing Cluster


13. Architecture
chosen architecture. oriented architecture

Dynamic computing
Tightly coupled
14. Characteristic infrastructure/resources/ser
systems/resources
vices

In cloud computing In cluster computing


Software
15. application domain application domain
Dependent
independent software. dependent software.

16. Example Dropbox, Gmail Sony PlayStation clusters

1.3 Characteristics, Pros and Cons of Cloud

Characteristics of Cloud Computing:


The characteristics of cloud computing are given below:

1) Agility
The cloud works in a distributed computing environment. It shares resources
among users and works very fast.
2) High availability and reliability
The availability of servers is high and more reliable because the chances of
infrastructure failure are minimum.

Rather than being hosted on one single instance of a physical server, hosting is
delivered on a virtual partition that draws its resource, such as disk space, from an
extensive network of underlying physical servers. If one server goes offline it will
have no effect on availability, as the virtual servers will continue to pull resources
from the remaining network of servers.

3) High Scalability
Cloud offers "on-demand" provisioning of resources on a large scale, without
having engineers for peak loads.

With Cloud hosting, it is easy to grow and shrink the number and size of servers
based on the need. This is done by either increasing or decreasing the resources in
the cloud. This ability to alter plans due to fluctuations in business size and needs
is a superb benefit of cloud computing, especially when experiencing a sudden
growth in demand.

4) Multi-Sharing
With the help of cloud computing, multiple users and applications can work
more efficiently with cost reductions by sharing common infrastructure.

5) Device and Location Independence


Cloud computing enables the users to access systems using a web browser
regardless of their location or what device they use e.g. PC, mobile phone,
etc. As infrastructure is off-site (typically provided by a third-party) and
accessed via the Internet, users can connect from anywhere.
6) Maintenance
Maintenance of cloud computing applications is easier, since they do not need to
be installed on each user's computer and can be accessed from different
places. So, it reduces the cost also.
7) Low Cost
By using cloud computing, the cost will be reduced because to take the services
of cloud computing, IT company need not to set its own infrastructure and
pay-as-per usage of resources.
8) Services in the pay-per-use mode
Application Programming Interfaces (APIs) are provided to the users so that
they can access services on the cloud by using these APIs and pay the charges
as per the usage of services.

9)Save Money: An advantage of cloud computing is the reduction in hardware costs.


Instead of purchasing in-house equipment, hardware needs are left to the vendor.
For companies that are growing rapidly, new hardware can be large, expensive,
and inconvenient. Cloud computing alleviates these issues because resources can
be acquired quickly and easily. Even better, the cost of repairing or replacing
equipment is passed to the vendors. Along with purchase costs, off-site hardware
cuts internal power costs and saves space. Large data centres can take up precious
office space and produce a large amount of heat. Moving to cloud applications or
storage can help maximize space and significantly cut energy expenditures.
10) Physical Security: The underlying physical servers are still housed within data
centres and so benefit from the security measures that those facilities implement
to prevent people from accessing or disrupting them on-site.
11) Outsource Management: When you are managing the business, someone else
manages your computing infrastructure. You do not need to worry about
management as well as degradation.

Top Reasons to Switch from On-premise to Cloud Computing


The following are the Top reasons to switch from on-premise to cloud computing:
1. Reduces cost: The cost-cutting ability of businesses that utilize cloud computing
over time is one of the main advantages of this technology. On average 15% of
the total cost can be saved by companies if they migrate to the cloud. By the use
of cloud servers businesses will save and reduce costs with no need to employ a
staff of technical support personnel to address server issues. There are many great
business modules regarding the cost-cutting benefits of cloud servers such as
the Coca-Cola and Pinterest case studies.
2. More storage: For software and applications to execute as quickly and efficiently
as possible, it provides more servers, storage space, and computing power. Many
tools are available for cloud storage such as Dropbox, Onedrive, Google Drive,
iCloud Drive, etc.
3. Employees Better Work Life Balance: Direct connections between cloud
computing benefits, and the work and personal lives of an enterprise’s workers
can both improve because of cloud computing. Even on holidays, the employees
have to work with the server for its security, maintenance, and proper
functionality. But with cloud storage the thing is not the same, employees get
ample of time for their personal life and the workload is even less comparatively.

Top leading Cloud Computing companies


1. Amazon Web Services(AWS)
One of the most successful cloud-based businesses is Amazon Web Services(AWS),
which is an Infrastructure as a Service(Iaas) offering that pays rent for virtual computers
on Amazon’s infrastructure.
2. Microsoft Azure Cloud Platform
Microsoft is creating the Azure platform which enables the .NET Framework
Application to run over the internet as an alternative platform for Microsoft developers.
This is the classic Platform as a Service(PaaS).
3. Google Cloud Platform ( GCP )
• Google has built a worldwide network of data centers to service its search engine.
From this service, Google has captured the world’s advertising revenue. By using
that revenue, Google offers free software to users based on infrastructure. This is
called Software as a Service(SaaS).

Advantages of Cloud Computing


The following are main advantages of Cloud Computing:
1. cost Saving
By using cloud storage, there is no need to buy as many hard drives,
enclosures to house them in, RAID cards to enable data redundancy, electricity
to power them, or hardware warranty services to safeguard them. However, it
also cuts management expenses by decreasing the need for in-depth capacity
planning, streamlining monitoring, and minimizing on-premise hardware and
software management. Administrators can instead concentrate on other, more
crucial activities.

2. Data redundancy and replication


The majority of cloud storage providers maintain numerous copies of data,
even inside of a single “Data Centre”, and they provide excellent object
durability to lower the risk of data loss. Geographic replication options, however,
can spread out several copies of data across areas if you’re searching for even
greater security. Others provide replication services that swiftly transfer data
between data centers, while some offer geo-replication as a storage class option.
Your backups are adequately shielded.

3. Data Tiering for Cost Savings


Various storage classes and data tiers are offered by numerous cloud
storage providers. Choose based on how regularly and rapidly one restores
backups, as well as how long one wants to retain the backups. Consider using
the vendor’s hot storage for backups that require quick and/or frequent restores
because it offers the fastest and most economical retrieval. Consider shifting data
to archive storage for long-term archiving, Although data retrieval may be more
time-consuming and expensive, storage expenses are far lower, especially if one
intends to preserve backups for many years. The ability to automatically shift
data between tiers is a feature that some vendors offer. This minimizes
administration and makes it easier to obtain cost savings.

4. Regulatory and compliance


For regulatory compliance, keeping backups in the same area as the data’s
origin may be the best option. Worldwide alternatives for data centers are
provided by many cloud suppliers. Look for a cloud storage provider that can
accommodate if one needs to store EU client data in an EU data center. Moving
data to cloud storage within the same region is also advantageous for
performance. Even if you are not subject to regulation, the enhanced
performance might be valuable to you.

5. Ransomware/Malware Protection
Ransomware is plain nasty. Unfortunately, it frequently makes the news. The
malware will search the network for shares that contain files and documents to
encrypt in addition to the locally infected computer, which is one of the more
frightening characteristics of ransomware. You might be relieved to learn that your
cloud storage can assist prevent ransomware by providing some backup security
advantages because it’s more difficult to access without proper authentication if
you’re hit by ransomware or another type of malware that is encrypting or
destroying files.

6. Usability or Accessibility
The key advantages of cloud storage are accessibility and usability. You can
rapidly upload your file to your online drive even if you lack technical ability
because they both have simple user interfaces. Most cloud data storage providers
include drag-and-drop functionality and an intuitive user interface. For instance, if
you saved a file to a disc on a mobile device, you can access that file on a computer
or any other device with internet access. It doesn’t matter where you are right now.
Your files, which are kept online in one of the data centres, can be accessed if you
have a strong internet connection

7. Flexibility
In general, using the cloud gives businesses more flexibility than hosting on a
local server. Additionally, a cloud-based solution could be able to quickly meet your
need for more bandwidth without necessitating a difficult (and expensive) update to
your IT infrastructure. This improved independence and flexibility may
considerably raise the overall effectiveness of your firm. You won’t be able to focus
on achieving your company’s goals and satisfying consumers if your present IT
solutions need you to devote too much of your time to computer and data-storage
concerns. However, if you rely on a third party to manage the IT hosting and
infrastructure, you’ll free up more time for the areas of your organization that
directly impact your bottom line.

8. Automation
A cloud storage service may be used by multiple users, and as everything is
handled and automated by the cloud provider vendor, one user’s current task would
not influence that of another. When you want to store a file in the cloud, cloud
storage services function like a hard drive on your computer and won’t interfere
with any ongoing tasks.

9. Scalable
You can upgrade the service plan if the storage included in the current plan is
insufficient. Additionally, the additional space will be provided to your data storage
environment with some new capabilities, so you won’t need to migrate any data
from one place to another. Scalable and adaptable cloud storage is offered.

10.Reliability
Many people create a cloud backup of their hard disc in case their hard drive
fails. The comfort that comes from knowing that data won’t suddenly vanish one
day may be well worth the small price.

Disadvantages Of Cloud Computing


The following are the main disadvantages of Cloud Computing:

1. Vulnerability
The majority of PCs and servers that save data require an internet connection.
Cloud solutions are internet-based by nature, which means that they are linked to
other computers and servers. Thus, making them vulnerable to attacks by
malicious users on the network.

2. Internet dependency
The internet starts to be reliant on your storage. Due to the fact that the internet
will govern our world in 2022, this disadvantage will diminish. One can always
save files while offline and access them later. However, an internet connection
will be required for the update and sync.

3. Issues in Security and privacy


Uncertainties about privacy and security on the cloud are the next significant point
to be made in relation to the drawbacks of cloud storage. Confidential data must
be given over to a third-party organization in order to be stored in the cloud. One
must therefore have complete faith in the cloud vendor.

4. Limitation on control
After the user moves data to the cloud, the vendor is now in charge of it. This
implies that users must rely on the vendors to maintain their services in a safe,
stable, up-and-running, and fully functional manner. This limits the influence on
data safety Nearly all reliability is left up to the storage vendor, along with
accessibility.

5. Cost
Although cloud storage options are normally a cost-effective choice, they could
not be available if utilized for short-term or very small-scale projects, depending
on the cloud vendor. Users can be on the hook for 18 more months than needed,
which is not financially feasible if the demand for data storage is for 6 months but
the vendor’s minimum offer is 2 years.
6. Migration
The ability to switch to another cloud service has grown much less well than other
aspects of cloud storage. As a result, many clients continue to find this scenario to
be quite difficult. Although several of these options are currently unavailable, one
may choose to migrate data to another solution if one discovers that the cloud
provider does not adequately address all of the users’ needs. If there are such
options, they might be pricey. As a result, additional expenses are now necessary,
most often in the form of signing a deal with a second cloud-storage vendor while
being bound by the terms of the first.

7. Regulatory compliance
Only cloud storage options with the highest levels of security protection may be
trusted by financial organizations. When penalties, fines, and lawsuits are imposed
because authorities think it necessary for specific criteria for data protection, the
company will be the target, not the cloud provider.

8. Minimal support
Even when using a simple, rapid, and secure cloud solution, problems can occur
because every user and business has different wants and specifics. The absence of
support for cloud storage is one of the main difficulties there.

9. Features
Each cloud service provider is unique from the others. Users may occasionally
only be able to use the basic kinds of cloud storage that cloud providers provide.
As a result, one cannot modify certain features or take advantage of all of their
benefits.

10.Data management
Given that cloud storage systems have their own organizational systems,
managing data may be a pain. The system used by a cloud vendor might not work
with the way one manages their storage currently.

1.4 Introduction to Docker


Docker is a centralized platform for packaging, deploying, and running
applications. Before Docker, many users face the problem that a particular code is
running in the developer's system but not in the user's system. So, the main reason to
develop docker is to help developers to develop applications easily, ship them into
containers, and can be deployed anywhere.

Docker was firstly released in March 2013. It is used in the Deployment stage of
the software development life cycle that's why it can efficiently resolve issues related
to the application deployment.
Docker is a set of Platforms as a service (PaaS) product that use Operating
system-level virtualization to deliver software in packages called containers.
Containers are isolated from one another and bundle their own software, libraries,
and configuration files; they can communicate with each other through well-
defined channels. All containers are run by a single operating system kernel and
therefore use fewer resources than a virtual machine.

What is Docker?
Docker is an open-source centralized platform designed to create,
deploy, and run applications. Docker uses container on the host's operating
system to run applications. It allows applications to use the same Linux
kernel as a system on the host computer, rather than creating a whole virtual
operating system. Containers ensure that our application works in any
environment like development, test, or production.

Why Docker is popular?


Docker gained its popularity due to its impact on the software development and
deployment. The following are the some of the main reasons for docker
becoming popular:
1. Portability: Docker facilitates the developers in packaging their applications with
all dependencies into a single lightweight containers. It facilities in ensuring the
consistent performance across the different computing environments.
2. Reproducibility: Through encapsulating the applications with their dependencies
within a container it ensures in software setups remaining consistent across the
development, testing and production environments.
3. Efficiency: Docker through its container based architecture it optimizes the
resource utilization. It allows the developers to run the multiple isolated
applications on a single host system.
4. Scalability: Docker’s scalability features facilitated the developers in making
easier of their applications handling at time of workloads increment.
Understanding Docker’s core concepts is crucial, but hands-on experience is
what truly sets you apart. Our DevOps Live Course offers in-depth training
on Docker , covering everything from the basics to advanced container
management techniques. Learn from industry experts and gain practical
experience that will elevate your skills.

Key Components of Docker


The following are the some of the key components of Docker:
• Docker Engine: It is a core part of docker, that handles the creation and
management of containers.
• Docker Image: It is a read-only template that is used for creating containers,
containing the application code and dependencies.
• Docker Hub: It is a cloud based repository that is used for finding and sharing
the container images.
• Dockerfile: It is a script that containing instructions to build a docker image.
• Docker Registry : It is a storage distribution system for docker images, where
you can store the images in both public and private modes.

What is a Dockerfile?
The Dockerfile uses DSL (Domain Specific Language) and contains instructions
for generating a Docker image. Dockerfile will define the processes to quickly
produce an image. While creating your application, you should create a
Dockerfile in order since the Docker daemon runs all of the instructions from
top to bottom.
(The Docker daemon, often referred to simply as “Docker,” is a background
service that manages Docker containers on a system.)
• It is a text document that contains necessary commands which on execution help
assemble a Docker Image.
• Docker image is created using a Dockerfile.


To Know more about the Dockerfile refer to the Docker – Concept of Dockerfile .

What is Docker Architecture and How Docker Works?


Docker makes use of a client-server architecture. The Docker client talks with
the docker daemon which helps in building, running, and distributing the docker
containers. The Docker client runs with the daemon on the same system or we
can connect the Docker client with the Docker daemon remotely. With the help
of REST API over a UNIX socket or a network, the docker client and daemon
interact with each other. To know more about working of docker refer to
the Architecture of Docker .
What is Docker Image?
It is a file, comprised of multiple layers, used to execute code in a Docker
container. They are a set of instructions used to create docker containers. Docker
Image is an executable package of software that includes everything needed to
run an application. This image informs how a container should instantiate,
determining which software components will run and how. Docker Container is
a virtual environment that bundles application code with all the dependencies
required to run the application. The application runs quickly and reliably from
one computing environment to another.

What is Docker Container?


Docker container is a runtime instance of an image. Allows developers to
package applications with all parts needed such as libraries and other
dependencies. Docker Containers are runtime instances of Docker images.
Containers contain the whole kit required for an application, so the application
can be run in an isolated way. For eg.- Suppose there is an image of Ubuntu OS
with NGINX SERVER when this image is run with the docker run command,
then a container will be created and NGINX SERVER will be running on
Ubuntu OS.

What is Docker Hub?


Docker Hub is a repository service and it is a cloud-based service where people
push their Docker Container Images and also pull the Docker Container Images
from the Docker Hub anytime or anywhere via the internet. Generally it makes it
easy to find and reuse images. It provides features such as you can push your
images as private or public registry where you can store and share Docker
images.
Mainly DevOps team uses the Docker Hub. It is an open-source tool and freely
available for all operating systems. It is like storage where we store the images
and pull the images when it is required. When a person wants to push/pull
images from the Docker Hub they must have a basic knowledge of Docker. Let
us discuss the requirements of the Docker tool.
What is Docker Compose?
Docker Compose will execute a YAML-based multi-container application. The
YAML file consists of all configurations needed to deploy containers Docker
Compose , which is integrated with Docker Swarm , and provides directions for
building and deploying containers. With Docker Compose, each container is
constructed to run on a single host.

Docker Commands
Through introducing the essential docker commands, docker became a powerful
software in streamlining the container management process. It helps in ensuring
a seamless development and deployment workflows. The following are the some
of docker commands that are used commonly:
• Docker Run: It used for launching the containers from images, with specifying
the runtime options and commands.
• Docker Pull: It fetches the container images from the container registry like
Docker Hub to the local machine.
• Docker ps : It helps in displaying the running containers along with their
important information like container ID, image used and status.
• Docker Stop : It helps in halting the running containers gracefully shutting down
the processes within them.
• Docker Start: It helps in restarting the stopped containers, resuming their
operations from the previous state.
• Docker Login: It helps to login in to the docker registry enabling the access to
private repositories.
To Know more about the docker commands refer tot the Docker – Instruction
Commands .
Docker Engine
The software that hosts the containers is named Docker Engine. Docker Engine
is a client-server based application. The docker engine has 3 main components:
1. Server: It is responsible for creating and managing Docker images, containers,
networks, and volumes on the Docker. It is referred to as a daemon process.
2. REST API : It specifies how the applications can interact with the Server and
instructs it what to do.
3. Client: The Client is a docker command-line interface (CLI), that allows us to
interact with Docker using the docker commands.

Why to use Docker?


Docker can be used to pack the application and its dependencies which makes it
lightweight and easy to ship the code faster with more reliability. Docker make
its very simple to run the application in the production environment docker
container can be platform independent if the docker engine is installed in the
machine.
• Resource Efficiency : Docker helps in maximizing the resource utilization by
running the multiple containers on a single host. It helps in reducing the
infrastructure costs and improves the efficiency.
• Version Control: It simples the versioning for the applications and their
dependencies ensuring the consistency and making easier of collaboration across
the teams.
• Microservices Agility: It enables the adoption of microservices architecture,
promoting the scalability, flexibility and fault isolation agile application
development.

What is Docker For AWS?


Docker is the most powerful tool to run the application in the form of containers.
Docker container are light in weight and can be run on any operating system.
AWS provides the Amazon Elastic Container Service ( Amazon ECS ) it is an
fully managed container service by which you can deploy, scale and manage the
docker containers. Amazon ECS is the most reliable platform according to the
performance and also it can be integrated with the other AWS Service like load
balancing, service discovery, and container health monitoring. To know more
about Amazon Elastic Container Service (Amazon ECS) .

Advantages of Docker
There are the following advantages of Docker -
o It runs the container in seconds instead of minutes.
o It uses less memory.
o It provides lightweight virtualization.
o It does not a require full operating system to run applications.
o It uses application dependencies to reduce the risk.
o Docker allows you to use a remote repository to share your container with others.
o It provides continuous deployment and testing environment.

Disadvantages of Docker
There are the following disadvantages of Docker -
o It increases complexity due to an additional layer.
o In Docker, it is difficult to manage large amount of containers.
o Some features such as container self -registration, containers self-inspects,
copying files form host to the container, and more are missing in the Docker.
o Docker is not a good solution for applications that require rich graphical interface.
o Docker provides cross-platform compatibility means if an application is designed
to run in a Docker container on Windows, then it can't run on Linux or vice versa.
1.5 Introduction to container
What are Containers?
In the traditional classical deployment scenario, we had hardware and an
operating system for running multiple applications. If you want to run node.js,
having certain dependencies, it will necessitate certain libraries and some
specific kind of operating system. For example, in order to install MySQL, it
requires some libraries, dependencies, and specific requirements of the operating
system.

Likewise, if you run multiple software, each one of them will require its own
library as well as dependency. It may even cause conflict because not necessarily
each application will ask for the same libraries specific to some version; some
may need a different version of the same library. Now the question is, how we
will solve such an issue? Because eventually, you will end up with dependency
matrix hell where you cannot upgrade or maintain this matrix hell.
To solve this dependency matrix hell for upgrading the software or the
applications, we will utilize the containers. Containers build the application, ship
the application, deploy, and scale these applications with ease and independently.
Containers vs. VMs
In order to learn about the container, it is recommended to first know how it
varies from a traditional virtual machine (VM). In the case of traditional
virtualization, a hypervisor is leveraged to virtualize physical hardware
regardless of it being on-premises or in the cloud. For each virtual machine,
there exists a guest of the operating system, a virtual blueprint of the hardware
required by the OS to run, accompanied by an application and its connected
libraries and dependencies.
The containers virtualize the operating system (typically Linux) rather than
virtualizing the hidden hardware so that each particular container can include
both the libraries and dependencies of the corresponding application. The
containers are fast, portable, and lightweight due to the absence of the guest
operating system.
Architecture of Container
Similar to the traditional ones, the container also has an Operating
System and Hardware. On top of hardware, we have Container Engine such
as Docker. The Container Engine software creates a container that packages the
libraries and dependencies alongside as it will facilitate effortless movement of a
container from one machine to another.
These libraries and dependencies come as a part of a package, which is nothing
but a container. In the same way, we will have different containers, which can be
easily moved across the Virtual Machines regardless of worrying about the
underlying dependencies that may be required by the application to run because
everything that is needed by an application to run is packaged as a container that
you can move around.
Advantages of containers

o Installation: In the traditional scenario, installing an application was a laborious


task because it will require you to run several commands for checking multiple
dependencies. In fact, you may end up going into several dependencies of the
software and conflicts that had to be resolved by you. To install the same
application in the development environment, you will have to repeat the whole
process back and forth, which is the only reason it is termed as a time-
consuming task.
Thus, to resolve such an issue, we require containers as everything is packaged.
All you got to do is move it, followed by running a single command that will
result in the automatic installation of all its dependencies and libraries deprived
of conflicting with others.
o Software Dependencies: As we have already discussed, in the traditional
model, software dependency was one such problematic issue, which now has
been resolved by containers as it packages all the dependencies inside the
container and isolate it. Since we can move containers from one system to
another, they are easily manageable.
o Packaging: To resolve compatibility issues, the container packages the software
so that it can be easily shipped without causing any fuss.
o Isolation: Containers also help in process isolation to track what is going on and
to improve the security.
o Scalability: Containers are more scalable in contrast to the traditional
development system. To scale the application horizontally, you can scale
independent containers and utilize the load balancer or service, which will result
in splitting the traffic. Since containers are more flexible, it makes sure
applications are easily managed.
Container Management Platform
Container management platforms are well-defined as high-level tools that play a
pre-eminent role in container orchestration. Container Management Platforms
make use of fundamental container runtime systems. However, there exist some
container management platforms that mix-match the accumulation of multiple
container runtimes.
Kubernetes
Kubernetes, being designed and released by Google, refers to an open-source
container management system. With Kubernetes, we can easily create a
distributed cluster of hosted containers. Kubernetes offers robust container
cluster orchestration tools, including health monitoring, deployment, failover,
and auto-scaling.
Docker
Likewise, docker also provides you a group of utilities with which you can
easily launch, orchestrate and manage the container's cluster. Since it has a huge
demand, its container definition system is supported by several third-party
container management systems such as Amazon ECS and Kubernetes.
Advertisement

Amazon ECS
Amazon Elastic Container Service is the only Amazon cloud-based service,
which can easily manage the Docker containers inside a cluster. ECS comes up
with one of the most powerful API that is tightly integrated with the rest of the
Amazon cloud suite empowers a powerful workflow of DevOps.

Openshift
The Openshift container platform refers to an enterprise Red Hat Linux product.
It can be understood as RedHat's cloud development Platform as a Service
(PaaS). Openshift is one of those trusted enterprise cloud platforms that can
merge with other Red Hat tools.
Use cases of containers
In the cloud environment, container plays an eminent role. Having said that,
many companies are planning to replace the VMs with Containers being general-
purpose compute platforms for their applications and workloads. Following are
some relevant use case of containers:

o Microservices: Since containers are so small and lightweight, they are one of
the best matches for microservice architectures where applications are
constructed out of several loosely coupled and independently deployable smaller
services.
o DevOps: The combination of microservices as architecture and containers as a
platform is a common foundation for many teams that embrace DevOps, similar
to how they are built, ship, and run the software.
o Hybrid, multi-cloud: The containers can run rationally at any platform, across
laptops, on-premises, and cloud environments. They are a perfect basic
architecture for hybrid cloud and multi-cloud schemes. Organizations determine
themselves operating across a mix of multiple public clouds in sequence with
their own data center.
o Application modernizing and migration: It is one of the preferred approaches
to modernized applications that initiate by containerizing them so they can move
them to the cloud.
Cloud Service Models
There are the following three types of cloud service models -
1. Infrastructure as a Service (IaaS)
2. Platform as a Service (PaaS)
3. Software as a Service (SaaS)

Infrastructure as a Service | IaaS


Iaas is also known as Hardware as a Service (HaaS). It is one of the layers of the cloud
computing platform. It allows customers to outsource their IT infrastructures, such as
servers, networking, processing, storage, virtual machines, and other resources.
Customers access these resources on the Internet using a pay-as-per-use model.
In traditional hosting services, IT infrastructure was rented out for a specific period of
time, with pre-determined hardware configuration. The client paid for the configuration
and time, regardless of the actual use. With the help of the IaaS cloud computing platform
layer, clients can dynamically scale the configuration to meet changing requirements and
are billed only for the services actually used.
The IaaS cloud computing platform layer eliminates the need for every organization to
maintain its IT infrastructure.
IaaS is offered in three models: public, private, and hybrid cloud. The private cloud
implies that the infrastructure resides at the customer's premise. In the case of the public
cloud, it is located at the cloud computing platform vendor's data center, and the hybrid
cloud is a combination of the two in which the customer selects the best of both public
cloud and private cloud.
Advertisement
Some of the Primary Characteristics of IaaS are:
o Scalability: IaaS enables users to adjust computing capacity according to their
demands without requiring long lead times or up-front hardware purchases.
o Virtualization: IaaS uses virtualization technology to generate virtualized
instances that can be managed and delivered on-demand by abstracting physical
computer resources.
o Resource Pooling: This feature enables users to share computer resources, such
as networking and storage, among a number of users, maximizing resource
utilization and cutting costs.
o Elasticity: IaaS allows users to dynamically modify their computing resources in
response to shifting demand, ensuring optimum performance and financial
viability.
o Self-Service: IaaS offers consumers "self-service" portals that let them
independently deploy, administer, and monitor their computing resources without
the assistance of IT employees.
o Availability: To ensure the high availability and reliability of services, IaaS
providers often run redundant and geographically dispersed data centers.
o Security: To safeguard their infrastructure and client data, IaaS companies adopt
security measures, including data encryption, firewalls, access controls, and threat
detection.
o Customization: IaaS enables users to alter the operating systems, application
stacks, and security settings of their virtualized instances to suit their unique
requirements.
IaaS, or infrastructure as a service, is a cloud computing model that offers users
virtualized computer resources on a pay-per-use basis.
Users can scale their resources up or down in accordance with their demands while
taking advantage of high availability, security, and customization possibilities.
IaaS provider provides the following services -

Computing: To provision virtual machines (VMs) for end users, IaaS providers offer
virtual central processing units (CPUs) and virtual main memory. As a result, users may
run their workloads and apps on the provider's infrastructure without having to worry
about managing the underlying hardware.
Storage: Back-end storage services are provided by IaaS providers, enabling users to
store and access their files and data. This offers scalable and trustworthy storage
solutions for a variety of use cases and can include block storage, object storage, or file
storage alternatives.
Network: IaaS providers provide networking tools, including routers, switches, and
bridges for the VMs through Network as a Service (NaaS). This enables connectivity
and communication between VMs and other resources while also allowing customers to
create and maintain their network architecture within the IaaS environment.
Advertisement
Load balancers: Infrastructure-layer load balancing services are provided by IaaS
providers. Incoming network traffic is split up among many virtual machines (VMs) or
resources by load balancers, resulting in effective resource management and excellent
application and service availability.
Security: Security features and services are frequently offered by IaaS providers as part
of their offering. To safeguard data and resources housed on the IaaS platform, this can
include network security, firewall configurations, access controls, encryption, and other
security measures.
Backup and disaster recovery services are provided by some IaaS providers, enabling
customers to create backup copies of their data and software and put recovery plans in
place in the event of data loss or system problems. This promotes business continuity
and data security.
Monitoring and Management: IaaS suppliers provide tools and services for
monitoring and controlling the resources and infrastructure. This can involve managing
VMs, storage, and network configurations using management panels or APIs, as well as
measuring resource utilization, automating scaling, and monitoring performance.
It's vital to remember that depending on the provider and their offerings, the precise
services offered by IaaS providers may change. The list above illustrates some typical
IaaS providers' common services.
Virtualized Computing Resources:
o Cloud computing's Infrastructure as a Service (IaaS) model must include
virtualized computer resources. IaaS enables users to rent computer infrastructure
from cloud service providers over the internet, including virtual machines (VMs),
virtual networks, and storage.
o In IaaS, virtual machines (VMs) are a crucial type of virtualized computing
resource. Multiple operating systems and applications can operate on a single
physical host machine thanks to virtual machines (VMs), which are software
simulations of real hardware. Customers can select the VM that best matches their
needs from a variety of VM types that IaaS providers normally offer, each with a
different CPU, memory, and storage configuration.
o Virtual Networks: Another virtualized computing resource in IaaS is virtual
networks. Customers can design and maintain network topologies in the cloud,
including subnets, IP addresses, and routing tables, using virtual networks. Virtual
networks offer clients' applications and data a secure, decoupled environment and
make it simple to integrate them with on-premises networks.
o A crucial virtualized computing resource in IaaS is storage. IaaS providers
frequently offer various storage options, including block, object, and file storage,
each with its own performance, pricing, and cost-effectiveness features. Because
storage resources are highly scalable, clients can alter their storage capacity as
needed without having to change their actual hardware.
o In comparison to conventional on-premises hardware architecture, virtualized
computing resources have better scalability, flexibility, and cost-effectiveness.
Without making expensive hardware investments or taking care of their own data
centers, customers may rent the computing capabilities they require on demand
and only pay for what they use.
Advantages of IaaS Cloud Computing Layer
There are the following advantages of the IaaS computing layer -
1. Shared infrastructure
IaaS allows multiple users to share the same physical infrastructure.
2. Web access to the resources
Iaas allows IT users to access resources over the internet.
3. Pay-as-per-use model
IaaS providers provide services based on a pay-as-per-use basis. The users are required
to pay for what they have used.
4. Focus on the core business
IaaS providers focus on the organization's core business rather than on IT infrastructure.
5. On-demand scalability
On-demand scalability is one of the biggest advantages of IaaS. Using IaaS, users do not
worry about upgrading software and troubleshooting issues related to hardware
components.
Disadvantages of IaaS Cloud Computing Layer
Security: In the IaaS context, security is still a major problem. Although IaaS companies
have security safeguards in place, it is difficult to achieve 100% protection. To safeguard
their data and applications, customers must verify that the necessary security
configurations and controls are in place.
Maintenance and Upgrade: The underlying infrastructure is maintained by IaaS
service providers, but they are not required to automatically upgrade the operating
systems or software used by client applications. Compatibility problems could come
from this, making it harder for customers to maintain their current software.
Interoperability Issues: Interoperability Problems: Because of interoperability
problems, moving virtual machines (VMs) from one IaaS provider to another can be
difficult. As a result, consumers may find it challenging to transfer providers or integrate
their IaaS resources with other platforms or services. This may result in vendor lock-in.
Performance Variability: Due to shared resources and multi-tenancy, the performance
of VMs in the IaaS system can change. During times of high demand or while sharing
resources with other users on the same infrastructure, customers' performance may
fluctuate.
Dependency on Internet Connectivity: Internet access is crucial to IaaS, which is
largely dependent on it. Any interruptions or connectivity problems could hinder access
to cloud infrastructure and services, which would have an impact on productivity and
business operations.
Learning Curve and Complexity: Learning Curve and Complexity: Using and
administering IaaS calls for a certain amount of technical know-how and comprehension
of cloud computing principles. To efficiently use and manage the IaaS resources,
organizations may need to spend money on IT employee training or turn to outside
experts.
Cost Management: Cost Control: IaaS provides scalability and flexibility, but it can
also result in difficult cost control. In order to prevent unforeseen charges, customers
must keep an eye on and manage their resource utilization. Higher costs may be the result
of inefficient use of resources or improper resource allocation.
Some Important Points About IaaS Cloud Computing Layer
IaaS cloud computing platform cannot replace the traditional hosting method, but it
provides more than that, and each resource that is used are predictable as per the usage.
IaaS cloud computing platform may not eliminate the need for an in-house IT
department. It will be needed to monitor or control the IaaS setup. IT salary expenditure
might not reduce significantly, but other IT expenses can be reduced.
Breakdowns at the IaaS cloud computing platform vendors can bring your business to a
halt stage. Assess the IaaS cloud computing platform vendor's stability and finances.
Make sure that SLAs (i.e., Service Level Agreement) provide backups for data,
hardware, network, and application failures. Image portability and third-party support
are a plus point.
The IaaS cloud computing platform vendor can get access to your sensitive data. So,
engage with credible companies or organizations. Study their security policies and
precautions.
Top Iaas Providers who are providing IaaS cloud computing platform

Tata Communications InstaCompute InstaCompute is Tata Communications' IaaS


offering. InstaCompute data centers are located in Hyderabad and Singapore, with
operations in both countries.
IaaS Vendor Iaas Solution Details

The cloud computing platfo


Elastic, Elastic Compute
pioneer Amazon offers au
Cloud (EC2) MapReduce,
Amazon Web Services scaling, cloud monitoring,
Route 53, Virtual Private
load-balancing features as p
Cloud, etc.
of its portfolio.

Netmagic runs from d


centers in Mumbai, Chen
and Bangalore and a vir
Netmagic Solutions Netmagic IaaS Cloud
data center in the Un
States. Plans are underway
extend services to West Asi

The cloud computing platfo


Cloud servers, cloud files, vendor focuses primarily
Rackspace
cloud sites, etc. enterprise-level host
services.
RIDC supports both traditio
hosting and cloud servic
with data centers in Mum
Reliance Communications Reliance Internet Data Center Bangalore, Hyderabad,
Chennai. The cloud servi
offered by RIDC include I
and SaaS.

Sify's cloud comput


platform is powered by H
converged infrastructure. T
Sify Technologies Sify IaaS
vendor offers all three type
cloud services: IaaS, PaaS,
SaaS.

Platform as a Service | PaaS


Platform as a Service (PaaS) provides a runtime environment. It allows programmers to
easily create, test, run, and deploy web applications. You can purchase these applications
from a cloud service provider on a pay-as-per-use basis and access them using an Internet
connection. In PaaS, back-end scalability is managed by the cloud service provider, so
end-users do not need to worry about managing the infrastructure.

PaaS includes infrastructure (servers, storage, and networking) and platform


(middleware, development tools, database management systems, business intelligence,
and more) to support the web application life cycle.
Examples: Google App Engine, Force.com, Joyent, Azure.
Some of the Services Provided by PaaS are:
Programming Languages: A variety of programming languages are supported by PaaS
providers, allowing developers to choose their favorite language to create apps.
Languages including Java, Python, Ruby,.NET, PHP, and Node.js are frequently
supported.
Advertisement
Application Frameworks: Pre-configured application frameworks are offered by PaaS
platforms, which streamline the development process. These frameworks include
features like libraries, APIs, and tools for quick development, laying the groundwork for
creating scalable and reliable applications. Popular application frameworks include
Laravel, Django, Ruby on Rails, and Spring Framework.
Databases: Managed database services are provided by PaaS providers, making it
simple for developers to store and retrieve data. These services support relational
databases (like MySQL, PostgreSQL, and Microsoft SQL Server) and NoSQL databases
(like MongoDB, Cassandra, and Redis). For its database services, PaaS platforms often
offer automated backups, scalability, and monitoring tools.
Additional Tools and Services: PaaS providers provide a range of extra tools and
services to aid in the lifecycle of application development and deployment. These may
consist of the following:
o Development Tools: to speed up the development process, these include
integrated development environments (IDEs), version control systems, build and
deployment tools, and debugging tools.
o Collaboration and Communication: PaaS platforms frequently come with
capabilities for team collaboration, including chat services, shared repositories,
and project management software.
o Analytics and Monitoring: PaaS providers may give tools for tracking
application performance, examining user behavior data, and producing insights to
improve application behavior and address problems.
o Security and Identity Management: PaaS systems come with built-in security
features like access control, encryption, and mechanisms for authentication and
authorization to protect the privacy of applications and data.
o Scalability and load balancing: PaaS services frequently offer automatic scaling
capabilities that let applications allocate more resources as needed to manage a
spike in traffic or demand. To improve performance and availability, load
balancing features divide incoming requests among various instances of the
application.
Because of the services offered by PaaS platforms, developers may concentrate on
creating applications rather than worrying about the infrastructure, middleware, or
database management that supports them. A streamlined and effective environment is
provided by PaaS for developing, deploying, and managing applications.
Development and Deployment Tools:
For the creation and deployment of software applications, Platform as a Service (PaaS)
provides a vast array of tools, libraries, and services. The following are some of the
essential tools and services that PaaS companies provide:
o Development Tools: To assist developers in writing and testing their code, PaaS
providers provide a variety of development tools, including integrated
development environments (IDEs), software development kits (SDKs), and
programming languages. These tools are frequently accessible via a web-based
interface, making using them from any location simple.
o Tools for Deployment: PaaS providers offer tools for deployment that make it
simple for developers to upload their apps to the cloud. These technologies
automate processes like scalability, configuration management, and code
deployment.
o Database Administration: PaaS companies provide tools and services for
database management to assist developers in creating and maintaining their
databases. This comprises backup and recovery services and tools for database
design, migration, and replication.
o Integration with Other Services: PaaS companies offer integration with outside
services, including analytics platforms, messaging services, and payment
gateways. This eliminates the need for writing proprietary code and enables
developers to quickly integrate these services into their applications.
o Security: To assist developers in protecting their apps and data, PaaS providers
offer security tools and services. This includes tools like firewalls, access controls,
and encryption, in addition to adherence to regulatory requirements like GDPR
and HIPAA.
o Analytical and Monitoring Tools: These are provided by PaaS providers to assist
developers in keeping track of the functionality of their apps and spotting
problems. These technologies offer in-the-moment insights into resource use,
application usage, and other indicators.
In conclusion, PaaS provides a variety of instruments, resources, and services to aid in
the creation and distribution of software applications.
Development, database administration, deployment, integration with outside services,
analytics and monitoring, and security tools and services are some of the tools that fall
under this category.
Developers can build, test, deploy, and manage their apps on a complete platform
provided by PaaS providers without the need for complicated infrastructure.
Advantages of PaaS
There are the following advantages of PaaS -
1) Simplified Development
PaaS allows developers to focus on development and innovation without worrying about
infrastructure management.
2) Lower risk
No need for up-front investment in hardware and software. Developers only need a PC
and an internet connection to start building applications.
3) Prebuilt business functionality
Some PaaS vendors also provide already defined business functionality so that users can
avoid building everything from very scratch and hence can directly start the projects
only.
4) Instant community
PaaS vendors frequently provide online communities where the developer can get ideas,
share experiences, and seek advice from others.
5) Scalability
Applications deployed can scale from one to thousands of users without any changes to
the applications.
Disadvantages of PaaS Loud Computing Layer
1) Vendor lock-in
One has to write the applications according to the platform provided by the PaaS vendor,
so the migration of an application to another PaaS vendor would be a problem.
2) Data Privacy
Corporate data, whether it can be critical or not, will be private, so if it is not located
within the walls of the company, there can be a risk in terms of privacy of data.
3) Integration with the rest of the systems applications
It may happen that some applications are local, and some are in the cloud. So there will
be chances of increased complexity when we want to use data in the cloud with the local
data.
4) Limited Customization and Control: The degree of customization and control over
the underlying infrastructure is constrained by PaaS platforms' frequent provision of pre-
configured services and their relative rigidity.
Organizations can evaluate the viability of PaaS solutions for their unique requirements
by taking into account these characteristics, as well as the trade-offs and potential
difficulties involved in implementing such platforms.
Popular PaaS Providers
The below table shows some popular PaaS providers and services that are provided by
them -

Providers Services

App Identity, URL Fetch, Cloud storage cli


Google App Engine (GAE)
library, Logservice

Faster implementation, Rapid scalability, CR


Salesforce.com Services, Sales cloud, Mobile connectiv
Chatter.

Windows Azure Compute, security, IoT, Data Storage.


AppFog Justcloud.com, SkyDrive, GoogleDocs

Openshift RedHat, Microsoft Azure.

Cloud Foundry from VMware Data, Messaging, and other services.

Software as a Service | SaaS


SaaS is also known as "On-Demand Software." It is a software distribution model in
which services are hosted by a cloud service provider. These services are available to
end-users over the internet, so the end-users do not need to install any software on their
devices to access these services.

Characteristics of SaaS:
o Web-based Delivery: SaaS apps can be accessed from anywhere with an internet
connection because they are supplied over the internet, often through a web
browser. Users no longer need to install and maintain software programs on their
local machines as a result.
o Multiple Users or "tenants" can access SaaS applications from a single instance
of the program thanks to the concept of multi-tenancy. As a result, the provider
can serve several clients with the same application without administering unique
program instances for every client.
o Automatic Updates: SaaS providers are in charge of keeping the software up to
date and making sure that everyone has access to the newest features and security
patches. Users are no longer required to manually install updates or fixes as a
result.
o Scalable: SaaS systems are scalable, which can readily grow or shrink in response
to user demand. This frees up enterprises from worrying about infrastructure or
licensing fees and lets them add or remove users as needed.
o Pricing on a Subscription Basis: SaaS programs are frequently sold using a
subscription-based pricing model, in which customers pay a monthly or yearly
price to access the program. As a result, companies won't need to invest
significantly in software licenses upfront.
o Data Security, including data encryption, access restrictions, and backups, is the
responsibility of SaaS providers. Users no longer need to handle their own data
security because of this.
In conclusion, SaaS is a type of cloud computing where software applications are
distributed online.
Web-based SaaS solutions provide multi-tenancy, providing data protection, automatic
updates, scalability, and subscription-based pricing. Businesses can access and use
software applications cost-effectively with SaaS without having to worry about
infrastructure or program upkeep.
Access to Software Applications Over the Internet:
o The majority of the time, SaaS companies host software programs on their own
servers and provide them online. Using their login information, users can access
the software through a web browser or mobile app, authenticating and gaining
access to it.
o Users don't need to install or maintain any software on their local machines
because the provider hosts and maintains it. As a result, users may easily access
the program from any location with an internet connection and on any device that
can run mobile apps or web surfing.
o All users have access to the most recent features and security updates because the
provider is in charge of keeping the program updated and maintained. Users are
no longer required to manually install updates or fixes as a result.
o Users often pay a monthly or yearly charge to access the software through
subscription-based SaaS providers. Because they don't have to make a significant
upfront investment in software licenses, businesses are able to budget for their
software costs more effectively as a result.
o In general, SaaS gives enterprises a practical way to use and access software
programs without having to worry about infrastructure or software upkeep.
Providers are in charge of keeping the software up to date so that all users have
access to the newest features and security patches. Users can access the software
from any location with an internet connection.
Pricing Models: Subscription or User-Based
o Most SaaS companies use a subscription-based pricing structure; however, some
may also provide a usage-based pricing structure. Users that choose a
subscription-based pricing model for their software access pay a set monthly or
yearly charge.
o The cost may vary according to the usage of the software's capabilities or the
number of users. Businesses benefit from predictability and consistency thanks to
this strategy because they can more efficiently budget for their software expenses.
o In a usage-based pricing model, the costs are determined by how the program is
actually used, such as the volume of data processed, the number of API requests,
or the number of transactions.
o For companies with erratic usage patterns or those that only want the program
sometimes, this model may be more adaptable and economical.
o According to their business strategy and the demands of their clients, SaaS
providers may offer either a subscription-based or a usage-based pricing plan.
SaaS offers organizations a cost-effective option to access and use software
products without having to worry about infrastructure or software maintenance,
regardless of the price model.
Services Provided by SaaS:
Business Services - SaaS Provider provides various business services to start up the
business. The SaaS business services include ERP (Enterprise Resource Planning), CRM
(Customer Relationship Management), billing, and sales.
Advertisement
Document Management - SaaS document management is a software application
offered by a third party (SaaS provider) to create, manage, and track electronic
documents.
Examples: Slack, Samepage, Box, and Zoho Forms.
Social Networks - As we all know, social networking sites are used by the general
public, so social networking service providers use SaaS for their convenience and handle
the general public's information.
Mail Services - To handle the unpredictable number of users and load on e-mail services,
many e-mail providers offer their services using SaaS.
Collaboration Tools: SaaS companies provide collaboration solutions that let teams
collaborate effectively no matter where they are physically located. Platforms for project
management, apps for team communication, and file-sharing services are some of these
resources.
Examples include Slack, Microsoft Office 365, and Google Workspace (formerly G
Suite).
Human Resources Management: SaaS-based HR management systems give
companies tools to simplify key HR procedures, such as employee onboarding, payroll
administration, timekeeping, performance reviews, and employee self-service portals.
Workday, BambooHR, and ADP Workforce Now, as examples.
Customer Support and Help Desk: SaaS platforms provide customer support and help
desk solutions that enable firms to manage customer inquiries, track support tickets, and
promptly address customer issues.
For instance, Salesforce Service Cloud, Freshdesk, and Zendesk.
Marketing and Sales Automation: To increase productivity and boost income, firms
can automate marketing campaigns, lead generation, customer relationship management,
and sales activities using SaaS marketing and sales automation technologies.
Examples include Marketo, Pardot, and HubSpot.
E-commerce Platforms: SaaS-based e-commerce platforms make it simpler for
businesses to launch and run online storefronts, maintain product catalogs, handle
payments, and keep track of orders.
Examples include WooCommerce (a WordPress plugin), BigCommerce, and Shopify.
Advantages of SaaS Cloud Computing Layer
1. SaaS is easy to buy
SaaS pricing is based on a monthly fee or annual fee subscription, so it allows
organizations to access business functionality at a low cost, which is less than licensed
applications.
Unlike traditional software, which is sold as a licensed base with an up-front cost (and
often an optional ongoing support fee), SaaS providers are generally pricing the
applications using a subscription fee, most commonly a monthly or annual fee.
2. One to Many
SaaS services are offered as a one-to-many model means a single instance of the
application is shared by multiple users.
3. Less hardware required for SaaS
The software is hosted remotely, so organizations do not need to invest in additional
hardware.
4. Low maintenance required for SaaS
Software as a service removes the need for installation, set-up, and daily maintenance
for organizations. The initial set-up cost for SaaS is typically less than the enterprise
software. SaaS vendors are pricing their applications based on some usage parameters,
such as the number of users using the application. So SaaS does easy to monitor and
automatic updates.
5. No special software or hardware versions are required
All users will have the same version of the software and typically access it through the
web browser. SaaS reduces IT support costs by outsourcing hardware and software
maintenance and support to the IaaS provider.
6. Multidevice support
SaaS services can be accessed from any device, such as desktops, laptops, tablets,
phones, and thin clients.
7. API Integration
SaaS services easily integrate with other software or services through standard APIs.
8. No client-side installation
SaaS services are accessed directly from the service provider using an internet
connection, so they do not need to require any software installation.
Disadvantages of SaaS Cloud Computing Layer:
1) Security
Actually, data is stored in the cloud, so security may be an issue for some users. However,
cloud computing is not more secure than in-house deployment.
2) Latency issue
Since data and applications are stored in the cloud at a variable distance from the end-
user, there is a possibility that there may be greater latency when interacting with the
application compared to local deployment. Therefore, the SaaS model is not suitable for
applications whose demand response time is in milliseconds.
3) Total Dependency on the Internet
Without an internet connection, most SaaS applications are not usable.
4) Switching between SaaS vendors is difficult
Switching SaaS vendors involves the difficult and slow task of transferring very large
data files over the internet and then converting and importing them into another SaaS
also.
Popular SaaS Providers
The below table shows some popular SaaS providers and services that are provided by
them -
Provider Services

Salseforce.com On-demand CRM solutions

Microsoft Office 365 Online office suite

Google Apps Gmail, Google Calendar, Docs, and sites

ERP, accounting, order management, CR


NetSuite Professionals Services Automation (PSA),
e-commerce applications.

Online meeting and video-conferenc


GoToMeeting
software

E-mail marketing, online survey, and ev


Constant Contact
marketing
Oracle CRM CRM applications

Human capital management, payroll,


Workday, Inc
financial management.

You might also like