Virtualization is an underlying technology of cloud computing that abstracts hardware, operating systems, storage, and networks to optimize resource usage. It allows multiple operating systems to run concurrently on a single physical server through hypervisors and virtual machines. Virtualization provides benefits like lower costs, increased efficiency, and scalability. The main types of virtualization are full virtualization, para-virtualization, and hardware/server virtualization.
Virtualization is an underlying technology of cloud computing that abstracts hardware, operating systems, storage, and networks to optimize resource usage. It allows multiple operating systems to run concurrently on a single physical server through hypervisors and virtual machines. Virtualization provides benefits like lower costs, increased efficiency, and scalability. The main types of virtualization are full virtualization, para-virtualization, and hardware/server virtualization.
Virtualization • Virtualization is nothing but abstracting operating system, application, storage or network away from the true underlying hardware or software. • It creates the illusion of physical hardware to achieve the goal of operating system isolation. • In last decade, data centers were occupied by a large number of physical servers, network switches, storage devices. It consumed a lot of power and manpower to maintain the data centers. Dr. B.N.Gohil - SVNIT 2 Cont.. • It is the underlying core technology of cloud computing. • It helps in creating a multitenant model for the cloud environment by optimizing the resource usage through sharing. • Benefits of virtualization include the lower costs and extended life of the technology, which has made it a popular option with small- to medium-sized businesses. • Using virtualization, the physical infrastructure owned by the service provider is shared among many users, increasing the resource utilization. Virtualization provides efficient resource utilization and increased return on investment (ROI). Ultimately, it results in low capital expenditures (CapEx) and operational expenditures (OpEx).
Dr. B.N.Gohil - SVNIT 3
Types of Virtualization
Dr. B.N.Gohil - SVNIT 4
• Full Virtualization: • Virtual machine simulates hardware to allow an unmodified guest OS to be run in isolation. • Full virtualization uses a special kind of software called a hypervisor. • The hypervisor interacts directly with the physical server’s hardware resources, such as the CPU and storage space, and acts as a platform for the virtual server’s OSs. It helps to keep each virtual server completely independent and unaware of the other virtual servers running on the physical machine. • Each guest server or the virtual machine (VM) is able to run its own OS. That means one virtual server could be running on Linux and the other one could be running on Windows. Dr. B.N.Gohil - SVNIT 5 • There is two type of Full virtualizations in the enterprise market. On both full virtualization types, guest operating system’s source information will not be modified. - Software assisted full virtualization - Hardware-assisted full virtualization
• Examples include VMWare ESX and VirtualBox.
• Advantages - isolation among the various VMs, isolation between the VMs and the hypervisor, concurrent execution of multiple OSs, and no change required in the guest OS. • Disadvantage - the overall system performance may be affected due to binary translation.
Dr. B.N.Gohil - SVNIT 6
Protection rings in OS
Dr. B.N.Gohil - SVNIT 7
Software Assisted FV • It completely relies on binary translation to trap and virtualize the execution of sensitive, non-virtualizable instructions sets. • It emulates the hardware using the software instruction sets. • Due to binary translation, it often criticized for performance issue. • Example: VMware workstation, Virtual PC, VirtualBox, VMware Server
Dr. B.N.Gohil - SVNIT 8
Hardware Assisted FV • Hardware-assisted full virtualization eliminates the binary translation and it directly interrupts with hardware using the virtualization technology which has been integrated on X86 processors since 2005 (Intel VT-x and AMD-V). • Guest OS’s instructions might allow a virtual context execute privileged instructions directly on the processor, even though it is virtualized. • Example(bare metal – type 1): Vmware ESXi/ESX, KVM, Hyper-V, Xen • Example(hosted – type 2): Vmware, Vrtual Box
Dr. B.N.Gohil - SVNIT 9
Para-virtualization • It doesn’t need to simulate the hardware for the virtual machines. • The hypervisor is installed on a physical server (host) and a guest OS is installed into the environment. • Virtual guests 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, guests will issue a hardware calls but in paravirtualization, guests will directly communicate with the host (hypervisor) using the- SVNIT Dr. B.N.Gohil drivers. 10 Cont.. • VMs do not simulate the underlying hardware, but with the modified guest OS, API is used. • Example – Xen, VMWare ESX server, IBM LPAR, Oracle VM • Here, the guest OS is aware of the fact that it is running in a virtualized environment. • Hypercalls are used for the direct communication between the guest OS and the hypervisor. • Advantage - it improves the overall system performance by eliminating the overhead of binary translation. • Disadvantage - modification of the guest OS is required.
Dr. B.N.Gohil - SVNIT 11
Hypervisor/VMM • Hypervisors are software tools used to create the VMs, and they produce the virtualization of various hardware resources such as CPU, storage, and networking devices. • They are also called virtual machine monitor (VMM) or virtualization managers. • Example - VMware, Xen, Hyper-V, KVM, etc. • Hypervisors help to run multiple OSs concurrently on a physical system sharing its hardware. Thus, a hypervisor allows multiple Oss to share a single hardware host. • The hypervisor also makes sure that the guest OSs (called VMs) do not interrupt each other. It manages multiple OSs or multiple instances of the same OS on a single physical computer system. Dr. B.N.Gohil - SVNIT 12 Cont.. • Type 1 hypervisor: • This type of hypervisor runs directly on the host computer’s hardware in order to control the hardware resources and also to manage the guest OSs. • This is also known as native or bare-metal hypervisors. • Examples - VMware ESXi, Citrix XenServer, and Microsoft Hyper-V hypervisor.
Dr. B.N.Gohil - SVNIT 13
Cont.. • Type 2 hypervisor: • This type of hypervisor runs within a formal OS environment as a distinct second layer while the guest OS runs as a third layer above the hardware. • This is also known as the hosted hypervisors. • Examples - VMware Workstation and VirtualBox
Dr. B.N.Gohil - SVNIT 14
Type 1 Vs Type 2
Dr. B.N.Gohil - SVNIT 15
Types of Virtualization • Depending on the resources virtualized, the process of virtualization can be classified into the following types. - OS virtualization/Containerization - The kernel of an operating system allows more than one isolated user-space instance to exist. - Hardware/Server virtualization – creates VMs in single server. - Memory virtualization -decouples memory from the server to provide a shared, distributed or networked function. - Storage virtualization - multiple network storage resources are present as a single storage device for easier and more efficient management of these resources - Network virtualization - process of combining hardware and software network resources and network functionality into a single, software- based administrative entity. - Application virtualization - encapsulates computer programs from the underlying operating system on which they are executed.
Dr. B.N.Gohil - SVNIT 16
Dr. B.N.Gohil - SVNIT 17 Multicore Technology • Two or more CPUs are working together on the same chip. • In this type of architecture, a single physical processor contains the core logic of two or more processors. These processors are packaged into a single integrated circuit (IC).
Dr. B.N.Gohil - SVNIT 18
Memory and Storage Technologies The storage technology or solutions used in the cloud environment should meet the following requirements. • Scalability • High availability • Constant performance • High bandwidth • Load balancing Dr. B.N.Gohil - SVNIT 19 Networking Technologies Network requirements for cloud: - Consolidate workloads and provide Infrastructure as a Service (IaaS)to various tenants - Provide VM connectivity to physical and virtual networks - Ensure connectivity and manage network bandwidth - Speed application and server performance Dr. B.N.Gohil - SVNIT 20 Web 2.0 • It is the popular term given to the advanced Internet technology and applications that include blogs, wikis, really simple syndication (RSS), and social bookmarking. • Characteristics: - instead of merely reading the contents from a web page, a user is allowed to write or contribute to the content available to everyone in an effective and user-friendly manner Dr. B.N.Gohil - SVNIT 21 Cont.. - Web 2.0 is also called network as a platform computing as it provides software, computing, and storage facilities to the user all through the browser. - The major applications of Web 2.0 include social networking sites, self-publishing platforms, tagging, and social bookmarking.
Dr. B.N.Gohil - SVNIT 22
Cont.. • The key features: • Folksonomy – digital tagging • Rich user experience • User as a contributor • User participation • Dispersion
Dr. B.N.Gohil - SVNIT 23
Web 3.0 The two major components forming the basis of Web 3.0 are :
1. Semantic web - The semantic web provides the web user a
common framework that could be used to share and reuse the data across various applications, enterprises, and community boundaries. The semantic web is a vision of IT that allows the data and information to be readily interpreted by machines, so that the machines are able to take contextual decisions on their own by finding, combining, and acting upon relevant information on the web. 2. Web services - A web service is a software system that supports computer-to-computer interaction over the Internet. Web services are usually represented as APIs.
Dr. B.N.Gohil - SVNIT 24
Characteristics of Web 3.0: • Ubiquitous connectivity • Network computing • Open technologies • Open identity • The intelligent web
Dr. B.N.Gohil - SVNIT 25
Comparison
Dr. B.N.Gohil - SVNIT 26
Process models for cloud • Waterfall • V model • Incremental • RAD • Agile • Iterative • Spiral
Dr. B.N.Gohil - SVNIT 27
Agile SDLC for Cloud • Existing software process models and framework activities are not adequate unless interaction with cloud providers is included. • Requirements gathering phase so far included customers, users, and software engineers. • Now, it has to include the cloud providers as well, as they will be providing the computing infrastructure and its maintenance. • As only the cloud providers will know the size, architectural details, virtualization strategy, and resource utilization of the infrastructure, they should also be included in the planning and design phases of software development. • Coding and testing can be done on the cloud platform, which is a huge benefit as everybody will have easy access to the software being built. • This will reduce the cost and time for testing and validation. Dr. B.N.Gohil - SVNIT 28 Cont.. • In the cloud environment, software developers can use the web services and open-source software freely available from the cloud instead of procuring them. • Software developers build software from readily available components rather than writing it all and building a monolithic application. • Refactoring of existing application is required to best utilize the cloud infrastructure architecture in a cost-effective way. • In the latest hardware technology, the computers are multicore and networked and the software engineers should train themselves in parallel and distributed computing to complement these advances of hardware and network technology. • Cloud providers will insist that software should be as modular as possible for occasional migration from one server to another for LB as required by the cloud provider.
Dr. B.N.Gohil - SVNIT 29
Cont.. • Most widely used agile frameworks: - Agile Scrum Methodology - Lean Software Development - Kanban - Extreme Programming (XP) - Crystal - Dynamic Systems Development Method (DSDM) - Feature Driven Development (FDD) Dr. B.N.Gohil - SVNIT 30 Features of Cloud SDLC • SDLC for cloud computing is different from the traditional SDLC in the following ways: 1. Inclination toward agile methodologies 2. Customizable SDLC framework for different stages: Cloud computing SDLC must have the capabilities to be customized according to the requirements of the project. In other words, the elasticity and robustness of cloud computing environment can be best utilized if the SDLCs for cloud are customizable. 3. Installation and configuration guidelines: SDLC for cloud must provide implementation approach and guidelines for installation and configuration of the cloud depending on its size. The guidelines must ensure that installation and configuration of infrastructure and application environment are completed appropriately for different stages of SDLC including operations and maintenance. These guidelines are the key to differentiating SDLC for cloud from traditional SDLC. Dr. B.N.Gohil - SVNIT 31 Advantages of Agile model 1. Faster time to market 2. Quick ROI 3. Shorter release cycles 4. Better quality 5. Better adaptability and responsiveness to business changing requirements 6. Early detection of failure/failing projects