Virtual Machine (VM)
A virtual machine is a software implementation of a computer that runs on physical hardware.
Classification
- ComplexityMedium
- Impact areaTechnical
- Decision typeTechnical
- Organizational maturityAdvanced
Technical context
Principles & goals
Use cases & scenarios
Compromises
- Security risks from multiple applications
- Cost estimation is difficult
- Maintenance effort can be high
- Regularly perform security updates
- Monitor resource usage
- Perform backups regularly
I/O & resources
- Physical hardware
- Operating system images
- Network configurations
- Running virtual machines
- Deployed applications
- Diagnostic data
Description
Virtual machines allow multiple operating systems to run on a single physical hardware platform. They provide isolation between applications and can utilize resources more efficiently.
✔Benefits
- Better resource utilization
- Increased flexibility
- Easier management
✖Limitations
- Performance bottlenecks in resource-intensive applications
- Increased management overhead
- Dependency on the underlying hardware
Trade-offs
Metrics
- Resource Utilization
Percentage of used resources versus total resource capacity.
- Performance Metric
Measurement of response time and throughput of applications.
- Availability Rate
Percentage of time the virtual machine is online and operational.
Examples & implementations
AWS EC2
Amazon EC2 enables the creation and use of virtual machines in the cloud.
VMware vSphere
VMware vSphere is a platform for managing virtual machines and data center resources.
Microsoft Azure VMs
Microsoft Azure provides virtual machines for running applications in the cloud.
Implementation steps
Install the hypervisor
Create virtual machines
Install and configure applications
⚠️ Technical debt & bottlenecks
Technical debt
- Outdated hypervisor versions
- Inadequate security updates
- Vulnerable network configuration
Known bottlenecks
Misuse examples
- Using unsupported operating systems
- Insufficient security configuration
- Neglecting updates
Typical traps
- Excessive virtualization can degrade performance
- Misunderstandings about licensing fees
- Lack of documentation for configurations
Required skills
Architectural drivers
Constraints
- • Required hardware resources
- • License requirements for software
- • Dependencies on other system-critical points