CH2 Abstraction and Virtualization
CH2 Abstraction and Virtualization
Virtualization means creating a virtual platform of something, which will include virtual
computer hardware, virtual storage devices, and virtual computer network. Virtualization is a
Creation of a virtual machine over existing operating system and hardware is known as
Types of Virtualization
1. Network virtualization
2. Storage virtualization
3. Server virtualization
4. Data virtualization
5. Desktop virtualization
6. Application virtualization
Cloud Computing
1. Network virtualization:
Any computer network has hardware elements such as switches, routers, and firewalls. An
organization with offices in multiple geographic locations can have several different network
technologies working together to create its enterprise network. Network virtualization is a process
that combines all of these network resources to centralize administrative tasks. Administrators
can adjust and control these elements virtually without touching the physical components, which
greatly simplifies network management.
Software-defined networking
Software-defined networking (SDN) controls traffic routing by taking over routing management
from data routing in the physical environment. For example, you can program your system to
prioritize your video call traffic over application traffic to ensure consistent call quality in all online
meetings.
2. Storage virtualization
This type of virtualization refers to the kind multiple servers are managed by a single virtual
storage system. It can be understood as a process which enables the grouping of multiple
physical storages from a number of network storage devices and works as a single storage
device.
This system aims for a much easier and efficient management of the network storage resources.
This kind of Virtualization comes with its own set of benefits like an overall consistent
performance, advanced functions in spite of changes and maintaining smooth operations.
Block Storage Virtualization – This type of Storage Virtualization takes over at the
disk level once it has replaced the controllers. Technically it is in function before the file
system comes into picture.
File Storage Virtualization – It is essential for a server which uses the storage to have
the software installed on it in case it wants to enable the usage on the file system level.
Storage Virtualization has its own set of benefits which can be understood as-
3. Server virtualization
Server virtualization is a process that partitions a physical server into multiple virtual servers.
It is an efficient and cost-effective way to use server resources and deploy IT services in an
organization. Without server virtualization, physical servers use only a small amount of their
processing capacities, which leave devices idle.
4. Data virtualization
Modern organizations collect data from several sources and store it in different formats. They
might also store data in different places, such as in a cloud infrastructure and an on-premises
data center. Data virtualization creates a software layer between this data and the applications
that need it. Data virtualization tools process an application’s data request and return results in a
suitable format. Thus, organizations use data virtualization solutions to increase flexibility for data
integration and support cross-functional data analysis.
5. Desktop virtualization
Most organizations have nontechnical staff that use desktop operating systems to run common
business applications. For instance, you might have the following staff:
A customer service team that requires a desktop computer with Windows 10 and customer-
relationship management software
A marketing team that requires Windows Vista for sales applications
You can use desktop virtualization to run these different desktop operating systems on virtual
machines, which your teams can access remotely. This type of virtualization makes desktop
management efficient and secure, saving money on desktop hardware. The following are types
of desktop virtualization.
Virtual desktop infrastructure runs virtual desktops on a remote server. Your users can access
them by using client devices.
In local desktop virtualization, you run the hypervisor on a local computer and create a virtual
computer with a different operating system. You can switch between your local and virtual
environment in the same way you can switch between applications.
6. Application virtualization
Application virtualization pulls out the functions of applications to run on operating systems other
than the operating systems for which they were designed. For example, users can run a
Microsoft Windows application on a Linux machine without changing the machine configuration.
To achieve application virtualization, follow these practices:
Cloud Computing
Application streaming – Users stream the application from a remote server, so it runs only on the
end user's device when needed.
Server-based application virtualization – Users can access the remote application from their
browser or client interface without installing it.
Local application virtualization – The application code is shipped with its own environment to run
on all operating systems without changes.
Benefits of Virtualization
Virtualization enables one to run multiple applications and operating systems on the very
same server at the same time.
It increases the overall efficiency and flexibility of existing hardware.
It increases the ability to effectively manage all the available resources.
It ensures an easier backup system and recovery from disaster.
Virtualization saves energy, the hardware expenditure as well as the overall costs.
It provides for the maximum usage of the servers.
It offers better uptime.
It allows for faster deployment of resources.
Disadvantages of Virtualization
A Virtual Load Balancer provides more flexibility to balance the workload of a server by
distributing traffic across multiple network servers. Virtual load balancing aims to mimic software-
driven infrastructure through virtualization. It runs the software of a physical load balancing
appliance on a virtual machine.
External load balancing supports buckets in Cloud Storage, internet NEGs, managed instance
groups, serveries NEGs, and Zonal network endpoint groups (NEGs). Use external load
balancing to support application, web, and database tier services.
External load balancing also supports cross-region load balancing and content-based load
balancing, each with managed instance groups across multiple regions. Premium Tier external
load balancer features include routing traffic to the nearest Google Front End and advertising the
same global external IP address from various points of presence.
Internal load balancing allows applications to run behind an internal IP address and sends traffic
(such as HTTP/HTTPs traffic) to the backend application hosted on Google Compute Engine
(GCE) or Google Kubernetes Engine (GKE). A managed service, the internal load balancer can
only is accessed on an internal IP address and in the Virtual Private Cloud network’s chosen
region.
Improved scalability. Load balancers can scale the server infrastructure on demand,
depending on the network requirements, without affecting services. For example, if a website
starts attracting a large number of visitors, it can cause a sudden spike in traffic. If the web
server isn't able to manage this sudden influx of traffic, the website might crash. Load
balancing can spread the extra traffic across multiple servers, preventing this from
happening.
Cloud Computing
Improved efficiency. Due to the reduced burden of traffic on each server, the network traffic
flows better and improves response times. This ultimately provides a better experience for site
visitors.
Reduced downtime. Companies with a global presence and multiple locations in different time
zones can benefit from load balancing, especially when it comes to server maintenance. For
example, a company can shut down the server that needs maintenance and route traffic to
the other available load balancers without causing service interruptions or downtime.
Predictive analysis. Load balancing can provide early detection of failures and help manage
them without affecting other resources. For example, software-based load balancers can
predict traffic bottlenecks before they happen.
Efficient failure management. In the event of a failure, load balancers can automatically
redirect traffic to functional resources and backup options. For example, if a failure is
detected on a network resource, such as a mail server, load balancers can redistribute
resources to other unaffected areas to prevent service disruption.
Improved security. Load balancers add an extra layer of security without requiring additional
changes or resources. As more computing moves to the cloud, load balancers are being
outfitted with security features, such as the offloading function. This defends an organization
against distributed denial-of-service attacks by transferring attack traffic from the corporate
server to a public cloud provider.
When choosing a load balancer, you can consider the type of traffic your application needs to
handle, the features and capabilities you need, and your budget:
3. Scalability and performance: How much traffic the load balancer can handle
Application needs
For example, if your application uses HTTP(S) traffic, you might want an Application Load
Balancer (ALB) for its flexible feature set. If your application is micro services-based and
needs advanced routing and scaling, an ALB might be a good choice.
Traffic type
If you want to configure a reverse proxy load balancer, you might want a proxy Network Load
Balancer (NLB). If you want to preserve the source IP address of client packets, or handle
multiple IP protocols, you might want a pass through NLB.
HTTP(S) Load Balancing: This load balancer is used for distributing HTTP and HTTPS
traffic across multiple instances in multiple regions. It supports content-based routing,
SSL termination, and global load balancing.
TCP/SSL Proxy Load Balancing: This type of load balancer is used for non-HTTP(S)
traffic, such as SSL traffic, TCP traffic, or other protocols that use TCP.
UDP Load Balancing: Used for balancing UDP traffic, this is typically used for DNS,
VoIP, and other types of real-time applications.
This load balancer is used for balancing internal TCP and UDP traffic across instances
located in the same region.
This load balancer is used for balancing TCP/UDP traffic among virtual machine (VM)
instances in the same region.
While not strictly a load balancer, Google Cloud Armor is a security feature that
integrates with HTTP(S) Load Balancing to provide defence against DDoS attacks and
web application attacks.
Cloud Computing
This load balancer is used to terminate SSL connections on the load balancer itself
and then proxy the unencrypted traffic to the backend instances.
Some load balancers, like HTTP(S) Load Balancing, offer global load balancing, meaning
they can distribute traffic across instances in multiple regions, providing better
availability and latency reduction.
Understanding Hypervisor
A hypervisor is a form of virtualization software used in Cloud hosting to divide and allocate
the resources on various pieces of hardware. The program which provides partitioning,
isolation, or abstraction is called a virtualization hypervisor. The hypervisor is a hardware
virtualization technique that allows multiple guest operating systems (OS) to run on a single
host system at the same time. A hypervisor is sometimes also called a virtual machine
manager (VMM).
Types of Hypervisor
TYPE-1 Hypervisor:
A hypervisor is a form of virtualization software used in Cloud hosting to divide and allocate
the resources on various pieces of hardware. The program which provides partitioning,
isolation, or abstraction is called a virtualization hypervisor. The hypervisor is a hardware
virtualization technique that allows multiple guest operating systems (OS) to run on a single
host system at the same time. A hypervisor is sometimes also called a virtual machine
manager(VMM).
Pros & Cons of Type-1 Hypervisor:
Pros: Such kinds of hypervisors are very efficient because they have direct access to the
physical hardware resources (like CPU, Memory, Network, and Physical storage). This
causes the empowerment of the security because there is nothing any kind of the third party
resource so that attacker couldn’t compromise with anything.
Cons: One problem with Type-1 hypervisors is that they usually need a dedicated separate
machine to perform their operation and to instruct different VMs and control the host
hardware resources.
Cloud Computing
TYPE-2 Hypervisor:
A Host operating system runs on the underlying host system. It is also known as ‘Hosted
Hypervisor”. Such kind of hypervisors doesn’t run directly over the underlying hardware
rather they run as an application in a Host system(physical machine). Basically, the software
is installed on an operating system. Hypervisor asks the operating system to make hardware
calls. An example of a Type 2 hypervisor includes VMware Player or Parallels Desktop.
Hosted hypervisors are often found on endpoints like PCs. The type-2 hypervisor is very
useful for engineers, and security analysts (for checking malware, or malicious source code
and newly developed applications).
Pros:
Such kind of hypervisors allows quick and easy access to a guest Operating System alongside
the host machine running. These hypervisors usually come with additional useful features for
guest machines. Such tools enhance the coordination between the host machine and the guest
machine.
Cons:
Here there is no direct access to the physical hardware resources so the efficiency of these
hypervisors lags in performance as compared to the type-1 hypervisors, and potential security
risks are also there an attacker can compromise the security weakness if there is access to the
host operating system so he can also access the guest operating system.
Process Virtual Machines are designed to run a single application or process. They provide a
platform-independent environment for executing applications. The main function is to create
a consistent execution environment for applications across different systems. Key
characteristics include:
Java Virtual Machine (JVM): Allows Java applications to run on any device or
operating system that has a JVM implementation. It translates Java bytecode into
machine code for the host system.
.NET Common Language Runtime (CLR): Provides a runtime environment for .NET
applications, allowing them to run on various hardware and OS platforms.
Cloud Computing
System Virtual Machines provide a complete system environment for an operating system to
run. They emulate an entire hardware system, allowing multiple operating systems to share
the same physical hardware. They are commonly used for:
Running Multiple OSes: For instance, you can run Windows, Linux, and macOS on
the same hardware.
Testing and Development: Developers use system VMs to test applications on
different operating systems without needing multiple physical machines.
Isolation and Security: They provide a secure environment by isolating different
systems.
Types of System Virtual Machines:
Type 1 Hypervisors (Bare-Metal): These run directly on the hardware and provide
a high level of performance and efficiency. Examples include VMware ESXi,
Microsoft Hyper-V, and Xen.
Type 2 Hypervisors (Hosted): These run on top of an existing operating system
and are generally easier to set up but may have slightly lower performance. Examples
include VMware Workstation, Oracle Virtual Box, and Parallels Desktop.
Apex
Apex is a strongly typed language that uses direct references to schema objects such as object
and field names. Apex is a programming language developed by Salesforce. It is a strongly
typed, object-oriented programming language that allows developers to execute flow and
transaction control statements on the Salesforce platform. Apex enables developers to access
the Salesforce platform back-end database and client-server interfaces to create third-party
SaaS applications.
Cloud Computing
Apex is deeply integrated with the Salesforce platform. It allows developers to:
Data Security: Apex enforces Salesforce’s security model, including CRUD (Create,
Read, Update and Delete) permissions and field-level security.
Governor Limits: Salesforce imposes governor limits to ensure fair use of resources,
protecting against inefficient code and ensuring shared resources are managed well.
Apex complements Salesforce's declarative tools (like Process Builder and Flow):
Visual Studio Code with Salesforce Extensions: A popular IDE with advanced
features like code completion, refactoring, and integration with Salesforce DX for a
modern development workflow.
Sandbox Environments: Test and develop Apex code in isolated sandbox
environments before deploying to production.
Apex includes features for handling operations that require longer processing times:
Standard Libraries: Includes standard methods for common operations like string
manipulation, date handling, and more.
Integration Capabilities: Supports integration with external systems using REST
and SOAP web services.
Apex Test Classes: Developers can write unit tests to validate the functionality of
their code, which is crucial for maintaining code quality and reliability.
Test Coverage: Salesforce requires a minimum of 75% code coverage for
deployment to production, encouraging comprehensive testing.
Debug Logs: Track the execution of your code and view detailed logs to troubleshoot
issues.
Developer Console: Provides real-time debugging capabilities and performance
monitoring.
Features of Salesforce:
1. Sales Cloud
Lead Management: Capture, track, and manage leads from various sources.
Opportunity Management: Track sales opportunities through different stages.
Sales Forecasting: Predict sales performance and set quotas.
Pipeline Management: Visualize and manage your sales pipeline to drive revenue.
Activity Management: Schedule and track activities related to sales, such as calls,
meetings, and tasks.
2. Service Cloud
Case Management: Track and manage customer service requests and support cases.
Knowledge Base: Create and manage a knowledge repository to help customers find
solutions quickly.
Omni-Channel Support: Route and manage support requests from multiple channels
(email, chat, phone, social media).
Service Console: Provide a unified interface for service agents to handle customer
inquiries efficiently.
Self-Service Portal: Allow customers to resolve issues on their own through a
branded support portal.
3. Marketing Cloud
4. Commerce Cloud
E-Commerce: Build and manage online stores with features for product
management, order processing, and customer experiences.
Personalization: Deliver personalized shopping experiences based on customer data.
Mobile Optimization: Ensure your commerce experience is optimized for mobile
devices.
Cloud Computing
Portals and Communities: Create branded portals and communities for customers,
partners, and employees.
Collaboration: Facilitate collaboration among users with features like discussion
forums, file sharing, and project management tools.
Content Management: Manage and share content within your communities and
portals.
Data Visualization: Create interactive dashboards and reports to visualize your data.
Advanced Analytics: Utilize advanced analytics and AI-powered insights for data-
driven decision-making.
Data Integration: Integrate and analyze data from various sources for comprehensive
insights.
7. AppExchange
Custom Objects and Fields: Create and manage custom data objects and fields
tailored to your business needs.
Automation: Use tools like Process Builder, Flow, and Apex to automate business
processes and workflows.
Integration: Integrate with other systems and services using APIs, connectors, and
middleware.
App Development: Build custom applications using Salesforce's development tools,
including Lightning Components and Apex.
9. Einstein AI
Predictive Analytics: Leverage AI to gain insights and make predictions about sales,
service, and marketing.
Natural Language Processing: Use AI to analyze and interpret customer interactions
and feedback.
Automation: Automate tasks and recommendations based on AI-driven insights.
Data Security: Robust security features including encryption, access controls, and
compliance with various regulations (e.g., GDPR, HIPAA).
User Management: Manage user roles, permissions, and access to ensure data
privacy and security.
Cloud Computing
Salesforce Mobile App: Access Salesforce features and data from mobile devices.
Custom Mobile Experiences: Build and deploy custom mobile apps using
Salesforce’s tools.
APIs: Integrate with various external systems using Salesforce's REST, SOAP, and
Bulk APIs.
MuleSoft: Use MuleSoft’s Anypoint Platform for advanced integration and API
management.
Salesforce DX: A set of tools for modern development practices including source
control, continuous integration, and agile development.
Visualforce: A framework for building custom user interfaces.
Lightning Web Components: A programming model for creating reusable
components and modern web applications.
How it works?
As mentioned above, PaaS does not replace a company's entire IT infrastructure for software
development. It is provided through a cloud service provider's hosted infrastructure. Users
most frequently access the offerings through a web browser. PaaS can be delivered through
public, private and hybrid clouds to deliver services such as application hosting and Java
development.
Cloud Computing
Force.com
Force.com is a Platform as a Service (PaaS) offering from Salesforce that allows developers
to build and deploy applications in the cloud. It is part of Salesforce's broader ecosystem,
which includes its CRM and various other cloud-based solutions. Here’s a closer look at
Force.com and what makes it unique:
In the IaaS model, the cloud provider owns and operates the hardware and software and also owns
or leases the data centre. When you have an IaaS solution, you rent the resources like compute or
storage, provision them when needed, and pay for the resources your organization consumes. For
some resources such as compute, you’ll pay for the resources you use. For others such as storage,
you’ll pay for capacity.
How it works?
In a typical IaaS model, a business—which can be of any size—consumes services like compute,
storage, and databases from a cloud provider. The cloud provider offers those services by hosting
hardware and software in the cloud. The business no longer needs to purchase and manage its own
equipment, or space to host the equipment, and the cost shifts to a pay-as-you-go model. When the
business needs less, it pays for less. And as it grows, it can provision additional computing resources
and other technologies in minutes.
In a traditional on-premises scenario, a business manages and maintains its own data center. The
business must invest in servers, storage, software, and other technologies, and hire an IT staff or
contractors to purchase, manage, and upgrade all the equipment and licenses. The data center has
to be built to meet peak demand, even though sometimes workloads decline and those resources
stand idle. Conversely, if the business grows quickly, the IT department might struggle to keep up.
1. Instances
o Instance Types: EC2 offers a wide range of instance types tailored for various
workloads. These are categorized into families such as:
General Purpose: Balanced compute, memory, and networking resources
(e.g., T3, M5).
Compute Optimized: High compute power for compute-bound applications
(e.g., C5, C6g).
Cloud Computing
Amazon EC2 offers 99.9% availability for each Amazon EC2 region. The services are highly reliable
where replacement of instances can be done easily and rapidly.
2. Security
Amazon works with Amazon VPC to provide robust networking and security for the compute
resources. The compute instances are located in a VPC (Virtual Private Cloud) in a specific IP range.
This specific function helps the user in deciding which instances are exposed to the internet and
which remains private.
3. Flexibility
EC2 provides you with choices of multiple instance types, software packages, instance storages, and
operating systems. EC2 lets us configure memory, CPU and boot partition size which is optimal for
the operating system and application.
4. Cost Saving
EC2 is inexpensive as it allows the user to select plans as per the requirement. This will help the user
to save cost and utilize the resources fully. EC2 passes the benefits of Amazon’s scale as the user has
to pay a very low amount compared to the services they provide.
EC2 works fine with Amazon RDS, S3, Dynamo DB and Amazon SQS. This provides complete
computing, processing and storage solution.
Enterprises can easily increase or decrease capacity within minutes. They can commission thousands
of server instances simultaneously. Additionally, all the server instances are handled by the web
service APIs which can scale the servers up and down depending on the requirements.
Cloud Computing
7. Completely controlled
One has complete control over the instances. Also, one can have root access to each instance and
they can interact with them as any other machine. The user can stop instance while retaining the
data on the boot partition and restart the same using web service APIs.