COMPUTING PARADIGMS
Over the years different computing paradigms have been developed
and used. In fact different computing paradigms have existed before the
cloud computing paradigm. Let us take a look at all the computing
paradigms below.
1. Distributed Computing :
Distributed computing is defined as a type of computing where
multiple computer systems work on a single problem. Here all the
computer systems are linked together and the problem is divided into
sub-problems where each part is solved by different computer
systems.
The goal of distributed computing is to increase the performance and
efficiency of the system and ensure fault tolerance.
In the below diagram, each processor has its own local memory and
all the processors communicate with each other over a network.
2. Parallel Computing :
Parallel computing is defined as a type of computing where multiple
computer systems are used simultaneously. Here a problem is broken
into sub-problems and then further broken down into instructions.
These instructions from each sub-problem are executed concurrently
on different processors.
Here in the below diagram you can see how the parallel computing
system consists of multiple processors that communicate with each
other and perform multiple tasks over a shared memory
simultaneously.
The goal of parallel computing is to save time and provide
concurrency.
3. Cluster Computing :
A cluster is a group of independent computers that work together to
perform the tasks given.
Cluster computing is defined as a type of computing that consists of
two or more independent computers, referred to as nodes, that work
together to execute tasks as a single machine.
The goal of cluster computing is to increase the performance,
scalability and simplicity of the system.
As you can see in the below diagram, all the nodes, (irrespective of
whether they are a parent node or child node), act as a single entity
to perform the tasks.
4. Grid Computing :
Grid computing is defined as a type of computing where it is constitutes a
network of computers that work together to perform tasks that may be
difficult for a single machine to handle. All the computers on that network
work under the same umbrella and are termed as a virtual super computer.
The tasks they work on is of either high computing power and consist of
large data sets.
All communication between the computer systems in grid computing is
done on the “data grid”.
The goal of grid computing is to solve more high computational problems
in less time and improve productivity.
5. Utility Computing :
Utility computing is defined as the type of computing where the service
provider provides the needed resources and services to the customer and
charges them depending on the usage of these resources as per requirement
and demand, but not of a fixed rate.
Utility computing involves the renting of resources such as hardware,
software, etc. depending on the demand and the requirement.
The goal of utility computing is to increase the usage of resources and be
more cost-efficient.
6. Edge Computing :
Edge computing is defined as the type of computing that is focused on
decreasing the long distance communication between the client and the
server. This is done by running fewer processes in the cloud and moving
these processes onto a user’s computer, IoT device or edge device/server.
The goal of edge computing is to bring computation to the network’s edge
which in turn builds less gap and results in better and closer interaction.
7. Fog Computing :
Fog computing is defined as the type of computing that acts a
computational structure between the cloud and the data producing devices.
It is also called as “fogging”.
This structure enables users to allocate resources, data, applications in
locations at a closer range within each other.
The goal of fog computing is to improve the overall network efficiency and
performance.
8. Cloud Computing :
Cloud is defined as the usage of someone else’s server to host, process or
store data.
Cloud computing is defined as the type of computing where it is the delivery
of on-demand computing services over the internet on a pay-as-you-go
basis. It is widely distributed, network-based and used for storage.
There type of cloud are public, private, hybrid and community and some
cloud providers are Google cloud, AWS, Microsoft Azure and IBM cloud.
Cloud Computing Fundamentals
COMPUTE
Instead of provisioning your server in a local data center, you can
outsource the computing power needed by your server from a cluster of
virtual machines in the Cloud. Compute is the processing power required by
applications and systems to process data and carry out computational
tasks.
The compute capacity of a virtual machine solely depends on the hardware
resources attributed to its host computer. The compute resources refer to
the CPU, Storage, Memory, and the Network Bandwidth available to the
machine where your VM is running. Today, most cloud service providers
have done a pretty good job designing a wide selection of pre-configured
machines that can accommodate a variety of workloads.
STORAGE
The main benefit of storing data in the cloud is the convenience of
increasing your storage capacity without maintaining and buying more local
hard drives. You cannot prevent data corruption from happening in the
event of a hard disk failure. In the cloud, your data is stored persistently
across logical pools in physical storage hosted by your cloud service provider.
You can store different types of data such as objects, files, and backups.
DATABASE
The database is a system that stores and manages structured and
unstructured information. Databases in the cloud are typically managed
and offered as a service by a cloud service provider. This means that
maintaining and updating the underlying components of your database
instance, such as OS updates and software patches, are no longer your
responsibility. Databases in the cloud are also scalable and highly available
in nature.
NETWORKING
The cloud is a large ecosystem of computers that communicate and integrate
with each other to deliver a specific service to customers. Cloud service
providers make sure that they always maintain a high-speed network
connection within their infrastructures to support the needs of their end-
users. You can use the cloud to provide a global link to distribute your
application all over the world.
SECURITY
In the cloud, data is stored in secured remote data center facilities. This
means that threats like theft and data breach are unlikely going to happen.
As a cloud user, your responsibility is more on data management. The cloud
has sets of tools to help you enforce high levels of security. For example, you
have control on the encryption and decryption of your data. You can also
choose to authenticate and authorize selected users and services to access
your applications.
History of Cloud Computing
Before emerging the cloud computing, there was Client/Server
computing which is basically a centralized storage in which all the software
applications, all the data and all the controls are resided on the server side.
If a single user wants to access specific data or run a program, he/she need
to connect to the server and then gain appropriate access, and then he/she
can do his/her business.
Then after, distributed computing came into picture, where all the
computers are networked together and share their resources when needed.
On the basis of above computing, there was emerged of cloud computing
concepts that later implemented.
At around in 1961, John MacCharty suggested in a speech at MIT that
computing can be sold like a utility, just like a water or electricity. It was a
brilliant idea, but like all brilliant ideas, it was ahead if its time, as for the
next few decades, despite interest in the model, the technology simply was
not ready for it.
But of course time has passed and the technology caught that idea and after
few years we mentioned that:
In 1999, Salesforce.com started delivering of applications to users using a
simple website. The applications were delivered to enterprises over the
Internet, and this way the dream of computing sold as utility were true.
In 2002, Amazon started Amazon Web Services, providing services like
storage, computation and even human intelligence. However, only starting
with the launch of the Elastic Compute Cloud in 2006 a truly commercial
service open to everybody existed.
In 2009, Google Apps also started to provide cloud computing enterprise
applications.
Of course, all the big players are present in the cloud computing evolution,
some were earlier, some were later. In 2009, Microsoft launched Windows
Azure, and companies like Oracle and HP have all joined the game. This
proves that today, cloud computing has become mainstream.
Cloud Computing Architecture & Management
cloud computing technology is used by both small and large
organizations to store the information in cloud and access it from anywhere
at anytime using the internet connection.
Cloud computing architecture is a combination of service-oriented
architecture and event-driven architecture.
Cloud computing architecture is divided into the following two parts -
o Front End
o Back End
The below diagram shows the architecture of cloud computing -
Front End
The front end is used by the client. It contains client-side interfaces
and applications that are required to access the cloud computing platforms.
The front end includes web servers (including Chrome, Firefox, internet
explorer, etc.), thin & fat clients, tablets, and mobile devices.
Back End
The back end is used by the service provider. It manages all the
resources that are required to provide cloud computing services. It includes
a huge amount of data storage, security mechanism, virtual machines,
deploying models, servers, traffic control mechanisms, etc.
Components of Cloud Computing Architecture
There are the following components of cloud computing architecture -
1. Client Infrastructure
Client Infrastructure is a Front end component. It provides GUI (Graphical
User Interface) to interact with the cloud.
2. Application
The application may be any software or platform that a client wants to
access.
3. Service
A Cloud Services manages that which type of service you access according to
the client’s requirement.
Cloud computing offers the following three type of services:
i. Software as a Service (SaaS) – It is also known as cloud application
services. Mostly, SaaS applications run directly through the web browser
means we do not require to download and install these applications. Some
important example of SaaS is given below –
Example: Google Apps, Salesforce Dropbox, Slack, Hubspot, Cisco WebEx.
ii. Platform as a Service (PaaS) – It is also known as cloud
platform services. It is quite similar to SaaS, but the difference is that PaaS
provides a platform for software creation, but using SaaS, we can access
software over the internet without the need of any platform.
Example: Windows Azure, Force.com, Magento Commerce Cloud, OpenShift.
iii. Infrastructure as a Service (IaaS) – It is also known as cloud
infrastructure services. It is responsible for managing applications data,
middleware, and runtime environments.
Example: Amazon Web Services (AWS) EC2, Google Compute Engine (GCE),
Cisco Metapod.
4. Runtime Cloud
Runtime Cloud provides the execution and runtime environment to the
virtual machines.
5. Storage
Storage is one of the most important components of cloud computing. It
provides a huge amount of storage capacity in the cloud to store and manage
data.
6. Infrastructure
It provides services on the host level, application level, and network level.
Cloud infrastructure includes hardware and software components such as
servers, storage, network devices, virtualization software, and other storage
resources that are needed to support the cloud computing model.
7. Management
Management is used to manage components such as application, service,
runtime cloud, storage, infrastructure, and other security issues in the
backend and establish coordination between them.
8. Security
Security is an in-built back end component of cloud computing. It
implements a security mechanism in the back end.
9. Internet
The Internet is medium through which front end and back end can interact
and communicate with each other.
Cloud Computing Deployment Models
Most cloud hubs have tens of thousands of servers and storage devices
to enable fast loading. It is often possible to choose a geographic area to put
the data "closer" to users. Thus, deployment models for cloud computing are
categorized based on their location. To know which model would best fit the
requirements of your organization, let us first learn about the various types.
Public Cloud
The name says it all. It is accessible to the public. Public deployment
models in the cloud are perfect for organizations with growing and
fluctuating demands. It also makes a great choice for companies with low-
security concerns. Thus, you pay a cloud service provider for networking
services, compute virtualization & storage available on the public internet.
It is also a great delivery model for the teams with development and testing.
Its configuration and deployment are quick and easy, making it an ideal
choice for test environments.
Benefits of Public Cloud
o Minimal Investment - As a pay-per-use service, there is no large
upfront cost and is ideal for businesses who need quick access to
resources
o No Hardware Setup - The cloud service providers fully fund the entire
Infrastructure
o No Infrastructure Management - This does not require an in-house
team to utilize the public cloud.
Limitations of Public Cloud
o Data Security and Privacy Concerns - Since it is accessible to all, it
does not fully protect against cyber-attacks and could lead to
vulnerabilities.
o Reliability Issues - Since the same server network is open to a wide
range of users, it can lead to malfunction and outages
o Service/License Limitation - While there are many resources you can
exchange with tenants, there is a usage cap.
Private Cloud
Now that you understand what the public cloud could offer you, of
course, you are keen to know what a private cloud can do. Companies that
look for cost efficiency and greater control over data & resources will find
the private cloud a more suitable choice.
It means that it will be integrated with your data center and managed by
your IT team. Alternatively, you can also choose to host it externally. The
private cloud offers bigger opportunities that help meet specific
organizations' requirements when it comes to customization. It's also a wise
choice for mission-critical processes that may have frequently changing
requirements.
Benefits of Private Cloud
o Data Privacy - It is ideal for storing corporate data where only
authorized personnel gets access
o Security - Segmentation of resources within the same Infrastructure
can help with better access and higher levels of security.
o Supports Legacy Systems - This model supports legacy systems that
cannot access the public cloud.
Limitations of Private Cloud
o Higher Cost - With the benefits you get, the investment will also be
larger than the public cloud. Here, you will pay for software, hardware,
and resources for staff and training.
o Fixed Scalability - The hardware you choose will accordingly help you
scale in a certain direction
o High Maintenance - Since it is managed in-house, the maintenance
costs also increase.
Community Cloud
The community cloud operates in a way that is similar to the public cloud.
There's just one difference - it allows access to only a specific set of users
who share common objectives and use cases. This type of deployment model
of cloud computing is managed and hosted internally or by a third-party
vendor. However, you can also choose a combination of all three.
Benefits of Community Cloud
o Smaller Investment - A community cloud is much cheaper than the
private & public cloud and provides great performance
o Setup Benefits - The protocols and configuration of a community
cloud must align with industry standards, allowing customers to work
much more efficiently.
Limitations of Community Cloud
o Shared Resources - Due to restricted bandwidth and storage capacity,
community resources often pose challenges.
o Not as Popular - Since this is a recently introduced model, it is not
that popular or available across industries
Hybrid Cloud
As the name suggests, a hybrid cloud is a combination of two or more
cloud architectures. While each model in the hybrid cloud functions
differently, it is all part of the same architecture. Further, as part of this
deployment of the cloud computing model, the internal or external
providers can offer resources.
Let's understand the hybrid model better. A company with critical data will
prefer storing on a private cloud, while less sensitive data can be stored on a
public cloud. The hybrid cloud is also frequently used for 'cloud bursting'. It
means, supposes an organization runs an application on-premises, but due
to heavy load, it can burst into the public cloud.
Benefits of Hybrid Cloud
o Cost-Effectiveness - The overall cost of a hybrid solution decreases
since it majorly uses the public cloud to store data.
o Security - Since data is properly segmented, the chances of data theft
from attackers are significantly reduced.
o Flexibility - With higher levels of flexibility, businesses can create
custom solutions that fit their exact requirements
Limitations of Hybrid Cloud
o Complexity - It is complex setting up a hybrid cloud since it needs to
integrate two or more cloud architectures
o Specific Use Case - This model makes more sense for organizations
that have multiple use cases or need to separate critical and sensitive
data
Cloud Storage
Cloud Storage is a mode of computer data storage in which digital data is
stored on servers in off-site locations. The servers are maintained by a third
-party provider who is responsible for hosting, managing, and securing data
stored on its infrastructure. The provider ensures that data on its servers is
always accessible via public or private internet connections.
Cloud Storage enables organizations to store, access, and maintain data so
that they do not need to own and operate their own data centers, moving
expenses from a capital expenditure model to operational. Cloud Storage is
scalable, allowing organizations to expand or reduce their data footprint
depending on need.
Google Cloud provides a variety of scalable options for organizations to
store their data in the cloud. Learn more about Cloud Storage at Google
Cloud.
Why Cloud Computing Matters
For developers, cloud computing provides increased amounts of
storage and processing power to run the applications they develop. Cloud
computing also enables new ways to access information, process and analyze
data, and connect people and resources from any location anywhere in the
world. In essence, it takes the lid off the box; with cloud computing,
developers are no longer boxed in by physical constraints.
For IT departments, cloud computing offers more flexibility in computing
power, often at lower costs. With cloud computing, IT departments don't
have to engineer for peak-load capacity, because the peak load can be
spread out among the external assets in the cloud. And, because additional
cloud resources are always at the ready, companies no longer have to
purchase assets (servers, workstations, and the like) for infrequent
intensive computing tasks. If you need more processing power, it's always
there in the cloud—and accessible on a cost-efficient basis.
For end users, cloud computing offers all these benefits and more. An
individual using a web-based application isn't physically bound to a single
PC, location, or network. His applications and documents can be accessed
wherever he is, whenever he wants. Gone is the fear of losing data if a
computer crashes. Documents hosted in the cloud always exist, no matter
what happens to the user's machine.
And then there's the benefit of group collaboration, for both individuals and
organizations. Users from around the world can collaborate on the same
documents, applications, and projects, in real time. It's a whole new world of
collaborative computing, all enabled by the notion of cloud computing.
For everyone concerned, cloud computing does all this at lower costs,
because the cloud enables more efficient sharing of resources than does
traditional network computing. When you tap into the power of the cloud,
you get supercomputing power at PC prices—something that offers
particular appeal to individuals and small businesses. And, with cloud
computing, hardware doesn't have to be physically adjacent to a firm's office
or data center; cloud infrastructure can be located anywhere, including and
especially areas with lower real estate and electricity costs.
Advantages of Cloud Computing
Cost Savings
Cost saving is one of the biggest Cloud Computing benefits. It helps you to
save substantial capital cost as it does not need any physical hardware
investments. Also, you do not need trained personnel to maintain the
hardware. The buying and managing of equipment is done by the cloud
service provider.
Strategic edge
Cloud computing offers a competitive edge over your competitors. It is one
of the best advantages of Cloud services that helps you to access the latest
applications any time without spending your time and money on
installations.
High Speed
Cloud computing allows you to deploy your service quickly in fewer clicks.
This faster deployment allows you to get the resources required for your
system within fewer minutes.
Back-up and restore data
Once the data is stored in a Cloud, it is easier to get the back-up and
recovery of that, which is otherwise very time taking process on-premise.
Automatic Software Integration
In the cloud, software integration is something that occurs automatically.
Therefore, you don’t need to take additional efforts to customize and
integrate your applications as per your preferences.
Reliability
Reliability is one of the biggest benefits of Cloud hosting. You can always get
instantly updated about the changes.
Mobility
Employees who are working on the premises or at the remote locations can
easily access all the could services. All they need is an Internet connectivity.
Unlimited storage capacity
The cloud offers almost limitless storage capacity. At any time you can
quickly expand your storage capacity with very nominal monthly fees.
Collaboration
The cloud computing platform helps employees who are located in different
geographies to collaborate in a highly convenient and secure manner.
Quick Deployment
Last but not least, cloud computing gives you the advantage of rapid
deployment. So, when you decide to use the cloud, your entire system can be
fully functional in very few minutes. Although, the amount of time taken
depends on what kind of technologies are used in your business
Disadvantages of Cloud Computing
Performance Can Vary
When you are working in a cloud environment, your application is running
on the server which simultaneously provides resources to other businesses.
Any greedy behavior or DDOS attack on your tenant could affect the
performance of your shared resource.
Technical Issues
Cloud technology is always prone to an outage and other technical issues.
Even, the best cloud service provider companies may face this type of
trouble despite maintaining high standards of maintenance.
Security Threat in the Cloud
Another drawback while working with cloud computing services is security
risk. Before adopting cloud technology, you should be well aware of the fact
that you will be sharing all your company’s sensitive information to a third-
party cloud computing service provider. Hackers might access this
information.
Downtime
Downtime should also be considered while working with cloud computing.
That’s because your cloud provider may face power loss, low internet
connectivity, service maintenance, etc.
Internet Connectivity
Good Internet connectivity is a must in cloud computing. You can’t access
cloud without an internet connection. Moreover, you don’t have any other
way to gather data from the cloud.
Lower Bandwidth
Many cloud storage service providers limit bandwidth usage of their users.
So, in case if your organization surpasses the given allowance, the
additional charges could be significantly costly
Lacks of Support
Cloud Computing companies fail to provide proper support to the customers.
Moreover, they want their user to depend on FAQs or online help, which can
be a tedious job for non-technical persons
Cloud Services
Cloud services are infrastructure, platforms, or software that are hosted by
third-party providers and made available to users through the internet.
Cloud services facilitate the flow of user data from front-end clients (e.g.,
users’ servers, tablets, desktops, laptops—anything on the users’ ends),
through the internet, to the provider’s systems, and back. Cloud services
promote the building of cloud-native applications and the flexibility of
working in the cloud. Users can access cloud services with nothing more than
a computer, operating system, and internet connectivity.
Examples of cloud services
All infrastructure, platforms, software, or technologies that users access
through the internet without requiring additional software downloads can be
considered cloud computing services—including the following as-a-Service
solutions.
Infrastructure-as-a-Service (IaaS) provides users with compute,
networking, and storage resources.
Platforms-as-a-Service (PaaS) provides users with a platform on
which applications can run, as well as all the IT infrastructure required for
it to run.
Software-as-a-Service (SaaS) provides users
with—essentially—a cloud application, the platform on which it runs, and
the platform’s underlying infrastructure.