Cloud Computing BCA
Cloud Computing BCA
The term Cloud refers to a Network or Internet. In other words, we can say that Cloud is
something, which is present at remote location. Cloud can provide services over network, i.e., on public
networks or on private networks, i.e., WAN, LAN or VPN.
Applications such as e-mail, web conferencing, customer relationship management (CRM),all run in
cloud.
Cloud Computing refers to manipulating, configuring, and accessing the applications online. It offers
online data storage, infrastructure and application.
We need not to install a piece of software on our local PC and this is how the cloud computing
overcomes platform dependency issues. Hence, the Cloud Computing is making our business application
mobile and collaborative.
Since the beginning days of computing, when mainframe computers were accessible remotely
through terminals, "cloud computing" has evolved. However, with the development of internet
technologies and the demand for more effective and scalable computing solutions in the 1990s and early
2000s, the idea of cloud computing as we know it today first emerged.
Client/Server Computing:
Before the advent of cloud computing, Client/Server computing was the dominant approach.
The server side of this architecture served as the central location for all software programs, data, and
controls. Users connected to the server and obtained the necessary access permissions to access specific
data or run programs. Networked computing was built on top of client/server computing, but it had
drawbacks in terms of resource efficiency and scalability.
The idea of distributed computing evolved as computers grew increasingly networked. Multiple
computers could cooperate and share resources and process. This model allowed for parallel processing
and increased efficiency by dividing tasks across various processors. The centralized approach underwent
a dramatic change with the advent of distributed computing, opening the door for more scalable and
adaptable computer structures.
Client/server and distributed computing paradigms served as the cornerstones for the paradigm
that eventually developed as cloud computing. The objective was to offer network-based, primarily the
Internet, on-demand access to shared computer resources and services. The goal of cloud computing
was to offer consumers flexible, scalable, and economical access to computing resources, storage, and
applications. It shifted the emphasis to distant services and pay-as-you-go business models from local
infrastructure and ownership.
During 1961, John MacCharty delivered his speech at MIT that “Computing Can be sold as a Utility, like
Water and Electricity.” According to John MacCharty it was a brilliant idea. But people at that time don’t
want to adopt this technology. They thought the technology they are using efficient enough for them.
So, this concept of computing was not appreciated much so and very less will research on it. But as the
time fleet the technology caught the idea after few years this idea is implemented. So, this is
implemented by Salesforce.com in 1999.
This company started delivering an enterprise application over the internet and this way the boom of
Cloud Computing was started.
In 2002, Amazon started Amazon Web Services (AWS), Amazon will provide storage, computation over
the internet. In 2006 Amazon will launch Elastic Compute Cloud Commercial Service which is open for
Everybody to use.
After that in 2009, Google Play also started providing Cloud Computing Enterprise Application as other
companies will see the emergence of cloud Computing they also started providing their cloud services.
Thus, in 2009, Microsoft launch Microsoft Azure and after that other companies like Alibaba, IBM,
Oracle, HP also introduces their Cloud Services. In today the Cloud Computing become very popular and
important skill.
Architecture of cloud computing is the combination of both SOA (Service Oriented Architecture) and EDA
(Event Driven Architecture).
1. Frontend
2. Backend
Frontend of the cloud architecture refers to the client side of cloud computing system. Means it contains
all the user interfaces and applications which are used by the client to access the cloud computing
services/resources. For example, use of a web browser to access the cloud platform.
2. Backend
Backend refers to the cloud itself which is used by the service provider. It contains the resources as well
as manages the resources and provides security mechanisms. Along with this, it includes huge storage,
virtual applications, virtual machines, traffic control mechanisms, deployment models, etc.
Client Infrastructure – Client Infrastructure is a part of the frontend component. It contains the
applications and user interfaces which are required to access the cloud platform. In other words,
it provides a GUI( Graphical User Interface ) to interact with the cloud.
Application: Application is a part of backend component that refers to a software or platform to
which client accesses. Means it provides the service in backend as per the client requirement.
Service: Service in backend refers to the major three types of cloud based services like SaaS,
PaaS and IaaS. Also manages which type of service the user accesses.
Runtime Cloud: Runtime cloud in backend provides the execution and Runtime
platform/environment to the Virtual machine.
Storage: Storage in backend provides flexible and scalable storage service and management of
stored data.
Infrastructure: Cloud Infrastructure in backend refers to the hardware and software components
of cloud like it includes servers, storage, network devices, virtualization software etc.
Management: Management in backend refers to management of backend components like
application, service, runtime cloud, storage, infrastructure, and other security mechanisms etc.
Security: Security in backend refers to implementation of different security mechanisms in the
backend for secure cloud resources, systems, files, and infrastructure to end-users.
Internet: Internet connection acts as the medium or a bridge between frontend and backend
and establishes the interaction and communication between frontend and backend.
Database: Database in backend refers to provide database for storing structured data, such as
SQL and NOSQL databases. Example of Databases services include Amazon RDS, Microsoft Azure
SQL database and Google CLoud SQL.
Networking: Networking in backend services that provide networking infrastructure for
application in the cloud, such as load balancing, DNS and virtual private networks.
Analytics: Analytics in backend service that provides analytics capabilities for data in the cloud,
such as warehousing, business intelligence and machine learning.
Cloud Storge
Cloud Storage is a service that allows to save data on offsite storage system managed by third-party and
is
Storage Devices
Block Storage Devices offer raw storage to the clients. This raw storage can be partitioned to create
volumes.
File Storage Devices offers storage to clients in form of files, maintaining its own file system. This storage
is in the form of Network Attached Storage (NAS).
Unmanaged Cloud Storage means that the storage is preconfigured for the consumer. The consumer
cannot format nor the consumer can install own file system or change drive properties.
Managed Cloud Storage offers online storage space on demand. Managed cloud storage system presents
what appears to the user to be a raw disk that the user can partition and format.
The cloud storage system stores multiple copies of data on multiple servers and in multiple locations. If
one system fails, then it only requires to change the pointer to stored object's location.
To aggregate storage assets into cloud storage systems, the cloud provider can use storage virtualization
software, StorageGRID. It creates a virtualization layer that fetches storage from different storage devices
into a single management system. It can also manage data from CIFS and NFS file system over the
Internet. The following diagram shows how SystemGRID virtualizes the storage into storage clouds:
Virtual storage containers offer high performance cloud storage systems. Logical Unit Number (LNU)of
device, files and other objects are created in virtual storage containers. Following diagram shows a
virtual storage container, defining a cloud storage domain:
Challenges
Storing the data in cloud is not that simple task. Apart from its flexibility and convenience, it also has
several challenges faced by the consumers. The consumers require ability to:
Provision additional storage on demand.
Know and restrict the physical location of the stored data.
Verify how data was erased?
Have access to a documented process for surely disposing of data storage hardware.
Administrator access control over data.
Cloud computing allows users to use computer applications, store files, and communicate and
collaborate with others using the internet instead of a local server. The word “cloud” is used as a
metaphor because the data is not stored locally and is transferred over the internet. Many cloud
computing applications are free to use, though some require a subscription fee. Cloud computing
applications are widely used and will likely be important to you and your organization.
For users, moving critical business activities to the cloud leads to greater productivity. Placing
your data stores and software services on the cloud means they are no longer stored on individual
servers or computers and are then available through a web-based interface. This allows users to access
services from wherever they are via a web connection to a cloud platform using almost any device. The
cloud makes collaboration easy and nearly effortless.
Cloud computing won't change the way your organization needs software services to be
delivered, but how the IT departments support their organizations. With cloud computing, you can reap
a number of benefits:
Infrastructure: Reduce hardware spending by sharing infrastructure and other resources on the cloud,
saving procurement cycles and money.
Scalability: Improve processing or store more data on the cloud with the ability to expand or reduce
computing resources as needed.
Automation: Reduce the need for additional personnel to manage software updates or version
compatibility with different operational systems and databases.
Mobility Access information from the cloud wherever and whenever via web browsers to improve
productivity of an increasingly mobile workforce.
Collaboration: Share documents, data and computing solutions in the cloud to reduce governance issues
related to platform accessibility.
Subscription: Transitioning to ongoing subscription licensing reduces the upfront expense to cloud
computing and provides an opportunity to use operational budgets rather than capital expenditures.
Pro and Cons of Cloud Computing (Advantages and Disadvantages of Cloud Computing)
Cost Reduction
The major reason companies shift towards cloud computing is that it takes lower costs. The business
does not need to build its own IT infrastructure or purchase hardware or equipment. Costs include
physical hardware for data storage purposes like hard drives, solid-state drives or disks, etc.
Better Collaboration
Cloud computing allows people to access cloud data from any device, from anywhere, from any time as
long as they have an internet connection.
Suppose the team is working remotely. The team is spread worldwide, so it is a good option to go ahead
with cloud computing as employees can access data from anywhere in the world, at any time, and from
any device.
As the data is stored in the cloud, it is a lot easier to get the backup and recovery of that data with just a
few clicks; otherwise, manually, it is a very time-consuming process on-premise.
Security
Due to different security reasons, cloud providers have designed very high-security cloud features so that
you can allow what data is accessible to which person groups.
Cloud providers also hire top security experts and develop the most advanced security solutions,
providing robust protection. Research by RapidScale says that 94% of businesses saw major security
improvements after switching to the cloud.
Pay as you go
Cloud computing allows you flexibility because you have to pay only for what you use as a service.
No storage capacity is predefined, so you can increase or decrease storage capacity according to your
needs at any time.
Accessibility
Cloud computing allows you to quickly and easily store, access, and manipulate information on the
cloud.
Mobility
Cloud computing allows easy access to all cloud data via mobile through the internet.
Quicker Deployments
Cloud computing allows us to deploy our services to the cloud more quickly and with fewer clicks. As
compared to setting up all the configurations on the normal deployments.
Cloud computing allows you to set automation of software updates and upgrades. So as soon as a newer
version of any software is released, it will automatically integrate into the services you are using.
Internet Connectivity
In cloud computing, data (files, images, video, audio, etc.) is stored in the cloud. So to access the data, an
internet connection is required. In the absence of the internet, we can't access it.
Downtime
We can't access the data if there is downtime (internet loss at the cloud provider's end). Other than this,
downtime also includes cloud providers that may face power loss, service maintenance, etc.
Vendor lock-in
When transferring all the data from one cloud provider to another, there can be many issues, such as the
different cloud providers using different platforms, hosting, and running of the applications on the
different platforms that can result in configuration and complexities issues.
The company data might be left vulnerable to security or thereat attacks due to compromises made
during the data migrations.
Limited Bandwidth
As the Cloud provider provides limited bandwidth to all its users, you have to pay significantly higher
costs if your organization surpasses that limit.
Security
Even though the cloud providers are storing information very securely, we still don't have to forget that
data is vulnerable to cyber-attacks when stored in the cloud. Many organizations and companies have
suffered from security breaches and their potential risks in the cloud.
Performance Variation
As the server is hosted on a cloud provider, which also provides services to other businesses, any
cyberattack on shared resources may slow down your services.
Some cloud companies do not provide proper support to their clients; then, you have to only depend on
FAQs or online help.
Limited Control and Flexibility
The cloud infrastructure is completely owned, managed, and monitored by the cloud providers. So
businesses using cloud computing have limited control over their data, applications, and services. It
makes it hard for companies to have the level of control they want over the different services they use.
The customer may not have access to key administrative services. So it's recommended that companies
have a proper end-user license agreement(EULA) so that what a company can do and what not with
cloud infrastructure is clearly defined.
Cloud Services:
Software as a Service(SaaS)
Software-as-a-Service (SaaS) is a way of delivering services and applications over the Internet.
Instead of installing and maintaining software, we simply access it via the Internet, freeing ourselves
from the complex software and hardware management. It removes the need to install and run
applications on our own computers or in the data centers eliminating the expenses of hardware as well
as software maintenance.
SaaS provides a complete software solution that you purchase on a pay-as-you-go basis from a
cloud service provider. Most SaaS applications can be run directly from a web browser without any
downloads or installations required. The SaaS applications are sometimes called Web-based software,
on-demand software, or hosted software.
Platform as a Service
PaaS is a category of cloud computing that provides a platform and environment to allow
developers to build applications and services over the internet. PaaS services are hosted in the cloud and
accessed by users simply via their web browser.
A PaaS provider hosts the hardware and software on its own infrastructure. As a result, PaaS
frees users from having to install in-house hardware and software to develop or run a new application.
Thus, the development and deployment of the application take place independent of the hardware.
The consumer does not manage or control the underlying cloud infrastructure including
network, servers, operating systems, or storage, but has control over the deployed applications and
possibly configuration settings for the application-hosting environment. To make it simple, take the
example of an annual day function, you will have two options either to create a venue or to rent a venue
but the function is the same.
Infrastructure as a Service
It is also known as Hardware as a Service (HaaS). IaaS customers pay on a per-user basis,
typically by the hour, week, or month. Some providers also charge customers based on the amount of
virtual machine space they use.
It simply provides the underlying operating systems, security, networking, and servers for
developing such applications, and services, and deploying development tools, databases, etc.
Anything as a Service
It is also known as Everything as a Service. Most of the cloud service providers nowadays offer
anything as a service that is a compilation of all of the above services including some additional services.
Function as a Service:
FaaS is a type of cloud computing service. It provides a platform for its users or customers to
develop, compute, run and deploy the code or entire application as functions. It allows the user to
entirely develop the code and update it at any time without worrying about the maintenance of the
underlying infrastructure. The developed code can be executed with response to the specific event. It is
also as same as PaaS.
FaaS is an event-driven execution model. It is implemented in the serverless container. When the
application is developed completely, the user will now trigger the event to execute the code. Now, the
triggered event makes response and activates the servers to execute it. The servers are nothing but the
Linux servers or any other servers which is managed by the vendor completely. Customer does not have
clue about any servers which is why they do not need to maintain the server hence it is serverless
architecture.
Both PaaS and FaaS are providing the same functionality but there is still some differentiation in
terms of Scalability and Cost.
FaaS, provides auto-scaling up and scaling down depending upon the demand. PaaS also
provides scalability but here users have to configure the scaling parameter depending upon the demand.
In FaaS, users only have to pay for the number of execution time happened. In PaaS, users have
to pay for the amount based on pay-as-you-go price regardless of how much or less they use.