0% found this document useful (0 votes)
37 views16 pages

SE (Unit 4)

About software

Uploaded by

kashishachitra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views16 pages

SE (Unit 4)

About software

Uploaded by

kashishachitra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Unit-4

Introduction to Agile
What Is Agile?
 Agile is a set of values and principles, and becoming agile means upholding these values and principles.
 It's not about doing one practice and declaring that you are Agile, it's about continually seeking better ways of
achieving organizational goals.
 Agile is a collection of methods and practices that focuses on iterative development.
 It is time-boxed and iterative, focusing on delivering products incrementally throughout the project, rather than all
at once, in the end.
 Agile methodology is a project management approach that allows successful and efficient execution of the project
while emphasizing the improvement of a project and team collaboration.
 The approach is applicable in software development for flexibility, customer satisfaction, and collaboration.
 It refers to the application of a set of principles that functions through an interactive and incremental approach.
 The Agile methodology in software development emphasizes the importance of team collaboration and delivering a
working product quickly to meet customer needs and expectations.

How does the Agile Software Development Process Work?


The Agile software development process is a set of steps to be performed in order. The importance of sequence is as
follows:

(i) Requirements: The companies here gather information on customer’s requirements and prioritize them based
on different factors. It is an initial factor to understand the direction of the project and progress.
(ii) Planning: Developing a plan is an essential part of delivering the complete software comprising all the features.
The plan includes time for the development and delivery of each iteration.
(iii) Development: The software development is carried out by the development team while using frequent and
rapid iterations.
(iv) Testing: It involves software testing to make sure it meets the quality delivered by the organization and
expected by the customer
(v) Deployment: Here, the organization serves the ultimate aim, which is to allow usage of the software.
(vi) Maintenance: The software is regularly maintained to ensure customers' needs and expectations are met.
Value Points of Agile
Value points are a way to measure the relative value of user stories in Agile. They can be used to prioritize a product backlog
and communicate the importance of user stories to the software development team.

The Agile Manifesto is comprised of four foundational values –

1. Individuals and Interactions Over Processes and Tools


The first value in the Agile Manifesto is “Individuals and interactions over processes and tools.” Valuing people more
highly than processes or tools is easy to understand because it is the people who respond to business needs and
drive the development process.

2. Working Software Over Comprehensive Documentation


Previously, software developers would spend ages creating detailed documentation. That was before they even
started writing a single line of code. And while documentation isn’t a bad thing, there comes a point when you
should focus on providing your customers with working software.
The Agile Manifesto places shipping software to your customers as one of the highest priorities. You can then gather
feedback to help you improve future releases.

3. Customer Collaboration Over Contract Negotiation


According to the Agile Manifesto, the focus should be on continuous development. You need to build a feedback
loop with your customers so that you can constantly ensure that your product works for them.

4. Responding to Change Over Following a Plan


The Agile Manifesto suggests that a software team should have the ability to pivot and change direction whenever
they need to, with a flexible roadmap that reflects that. A dynamic roadmap can change from quarter to quarter,
sometimes even month to month, and agile teams are able to keep up with those changes.

Agile Principles-
1. “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
2. “Welcome changing requirements, even late in development. Agile processes harness change for the customer’s
competitive advantage.”
3. “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the
shorter timescale.”
4. “Business people and developers must work together daily throughout the project.”
5. “Build projects around motivated individuals. Give them the environment and support they need, and trust them to
get the job done.”
6. “The most efficient and effective method of conveying information to and within a development team is face-to-
face conversation.”
7. “Working software is the primary measure of progress.”
8. “Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain
a constant pace indefinitely.”
9. “Continuous attention to technical excellence and good design enhances agility.”
10. “Simplicity — the art of maximizing the amount of work not done — is essential.”
11. “The best architectures, requirements, and designs emerge from self-organizing teams.”
12. “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior
accordingly.”
Advantages of Agile Software Development
 People and interactions are preferred over tools and processes in the usage of Agile software development
methodology.
 It leads to a regular focus on improved design and technical excellence.
 The Agile development process assists in improvement by allowing immediate feedback.
 Fastens the software development process, thus increasing customer trust.
 Allows quick adaptability to meet the change in requirements.
 Incorporates flexibility and adaptability.
 Enhances quality and reliability through a focus on quality assurance and continuous improvement.
 Increase team confidence and allow the set up of a collaborative, positive, and supportive workplace culture.

Disadvantages of Agile Software Development


 Agile development is linked with lesser documentation and a higher focus on codes.
 Agile software development depends on continuous iteration and feedback from customers, leading to difficult
estimation of timelines, outcomes, and budgets of projects.
 Understanding the quantity and intensity of effort required for project completion is challenging at an early stage of
the Agile software development lifecycle.
 Dependency on the customer leads to wrong progress in the project if the team encounters ambiguity.
 It is difficult for new programmers to adapt to the workplace environment as the senior programmers make most
decisions.
 Higher flexibility and adaptability can also lead to scope creep and lack of control over project scope.
 The swiftness of Agile development with high intensity, more number of sprints, and close deadlines lead to mental
exhaustion and increased pressure on team members, further leading to burnout.
 Agile development lacks the structure compared to other methodologies, which results in oversight and poor
governance.

Agile Team
 An Agile team is a group of people who work together to complete a project using the Agile methodology. Agile
teams are typically cross-functional, self-directed, and self-organized, and are made up of people with a variety of
skills. They are known for their ability to adapt to change and deliver high-quality results in a timely manner.
 Agile teams are typically collocated and often wholly dedicated to the project during its timeline, with no
obligations to other projects.
 An Agile team needs every person required to produce the end product or service.
 When building a high-performing Agile team, there are a number of steps to follow. You need to:
 Choose your Agile framework
 Define clear goals
 Identify key roles to assign work
 Set up continuous feedback loops
 Create a culture of transparency
 Use real-time collaboration tools

Characteristics of Agile teams:


1. Cross-functional
Agile teams are made up of people with a variety of skills, such as design, development, and testing.
2. Self-directed
Agile teams are self-organized and share accountability.
3. Iterative
Agile teams work in phases, producing a working product after each iteration. This allows them to get regular
feedback and make adjustments throughout the project.
4. Collaborative
Agile teams collaborate, communicate, and interact regularly to ensure everyone is aligned on the project goals.

Agile Implementation
To implement the Agile methodology successfully for software development, you need to review the following points:

Step 1: Define and Plan the Project Scope and Vision

Communicate with the team and use the Elevator Pitch method. Find the target customer, statement of need, specific
product name and category, its benefits, primary competitive alternative, and final statement of primary differentiation.

Step 2: Develop the Path to Reaching the Product

The product owner must use the strategy to develop the path to the product or software. It will include goals and how to
achieve them. Every goal will have features, metrics, and other key information.

Step 3: Schedule Deadlines

It includes prioritizing the software features to be launched first, followed by subsequent losses. It will include 3 to 5 sprints.

Models of Agile or Types of Agile


Agile is not a set process or system, but a set of principles and values. But when it comes to acting out the agile
approach, the best model depends on the unique goals and problems of your organization and team.
There are several popular models of agile, including:
 Kanban.
 Scrum.
 DevOps.
 Crystal.
 Xtreme Programming (XP).

1. KANBAN
Kanban is a visual scheduling system that helps a team determine what to produce, when to produce it, and how much to
produce.

To implement kanban:

 Create a visual workflow and picture the product in each state—from concept to deployment.
 Develop rules to limit work in progress (WIP) to prevent your team from becoming overwhelmed, and keep
progress continuous and steady.
 Manage the flow in order to allow and prepare for changes that will occur within the iteration.
 Make the team, queue and practice policies explicit so your team knows how to participate in the process properly,
ensuring a smoother iteration
2. SCRUM
Scrum is an agile project management model that consists of small teams working interdependently. The teams work
together, but focus on their own tasks and must be capable of self management and decision-making.

Scrum is based around a “sprint,” which is generally a 1-4 week period for delivering a working part of the system. At the
end of a sprint the results are delivered, then reviewed, and the next sprint is started.

 The product owner creates and prioritizes a product backlog.


 The product owner selects story cards from the product backlog and adds them to the sprint backlog, deciding
which cards get implemented.
 A sprint (or iteration) is a short amount of time to get a significant amount of work done, and the team selects the
duration (LeanDog recommends 1-2 weeks).
 The team meets each day during a “daily scrum” to assess their progress.
 The Scrum Master keeps the team focused on their goals.
 At the end of each sprint, the work that was selected from the product backlog should be released to the customer,
put on a store shelf, or shown to a stakeholder.
 Every sprint ends with a sprint review and retrospective.
 When a new sprint begins, the team selects another group of story cards from the product backlog.

3. DevOps
The DevOps movement is aimed at removing these silos, encouraging continuous improvement at all levels, and leveraging
automation to work smarter, not harder.

The essential aspects of DevOps covered below are:

 Continuous improvement.

 Continuous delivery.

 Testing automation.

 Infrastructure automation.

 Integrate security earlier into the development process.

Note- A silo is a part of a company, organization, or system that doesn't work well with other parts. Silos can occur when
departments or teams have separate visions, goals, and responsibilities, and don't communicate with each other.

4. Extreme Programming (XP)

Extreme Programming uses an object-oriented approach (Appendix 2) as its preferred development paradigm and
encompasses a set of rules and practices that occur within the context of four framework activities: planning, design,
coding, and testing.

HOW TO SELECT THE RIGHT AGILE MODEL


Consider specific circumstances to figure out what might be the best fit for each situation:

 Recognize that current processes, organizational structures, culture and approaches are usually the key causes of
throughput or quality problems—not your people.

 Coach your people on recognizing problems and challenges. Finding, identifying and talking about these roadblocks
is expected and encouraged.

 Select the processes and approaches suited best to help your organization, based on the problems and challenges
being highlighted.
Introduction to Cloud Computing
Cloud Computing is the delivery of computing services such as servers, storage, databases, networking, software, analytics,
intelligence, and more, over the Cloud (Internet).

Cloud Computing provides an alternative to the on-premises datacentre. With an on-premises datacentre, we have to
manage everything, such as purchasing and installing hardware, virtualization, installing the operating system, and any
other required applications, setting up the network, configuring the firewall, and setting up storage for data. After doing all
the set-up, we become responsible for maintaining it through its entire lifecycle.

But if we choose Cloud Computing, a cloud vendor is responsible for the hardware purchase and maintenance. They also
provide a wide variety of software and platform as a service. We can take any required services on rent. The cloud
computing services will be charged based on usage.

The cloud environment provides an easily accessible online portal that makes handy for the user to manage the compute,
storage, network, and application resources.

Advantages of cloud computing


o Cost: It reduces the huge capital costs of buying hardware and software.

o Speed: Resources can be accessed in minutes, typically within a few clicks.

o Scalability: We can increase or decrease the requirement of resources according to the business requirements.

o Productivity: While using cloud computing, we put less operational effort. We do not need to apply patching, as
well as no need to maintain hardware and software. So, in this way, the IT team can be more productive and focus
on achieving business goals.

o Reliability: Backup and recovery of data are less expensive and very fast for business continuity.

o Security: Many cloud vendors offer a broad set of policies, technologies, and controls that strengthen our data
security.

Disadvantages of Cloud Computing


Cloud computing has several disadvantages, including:

 Downtime: Cloud computing services are internet-based, so service outages can occur due to weak connectivity or
internet outages. These outages can cost businesses over $100,000 per hour.
 Security risks: Cloud computing can lead to data loss, data leakage, and other security risks. According to a survey,
98% of companies using cloud computing services experienced a data breach between 2020 and 2022.

 Vendor lock-in: You may become locked into a vendor when using cloud computing.

 Limited control: You may have less control over the cloud infrastructure.

 Integration complexity: Integrating cloud computing with existing systems can be complex.

 Unforeseen costs: Cloud computing may incur unexpected expenses.

 Trusting third-party providers: You need to share your data with a third-party vendor, which can be risky.
Types of Clouds
o Public Cloud: The cloud resources that are owned and operated by a third-party cloud service provider are termed
as public clouds. It delivers computing resources such as servers, software, and storage over the internet

o Private Cloud: The cloud computing resources that are exclusively used inside a single business or organization are
termed as a private cloud. A private cloud may physically be located on the company’s on-site datacentre or hosted
by a third-party service provider.
o Hybrid Cloud: It is the combination of public and private clouds, which is bounded together by technology that
allows data applications to be shared between them. Hybrid cloud provides flexibility and more deployment options
to the business.

Cloud Services Model/Types of Cloud Services


1. Infrastructure as a Service (IaaS): In IaaS, we can rent IT infrastructures like servers and virtual machines (VMs),
storage, networks, operating systems from a cloud service vendor. We can create VM running Windows or Linux and
install anything we want on it. Using IaaS, we don’t need to care about the hardware or virtualization software, but
other than that, we do have to manage everything else. Using IaaS, we get maximum flexibility, but still, we need to
put more effort into maintenance.
Advantages of IaaS
 IaaS is cost-effective as it eliminates capital expenses.
 IaaS cloud provider provides better security than any other software.
 IaaS provides remote access.
Disadvantages of IaaS
 In IaaS, users have to secure their own data and applications.
 Cloud computing is not accessible in some regions of the World.

2. Platform as a Service (PaaS): This service provides an on-demand environment for developing, testing, delivering,
and managing software applications. The developer is responsible for the application, and the PaaS vendor provides
the ability to deploy and run it. Using PaaS, the flexibility gets reduce, but the management of the environment is
taken care of by the cloud vendors.
Advantages of PaaS
 PaaS is simple and very much convenient for the user as it can be accessed via a web browser.
 PaaS has the capabilities to efficiently manage the lifecycle.
Disadvantages of PaaS
 PaaS has limited control over infrastructure as they have less control over the environment and are not able
to make some customizations.
 PaaS has a high dependence on the provider.

3. Software as a Service (SaaS): It provides a centrally hosted and managed software services to the end-users. It
delivers software over the internet, on-demand, and typically on a subscription basis. E.g., Microsoft One Drive,
Dropbox, WordPress, Office 365, and Amazon Kindle. SaaS is used to minimize the operational cost to the maximum
extent.
Advantages of SaaS
 SaaS can access app data from anywhere on the Internet.
 SaaS provides easy access to features and services.
Disadvantages of SaaS
 SaaS solutions have limited customization, which means they have some restrictions within the platform.
 SaaS has little control over the data of the user.
 SaaS are generally cloud-based, they require a stable internet connection for proper working.
Key Characteristics of Cloud Computing
1. On-demand self-service:
Before the cloud, an individual or business would need to buy, configure, and install an IT infrastructure to
support their computing needs. With the advent of AWS, Microsoft Azure, Google Cloud, and other public
cloud platforms, it is now possible to access the IT tools you need much more quickly. You also don’t need
to provision the servers, databases, or other computing capabilities yourself, and you can get started
without understanding the underlying technology.
2. Resource pooling:
With the public cloud, you have access to resource pooling. For example, instead of one small business
investing in all the technology needed to develop a new application, it can turn to a cloud provider.
Common resources are shared on a high-efficiency infrastructure maintained, monitored, secured, and
updated by experts. Meanwhile, a small business can take advantage of economies of scale and only needs
access to the internet to take advantage of the cloud resources.
3. Broad network access:
The cloud provides broad network access, with resources available from anywhere with an internet
connection.
4. Scalability:
Since the actual computing resources are online, it is much easier to scale up or down as needed. For
instance, If a business needs more data backup, it can contract with the cloud provider for more storage. It
doesn’t have to shop around for its data storage technology, wait for that hardware to arrive, set it up, and
secure it first. Or, if a business wants to scale back when a team shrinks, it can simply pay for fewer software
licenses instead of having unused desktops and other technology taking up space and budget.
5. Pay-per-use availability:
The cloud computing provider can measure your resource utilisation and charge per use. Providers may
even be able to bill you down to the second. However, agreeing to a long-term commitment could see
greater cost savings.
6. Resilience:
This means that if something happened to your own business (say a power outage), while your on-premises
computers were down, your employees could continue to function by logging in to the cloud from off-site
networks
Cloud Deployment Models
 Cloud Deployment Model functions as a virtual computing environment with a deployment architecture that varies
depending on the amount of data you want to store and who has access to the infrastructure.
 The cloud deployment model identifies the specific type of cloud environment based on ownership, scale, and
access, as well as the cloud’s nature and purpose.
 The location of the servers you’re utilizing and who controls them are defined by a cloud deployment model.
 It specifies how your cloud infrastructure will look, what you can change, and whether you will be given services or
will have to create everything yourself.
 Different types of cloud computing deployment models are described below.
 Public Cloud
 Private Cloud
 Hybrid Cloud
 Community Cloud
 Multi-Cloud

Public Cloud Model


 The public cloud makes it possible for anybody to access systems and services.
 The public cloud is one in which cloud infrastructure services are provided over the internet to the general
people or major industry groups.
 The infrastructure in this cloud model is owned by the entity that delivers the cloud services, not by the
consumer.
 It is a type of cloud hosting that allows customers and users to easily access systems and services.
 In this arrangement, storage backup and retrieval services are given for free, as a subscription, or on a per-
user basis. For example, Google App Engine etc.

Advantages of the Public Cloud Model

 Minimal Investment: Because it is a pay-per-use service, there is no substantial upfront fee, making it excellent for
enterprises that require immediate access to resources.

 No setup cost: The entire infrastructure is fully subsidized by the cloud service providers, thus there is no need to
set up any hardware.
 Infrastructure Management is not required: Using the public cloud does not necessitate infrastructure
management.

 No maintenance: The maintenance work is done by the service provider (not users).

 Dynamic Scalability: To fulfill your company’s needs, on-demand resources are accessible.

Disadvantages of the Public Cloud Model

 Less secure: Public cloud is less secure as resources are public so there is no guarantee of high-level security.

 Low customization: It is accessed by many public so it can’t be customized according to personal requirements.

Private Cloud Model


 The private cloud deployment model is the exact opposite of the public cloud deployment model. It’s a one-on-one
environment for a single user (customer).
 There is no need to share your hardware with anyone else.
 It is also called the “internal cloud” & it refers to the ability to access systems and services within a given border or
organization.
 The cloud platform is implemented in a cloud-based secure environment that is protected by powerful firewalls and
under the supervision of an organization’s IT department.
 The private cloud gives greater flexibility of control over cloud resources.

Advantages of the Private Cloud Model

 Better Control: You are the sole owner of the property. You gain complete command over service integration, IT
operations, policies, and user behavior.
 Data Security and Privacy: It’s suitable for storing corporate information to which only authorized staff have access.
By segmenting resources within the same infrastructure, improved access and security can be achieved.
 Supports Legacy Systems: This approach is designed to work with legacy systems that are unable to access the
public cloud.
 Customization: Unlike a public cloud deployment, a private cloud allows a company to tailor its solution to meet its
specific needs.

Disadvantages of the Private Cloud Model

 Less scalable: Private clouds are scaled within a certain range as there is less number of clients.

 Costly: Private clouds are more costly as they provide personalized facilities.

Hybrid Cloud Model


 By bridging the public and private worlds with a layer of proprietary software, hybrid cloud computing gives the
best of both worlds.
 With a hybrid solution, you may host the app in a safe environment while taking advantage of the public cloud’s
cost savings.
 Organizations can move data and applications between different clouds using a combination of two or more cloud
deployment methods, depending on their needs.

Advantages of the Hybrid Cloud Model

 Flexibility and control: Businesses with more flexibility can design personalized solutions that meet their particular
needs.

 Cost: Because public clouds provide scalability, you’ll only be responsible for paying for the extra capacity if you
require it.

 Security: Because data is properly separated, the chances of data theft by attackers are considerably reduced.

Disadvantages of the Hybrid Cloud Model

 Difficult to manage: Hybrid clouds are difficult to manage as it is a combination of both public and private cloud. So,
it is complex.

 Slow data transmission: Data transmission in the hybrid cloud takes place through the public cloud so latency
occurs.
Community Cloud Model
 It allows systems and services to be accessible by a group of organizations.
 It is a distributed system that is created by integrating the services of different clouds to address the specific needs
of a community, industry, or business.
 The infrastructure of the community could be shared between the organization which has shared concerns or tasks.
 It is generally managed by a third party or by the combination of one or more organizations in the community.

Advantages of the Community Cloud Model

 Cost Effective: It is cost-effective because the cloud is shared by multiple organizations or communities.

 Security: Community cloud provides better security.

 Shared resources: It allows you to share resources, infrastructure, etc. with multiple organizations.

 Collaboration and data sharing: It is suitable for both collaboration and data sharing.

Disadvantages of the Community Cloud Model

 Limited Scalability: Community cloud is relatively less scalable as many organizations share the same resources
according to their collaborative interests.

 Rigid in customization: As the data and resources are shared among different organizations according to their
mutual interests if an organization wants some changes according to their needs they cannot do so because it will
have an impact on other organizations.

Multi-Cloud Model
 It’s similar to the hybrid cloud deployment approach, which combines public and private cloud resources.
 Instead of merging private and public clouds, multi-cloud uses many public clouds.
 Although public cloud providers provide numerous tools to improve the reliability of their services, mishaps still
occur.
 It’s quite rare that two distinct clouds would have an incident at the same moment.
 As a result, multi-cloud deployment improves the high availability of your services even more.
Advantages of the Multi-Cloud Model

 You can mix and match the best features of each cloud provider’s services to suit the demands of your apps,
workloads, and business by choosing different cloud providers.

 Reduced Latency: To reduce latency and improve user experience, you can choose cloud regions and zones that are
close to your clients.

 High availability of service: It’s quite rare that two distinct clouds would have an incident at the same moment. So,
the multi-cloud deployment improves the high availability of your services.

Disadvantages of the Multi-Cloud Model

 Complex: The combination of many clouds makes the system complex and bottlenecks may occur.
 Security issue: Due to the complex structure, there may be loopholes to which a hacker can take advantage hence,
makes the data insecure.

Virtualization
 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.
 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.
 The term virtualization is often synonymous with hardware virtualization, which plays a fundamental role in
efficiently delivering Infrastructure-as-a-Service (IaaS) solutions for cloud computing.
 Moreover, virtualization technologies provide a virtual environment for not only executing applications but also for
storage, memory, and networking.
Work of Virtualization in 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.

Benefits of Virtualization
 More flexible and efficient allocation of resources.
 Enhance development productivity.
 It lowers the cost of IT infrastructure.
 Remote access and rapid scalability.
 High availability and disaster recovery.
 Pay peruse of the IT infrastructure on demand.
 Enables running multiple operating systems.

Drawback of Virtualization
 High Initial Investment: Clouds have a very high initial investment, but it is also true that it will help in
reducing the cost of companies.
 Learning New Infrastructure: As the companies shifted from Servers to Cloud, it requires highly skilled staff
who have skills to work with the cloud easily, and for this, you have to hire new staff or provide training to
current staff.
 Risk of Data: Hosting data on third-party resources can lead to putting the data at risk, it has the chance of
getting attacked by any hacker or cracker very easily.
Characteristics of Virtualization
 Increased Security: The ability to control the execution of a guest program in a completely transparent manner
opens new possibilities for delivering a secure, controlled execution environment. All the operations of the guest
programs are generally performed against the virtual machine, which then translates and applies them to the host
programs.

 Managed Execution: In particular, sharing, aggregation, emulation, and isolation are the most relevant features.

 Sharing: Virtualization allows the creation of a separate computing environment within the same host.

 Aggregation: It is possible to share physical resources among several guests, but virtualization also allows
aggregation, which is the opposite process.

Types of Virtualization/ Virtualization Techniques


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.
The main types of server virtualization:
i) Operating System (OS) Virtualization – Virtualization software allows for the creation of multiple virtual
machines (VMs) that are run as separate operating systems. The potential uses of this kind of operating
system virtualization architecture are enormous, such as allowing the software to be tested on different
operating systems, applications to be tried out, etc.
ii) Full Virtualization – This is essentially the complete cloning of the test hardware into the virtual
environment. It allows for extremely accurate simulations to test software and applications, while also
having the enormous benefit of allowing multiple users to share the environment at once.
iii) Para-virtualization – This is very similar to the hypervisor principle because a hypervisor is installed on the
server which then allows for a guest operating system to be set up. This increases the server performance
without operating cost of the host operating system. It allows the software to run on virtual machines
where the hardware is different from the underlying hardware. It differs from Full Virtualization in that the
various guest servers are aware of one another.

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.

You might also like