Cloud Computing & Virtualization

Paravirtualization and Full Virtualization

Paravirtualization is a technique in which the guest operating system is modified to work in cooperation with the VMM to optimize performance and efficiency.

In full virtualization, guests will issue hardware calls but in paravirtualization, guests will directly communicate with the host (hypervisor) using the drivers.

The guest OS comes closer to native performance than a fully virtualized guest.

Paravirtualization also allows for an interface to the virtual machine that can differ somewhat from that of the underlying hardware.

Paravirtualization doesn’t need to simulate the hardware for the virtual machines. The hypervisor is installed on a physical server which is called the host and a guest Operating System is installed into the environment. Virtual guests are aware that it has been virtualized, unlike the full virtualization (where the guest doesn’t know that it has been virtualized) to take advantage of the functions. In this virtualization method, guest source codes will be modified with sensitive information to communicate with the host. Guest Operating systems require extensions to make API calls to the hypervisor.

In full virtualization, privileged instructions can be executed in kernel mode. If they attempted to be executed in user mode, they cause a trap and so executed in kernel mode.

When privileged instructions tried to be executed in user mode, it generates an error and causes a trap. Then VMM gains control, analyzes the error, executes the instruction (operation) on behalf of the guest, and returns the control to the guest in user mode. This process is called trap-and-emulate.

Emulation is a technique we use when we want to run an application on a platform for which the application was not written. Suppose if we want to use an android application on our windows machine we can use the emulator to run the android app. It's basically an extra layer on top of the system where we want to run a totally different program.

It really is significant in real life and we often use this type of service. The best example of an emulator is the android app emulator which is commonly used in app development. The application can be tested in a different virtual device called (emulators).  We installed this and integrate it with our IDE (Android studio) and this exactly works like a real device.

 

Following are the main points that make the VDI more efficient than traditional desktop:

•       Centralized environment

•       More efficient client environment that is easier to maintain

•       Less requirement of Desktop support

•       Portability

•       Cost-efficient as “Thin Client” are cheaper and require no high-end hardware and software configuration

•       Scalability

In terms of cost and scalability, the VDI can be a better choice than a traditional desktop.

Cost:
Since processing is done on the server, the hardware requirements for end devices are much lower. Users can access their virtual desktops from older devices, thin clients, or even tablets, reducing the need for IT to purchase new and expensive hardware. 

Scalability:
When an organization expands temporarily, such as seasonal call center agent contractors, it can quickly expand the VDI environment. By enabling these workers to access an enterprise virtual desktop workload and its respective apps, these contractors can be fully functional within minutes, compared with days or weeks to procure endpoint devices and configure apps.

Virtualization to use office 365 in a small organization
In my opinion, to introduce Microsoft Office 365 in his company, the SaaS server provider should be contacted. SaaS is best suited for this kind of requirement.

I believe that companies that provide SaaS, IaaS, PaaS, etc, are very secure nowadays, as they are trying their level best to gain the trust of their clients about the security so there is no need to worry about the security risk. The service providers companies investing a huge amount only for the protection of the data.

SaaS applications are sometimes called Web-based software, on-demand software, or hosted software. Whatever the name, SaaS applications run on a SaaS provider’s servers. The provider manages access to the application, including security, availability, and performance.

In the software on-demand SaaS model, the provider gives customers network-based access to a single copy of an application that the provider created specifically for SaaS distribution. The application’s source code is the same for all customers and when new features or functionalities are rolled out, they are rolled out to all customers.

Depending upon the service level agreement (SLA), the customer’s data for each model may be stored locally, in the cloud, or both locally and in the cloud.

Organizations can integrate SaaS applications with other software using application programming interfaces (APIs). For example, a business can write its own software tools and use the SaaS provider's APIs to integrate those tools with the SaaS offering.

Scalable usage
Cloud services like SaaS offer high vertical scalability, which gives customers the option to access more, or fewer, services or features on-demand.

Automatic updates
Rather than purchasing new software, customers can rely on a SaaS provider to automatically perform updates and patch management. This further reduces the burden on in-house IT staff.

Accessibility and persistence
Since SaaS applications are delivered over the Internet, users can access them from any Internet-enabled device and location.

Elasticity and Multi-Tenancy in Cloud Computing
Elastic multitenancy refers to the idea that a system can accommodate multiple client storage resources together "multitenant" and offer on-demand changes within the system "elastic".

The term is commonly used in modern cloud computing and network virtualization.

Elasticity In Cloud Computing
Elasticity is a core feature of distributed computing. Basically, resources are scaled out or in [horizontal scaling], depending on demand [vertical scaling refers to resiliency and failure, scaling up or down physical resources depending on failover logic]. Elasticity deals with variations in data load in the network by adding resources into the network at the time of higher load and decreasing the number of resources by removing them when the load diminishes. This helps to maintain the operating costs of the system while ensuring the overall performance of the system.

Multi-Tenancy In Cloud Computing
Multi-tenancy is a very innovative and important architectural style in cloud computing. It allows the service provider to serve the clients from various tenants simultaneously from a single application located on the cloud. Multi-tenancy allows the clouds to give a rich experience to the users who use the applications on the cloud similar to the on-premise software applications.

Multi-tenancy simply divides both the hardware and software among the operational tenants, thus reducing the operational costs drastically. It also simplifies the maintenance process of the cloud. The 'virtual machine' on the server, will handle multiple 'tenants' or users of the resource. The modeling of multi-tenancy is inherently more difficult and vital than server-side models of data usage with a typical client-server system.

1.              Capabilities can be elastically provisioned and released, in some cases

2.              automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the

3.              capabilities available for provisioning often appear to be unlimited and can be appropriated in any

 

Multi-tenancy helps a lot in terms of the better usage of the resources and minimizing the cost.

 

Templating
For the creating of many virtual machines with the same configuration, at a time, Templating Method can be used. Templating helps to create an OS + application VM, provide it to customers, use it to create multiple instances of that combination

 

Snapshots
Before installing a new application installation the user needs to save the current state of the machine in the running condition.

Snapshots allow an almost instantaneous copy of a dataset to be taken in a live environment. This copy can then be made available for recovery, but also to other systems, often as a clone copy. For testing and development.

Snapshots are standard in most enterprise storage systems and are often seamlessly integrated with technology such as Windows VSS to ensure we get rapid and consistent data copies.

 

Switches -- Physical Switches vs Virtual Switches
Virtual switches work in the same way as physical switches work, but there are few differences and the V-Swathes have also some extra benefits as compared to physical switches.

Physical Switches

 

  • Piece of hardware
  • Connected with physical devices
  • Hard to configure
  • Within the same host, traffic can flow from one switch to another switch
  • Not intelligent
  • Hard to extend if needed, sometimes it is necessary to replace it to get the required feature.

 

Virtual Switches

  • Works like a software
  • Connected with VMs
  • Easy to configure
  • It’s not feasible for the network traffic to flow from one v-switch to another v-switch in the same host
  • More intelligent than Physical Switches
  • Can easily be extended.

 

Virtual Network Communications
Virtual networks allow the virtual machine to communicate with the rest of your network, the host machine, and other virtual machines. With the Virtual Network Manager (VNM), the following network can be created:

Private network:
Allows a virtual machine to communicate only with another virtual machine on the host.

Internal network:
Sets up communication between the host system and the virtual machines on it.

External network:
Connects virtual machines and the host physical network. This allows the virtual machine to communicate on the same network as the host, operating as any other node on the network

Internal Communication VMs use shared memory and for the external communication traditional TCP/IP can be used.

Some VMs can communicate with each other using some socket API.

 

Cloud Computing Basic Architecture       

There are 3 main layers of The Cloud Computing System

Infrastructure Layer.

This the core component/layer on which any system exists. This contains the hardware like Machine, Hard disk, RAM, Cards, and another physical component of the system.

Platform:
The platform is the Layer sitting on the Infrastructure Layer. This directly communicates with the infrastructure (Hardware) as well. This is the middleware between the user application layer and the infrastructure layer. It uses the hardware to execute the user command/instruction. The basic tasks of Platform (Operating System) are file management, memory management, process management, handling input and output, and controlling peripheral devices such as disk drives and printers.

Application Layer.
The end-user interacts with the application layer. This layer contains all the applications like Ms.Excel, Ms.Word, Photoshop, Notepad, etc. The user interacts with this layer and this layer connects with the underline running OS. Like when the user clicks on a word file or runs the word application, it loads the application for the user.

Suppose we want to set up a cloud base call center for the company XYZ.

Then we need to know the OS on the selected hardware like either we want to use Windows, Mac, or Linux.

We then install our applications on the decided OS. The user will be accessing this layer through a given GUI or command prompt

cloud computing & virtualization service provider switch virtual machine
A
@ 03/12/2020
© All right reserved 2026