Cloud Computing
Cloud computing architecture
As we know, 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 -
 Front End
 Back End
 The below diagram shows the architecture of cloud computing -
 • 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:
   1. 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.
   2. 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.
  3. 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.
On Demand computing virtualization at infrastructure level
Virtualization is used to create a virtual version of an underlying service With the help of
Virtualization, multiple operating systems and applications can run on the same machine and its same
hardware at the same time, increasing the utilization and flexibility of hardware. It was initially
developed during the mainframe era.
It is one of the main cost-effective, hardware-reducing, and energy-saving techniques used by cloud
providers. Virtualization allows sharing of a single physical instance of a resource or an application
among multiple customers and organizations at one time. It does this by assigning a logical name to
physical storage and providing a pointer to that physical resource on demand
   Host Machine: The machine on which the virtual machine is going to be built is known as Host
    Machine.
   Guest Machine: The virtual machine is referred to as a Guest Machine.
    Work of Virtualization in Cloud Computing
    Virtualization has a prominent impact on Cloud Computing. In the case of cloud computing, users store
    data in the cloud, but with the help of Virtualization, users have the extra benefit of sharing the
    infrastructure. Cloud Vendors take care of the required physical resources, but these cloud providers
    charge a huge amount for these services which impacts every user or organization. Virtualization helps
    Users or Organisations in maintaining those services which are required by a company through external
    (third-party) people, which helps in reducing costs to the company. This is the way through which
    Virtualization works in Cloud Computing.
    Types of Virtualization
1. Application Virtualization
2. Network Virtualization
3. Desktop Virtualization
4. Storage Virtualization
5. Server Virtualization
6. Data virtualization
  1. Application Virtualization: Application virtualization helps a user to have remote access to an
  application from a server. The server stores all personal information and other characteristics of the
  application but can still run on a local workstation through the internet. An example of this would be a
  user who needs to run two different versions of the same software. Technologies that use application
  virtualization are hosted applications and packaged applications.
  2. Network Virtualization: The ability to run multiple virtual networks with each having a separate
  control and data plan. It co-exists together on top of one physical network. It can be managed by
  individual parties that are potentially confidential to each other. Network virtualization provides a
  facility to create and provision virtual networks, logical switches, routers, firewalls, load balancers,
  Virtual Private Networks (VPN), and workload security within days or even weeks.
  3.Desktop Virtualization: Desktop virtualization allows the users’ OS to be remotely stored on a server
  in the data center. It allows the user to access their desktop virtually, from any location by a different
  machine. Users who want specific operating systems other than Windows Server will need to have a
    virtual desktop. The main benefits of desktop virtualization are user mobility, portability, and easy
    management of software installation, updates, and patches.
    4. Storage Virtualization: Storage virtualization is an array of servers that are managed by a virtual
    storage system. The servers aren’t aware of exactly where their data is stored and instead function more
    like worker bees in a hive. It makes managing storage from multiple sources be managed and utilized as
    a single repository. storage virtualization software maintains smooth operations, consistent performance,
    and a continuous suite of advanced functions despite changes, breaks down, and differences in the
    underlying equipment.
    5. Server Virtualization: This is a kind of virtualization in which the masking of server resources takes
    place. Here, the central server (physical server) is divided into multiple different virtual servers by
    changing the identity number, and processors. So, each system can operate its operating systems in an
    isolated manner. Where each sub-server knows the identity of the central server. It causes an increase in
    performance and reduces the operating cost by the deployment of main server resources into a sub-
    server resource. It’s beneficial in virtual migration, reducing energy consumption, reducing
    infrastructural costs, etc.
    6. Data Virtualization: This is the kind of virtualization in which the data is collected from various
    sources and managed at a single place without knowing more about the technical information like how
    data is collected, stored & formatted then arranged that data logically so that its virtual view can be
    accessed by its interested people and stakeholders, and users through the various cloud services
    remotely. Many big giant companies are providing their services like Oracle, IBM, At scale, Cdata, etc.
    Uses of Virtualization
   Data-integration
   Business-integration
   Service-oriented architecture data-services
   Searching organizational data
    CPU Virtualization
    CPU Virtualization emphasizes running programs and instructions through a virtual machine, giving the
    feeling of working on a physical workstation. All the operations are handled by an emulator that
    controls software to run according to it. Nevertheless, CPU Virtualization does not act as an emulator.
    The emulator performs the same way as a normal computer machine does. It replicates the same copy or
    data and generates the same output just like a physical machine does. The emulation function offers
    great portability and facilitates working on a single platform, acting like working on multiple platforms.
    1. Software-Based CPU Virtualization
    This CPU Virtualization is software-based where with the help of it, application code gets executed on
    the processor and the privileged code gets translated first, and that translated code gets executed directly
    on the processor. This translation is purely known as Binary Translation (BT). The code that gets
    translated is very large in size and also slow at the same time on execution. The guest programs that are
    based on privileged coding runs very smooth and fast. The code programs or the applications that are
    based on privileged code components that are significant such as system calls, run at a slower rate in the
    virtual environment.
    2. Hardware-Assisted CPU Virtualization
There is hardware that gets assistance to support CPU Virtualization from certain processors. Here, the
guest user uses a different version of code and mode of execution known as a guest mode. The guest
code mainly runs on guest mode. The best part in hardware-assisted CPU Virtualization is that there is
no requirement for translation while using it for hardware assistance. For this, the system calls runs
faster than expected. Workloads that require the updation of page tables get a chance of exiting from
guest mode to root mode that eventually slows down the program’s performance and efficiency.
3. Virtualization and Processor-Specific Behavior
Despite having specific software behavior of the CPU model, the virtual machine still helps in detecting
the processor model on which the system runs. The processor model is different based on the CPU and
the wide variety of features it offers, whereas the applications that produce the output generally utilize
such features. In such cases, vMotion cannot be used to migrate the virtual machines that are running on
feature-rich processors. Enhanced vMotion Compatibility easily handles this feature.
4. Performance Implications of CPU Virtualization
CPU Virtualization adds the amount of overhead based on the workloads and virtualization used. Any
application depends mainly on the CPU power waiting for the instructions to get executed first. Such
applications require the use of CPU Virtualization that gets the command or executions that are needed
to be executed first. This overhead takes the overall processing time and results in an overall
degradation in performance and CPU virtualisation execution.
  SPI framework and Traditional system model for cloud computing
The SPI model refers to the most common service models of cloud computing: software as a service
(SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS).
Cloud computing is a technology model in which a vendor provides hosted services to users over the
internet. Based on its business goals, an enterprise can choose to adopt one, or multiple, of the cloud
service types depicted in the SPI model:
     Traditional software model
Using the physical storage of data and developing your software within a closed environment has its
advantages, so when comparing software developed using cloud vs installed software, it is about
which one suits you and your organization. If your goal is to deliver services within the local server,
this might just be the right approach for you.
SPI model Vs traditional IT model
                                     Traditional IT model                SPI model
   Data access                       While in traditional                Is the ability to access
                                     computing, the user can             the data
                                     access data only on the             anywhere and anytime.
                                     system in which data as
                 to be stores
Automation &     No automatic                Automatic updates.no
maintenance      updates.Fully trained IT    need to
                 personnel need to regular   monitored.
                 monitoring and
                 maintenance of server.
Cost             Start up cost is high.      Low cost : pay for what
                                             you used
Security         Low security: the           high security : Data is
                 organization takes the      stored in 256 bit AES (
                 responsibility to protect   Advanced Encryption
                 the data                    Standard
                                             ) and customer account
                                             information is encrypted
                                             before
                                             storing in database.
Easy to use      Training is needed to       To work with these apps,
                 maintain the resources.     no
                 Difficult to use            training is needed. Users
                                             can easily
                                             understand without
                                             having any
                                             technical knowledge
Infrastructure   Advantage of traditional    SPI frameworks does not
                 IT model is software        own the
                 applications. It is more    infrastructure. It
                 customizable. It may        employed by the
                                    require substantial                 subscription based
                                    licensing and support               license.
                                    cost.
What is a hypervisor
A hypervisor, also known as a virtual machine monitor or VMM. The hypervisor is a piece of
software that allows us to build and run virtual machines which are abbreviated as VMs.
A hypervisor allows a single host computer to support multiple virtual machines (VMs) by
sharing resources including memory and processing.
What is the use of a hypervisor?
Hypervisors allow the use of more of a system's available resources and provide greater IT
versatility because the guest VMs are independent of the host hardware which is one of the major
benefits of the Hypervisor.
In other words, this implies that they can be quickly switched between servers. Since a
hypervisor with the help of its special feature, it allows several virtual machines to operate on a
single physical server. So, it helps us to reduce:
   The Space efficiency
  The Energy uses
  The Maintenance requirements of the server.
  The Space efficiency
  Kinds of hypervisors
  There are two types of hypervisors: "Type 1" (also known as "bare metal") and "Type 2"
  (also known as "hosted"). A type 1 hypervisor functions as a light operating system that
     operates directly on the host's hardware, while a type 2 hypervisor functions as a software
     layer on top of an operating system, similar to other computer programs.
     Since they are isolated from the attack-prone operating system,
     bare-metal hypervisors are extremely stable.
     Furthermore, they are usually faster and more powerful than hosted hypervisors. For these
     purposes, the majority of enterprise businesses opt for bare-metal hypervisors for their
     data center computing requirements.
While hosted hypervisors run inside the OS, they can be topped with
additional (and different) operating systems.
The hosted hypervisors have longer latency than bare-metal hypervisors which is a very major
disadvantage of the it. This is due to the fact that contact between the hardware and the hypervisor must
go through the OS's extra layer.
The Type 1 hypervisor
The native or bare metal hypervisor, the Type 1 hypervisor is known by both names.
it replaces the host operating system, and the hypervisor schedules VM services directly to the
hardware.
The type 1 hypervisor is very much commonly used in the enterprise
data center or other server-based environments.
It includes KVM, Microsoft Hyper-V, and VMware vSphere. If we are running the updated version of
the hypervisor then we must have already got the KVM integrated into the Linux kernel in 2007.
The Type 2 hypervisor
It is also known as a hosted hypervisor, The type 2 hypervisor is a software layer or framework
that runs on a traditional operating system.
It operates by separating the guest and host operating systems. The host operating system schedules
VM services, which are then executed on the hardware.
Individual users who wish to operate multiple operating systems on a personal computer should
use a form 2 hypervisor.
This type of hypervisor also includes the virtual machines with it.
Hardware acceleration technology improves the processing speed of both bare-metal and hosted
hypervisors, allowing them to build and handle virtual resources more quickly.
On a single physical computer, all types of hypervisors will operate multiple virtual servers for
multiple tenants. Different businesses rent data space on various virtual servers from public cloud
service providers. One server can host multiple virtual servers, each of which is running different
workloads for different businesses.
    What is a cloud hypervisor?
    Hypervisors are a key component of the technology that enables cloud computing since they are
    a software layer that allows one host device to support several virtual machines at the same
    time.
    Hypervisors allow IT to retain control over a cloud environment's infrastructure, processes, and
    sensitive data while making cloud- based applications accessible to users in a virtual
    environment.
    Increased emphasis on creative applications is being driven by digital transformation and
    increasing consumer expectations. As a result, many businesses are transferring their virtual
    computers to the cloud.
•     Benefits of hypervisors
•     Using a hypervisor to host several virtual machines has many advantages:
•     Speed: The hypervisors allow virtual machines to be built instantly unlike bare-metal
      servers. This makes provisioning resources for complex workloads much simpler.
•     Efficiency: Hypervisors that run multiple virtual machines on the resources of a single physical
      machine often allow for more effective use of a single physical server.
•     Flexibility: Since the hypervisor distinguishes the OS from the underlying hardware, the
      program no longer relies on particular hardware devices or drivers, bare-metal hypervisors
      enable operating systems and their related applications to operate on a variety of hardware
      types.
•     Portability: Multiple operating systems can run on the same physical server thanks to
      hypervisors (host machine). The hypervisor's virtual machines are portable because they
      are separate from the physical computer.
    Impact of cloud computing on different types of users,
      1) Individual consumers
      2)Individual businesses
      3)Start-ups
      4)Small and medium-size businesses (SMBs)
      5)Enterprise businesses
      1)Individual consumers:Many computer-savvy individuals today are already major users of cloud
      computing. Although PCs have their own storage, they on cloud …
     2)Individual Businesses:
    Inspired by the low entry costs for cloud services, technically savvy consumers are now using
    cloud-based tools to develop their businesses. The expectation is that software should be nearly
    free of charge, and that users should pay only for additional services or some extra capacity.
    3)start-ups
    A tremendous amount of personal data resides in the cloud. Many of the terms and conditions
    that we routinely accept present privacy risks that could be a concern to individuals. Of course,
    there is also the concern of accidental loss, or fraudulent access unauthorized by a CSP.
 4) Small and medium-size businesses (SMBs)
 One of the biggest advantages of cloud computing for small and medium-sized businesses is
 cost savings. Cloud computing can greatly reduce the cost of hardware, software, and
 maintenance, freeing up funds for other uses. It can also lower energy costs, as cloud servers
 don't require large amounts of electricity.
  5) Enterprise businesses
   Nowadays, you can see that cloud computing is taking place in large corporate sectors. They are
   preferring to manage and convert their data to cloud instead of arranging more hardware. Cloud
   computing has entered almost every aspect of life whether it’s social or professional
   development, representing network computations that run through cloud-based software
   applications on servers dispersed throughout the internet.
It is accessible through browsers on mobiles, desktops, laptops, and tablets.