Custom VM Endpoints Use Cases

Custom VM Endpoints was designed to enable a better user experience for labs that are using some form of nested virtualization as a solution. For example, running virtual machines (VMs) inside a VM running on Skillable. Nested virtualization could use a range of technologies including (but not limited to):

  • Hyper-V

  • Broadcom ESX

  • Virtual Box

  • Linux KVM

  • Containers

Best Practices for Custom VM Endpoints

There are many use cases for using Custom VM Endpoints, however, the primary objective is to deliver a better experience for the Lab audience. When looking at the best practices, the use of Custom VM Endpoints should unlock any combination of:

  • Improve the available screen area - Command lines given a much larger window and larger font.

  • Enable simpler navigation between services, command line to web, etc.

  • Enable separation between lab tasks or operations on the same VM.

  • Improve keyboard typing performance (generally VMware virtualization labs).

  • Enables automatic screen sizing of Linux VMs with a Graphical User Interface (GUI) when using Hyper-V virtualization.

  • Enable Type Text on Linux VMs, using Hyper-V virtualization.

One thing to consider when designing the lab, is if the end user will access the VM using Custom VM Endpoints, does the VM actually need to be displayed to the end user? More often this may cause confusion with the end user.

Configured Examples

To help you understand how to configure Custom VM Endpoints, there are a couple of Showcase Lab Solutions available in the Skillable Public Template Gallery. These provide:

  • Full details on how to configure each Endpoint type.

  • A preconfigured VM.

  • Instructions on reverse engineering the configuration so you can see how it works.

These are not designed as functioning labs. These labs are designed to allow you to explore Custom VM Endpoint configuration.

Showcase solutions available

Template Name

Operating System

Endpoints Configured

Custom VM Endpoints (Ubuntu)

Linux

HTTP, HTTPS, SSH (bash), SSH (PowerShell), XRDP

Custom VM Endpoints (Windows)

Windows

HTTP, HTTPS, SSH (Windows CMD), SSH (PowerShell), RDP

These can be found in the template gallery by selecting Feature Demos in the Solution Showcase section. The best use is to use the Preview function as you would not need to clone these.

Use cases

There are many use cases that VM Endpoints can assist with, and providing the best practices are always kept in mind, so the end user will benefit from the improvements VM Endpoints provide.

Example 1 - Web Development

Normally for Web Development labs the end user will be connected to a single VM, and that VM will contain the Integrated Development Environment (IDE) and the Web Server. Often a relatively large VM is provided, and the end user can get lost with too many windows open when switching between tasks. Custom VM Endpoints can solve this by allowing the Lab Developer to build a small VM, without a GUI, then install Code-Server on the VM as well as the Web Server (Apache, Nginx, etc). The Code-Server and the Web Server are then presented as separate HTTP VM Endpoints, and the user just has two tabs which allows easy switching between the two environments without getting lost or confused. As the image below shows the user has access to the command Line, Code-Server and the web application, using the tab selection at the top of the VM window:
image.png

Example 2 - Web/Cloud Applications

Many web-based applications can be hosted on Windows or Linux, as well as in the cloud. Custom VM Endpoints can be a great way to build labs on the administration and usage of the web application or website. This enable you to have exact control on costs as opposed to the slightly unpredictable nature of Cloud costs but deliver the high-quality native web application experience. There is no longer a requirement for the end user to sign into a VM, launch the browser, connect to the correct URL. The endpoint is just there and ready to go.