What is a fabric? Put simply, a “fabric” is the underlying technology that drives the environment learners interact with in your lab. The Skillable lab platform supports multiple virtualization, container and cloud provider platforms, including Azure, Amazon, Docker, Hyper-V and VMware.
The Skillable lab platform provides you with several options when selecting the delivery fabric for your lab. There are also options for interacting with platforms to which the Skillable lab platform is not currently fully integrated as well as with cloud providers to provision and manage environments that do not leverage virtual machines.
What are Virtualization Fabrics?
Virtualization has proven to be one of the most reliable training methods by ensuring all students receive the same starting environment. With the Skillable lab platform, you have a variety of virtualization hosting platform options which include both full scale virtual machines and lightweight Linux containers.
Virtual machine hosting options include Hyper-V, VMware, Amazon Web Services and Microsoft Azure, and container options include general Docker and Coding specific images.
Before you can begin to compare virtualization hosting fabrics, you need to understand the different options available for virtualization.
- Extreme User Concurrency: Fabrics that support extreme user concurrency on the Skillable lab platform can support more than 2,000 users simultaneously launching from a single location.
- Instantaneous Startup: Fabrics with instantaneous startup are ready for users to interact within 5-10 seconds after a learner launches it.
- Windows Support: Full support for Windows Client and Server up to Windows 11/Server 2022.
- Basic Linux Support: Linux support is provided for running the three major Linux distributions and their variants: Debian 8+ (including Ubuntu and Kali), SUSE 11+ (including openSUSE) and Red Hat Enterprise Linux 6.4+ (including CentOS). While these operating systems will run successfully in a terminal, there may be limitations around aspects like networking, system services and desktop versions.
- Full Linux Support: Linux is fully supported by these fabrics. Including advanced networking configurations, manipulating system services and full desktop interaction.
- Full Dev Suite Support: Fabrics that support a full dev suite can have numerous software development tools installed such as full integrated developer environments (like Visual Studio), CI/CD tools (like Jenkins) and more.
- Light IDE Support: Fabrics that support a Light IDE can provide users with a simplified integrated developer environment, such as Visual Studio Code.
- Basic Code Editing and Testing: Fabrics that enable basic code editing and testing enable the learning and evaluation of basic syntax or logic of programming languages.
- Nested Virtualization: This option provides the ability to run another hypervisor within your virtual machine.
- Highly Configurable Networking: Fabrics that have highly configurable networking permit complex networking configurations between various components of the environment itself, as well as the internet. Additionally, you may be able to select from one of many network adapter types or configure network monitoring on the adapter.
- GPU Graphics/Compute Options: Fabrics that require dedicated GPUs for high-performance or 3D graphics rendering can run on specialized hardware for compute-intensive scenarios.
- Start States: Start states permit a lab to be launched in an already running state, as compared to the standard format in which the virtual machines must go through a startup process. This has minimal impact on startup time but enables storing the RAM state of a virtual machine so that it may start up with already running programs.
- Session Recordings: Session recordings enable playback of an exam-taker’s instance to view a complete play by play of their time in the lab.
- Scoring Support: Fabrics with scoring support enable automated scripts to evaluate the learner’s environment and return a score based on how well they completed a task.
- Instructor Monitoring: Instructor monitoring enables instructors to view their student’s labs in real-time, including the ability to jump in and take control when assistance is needed.
While reviewing the above list, you should have identified a few key options that stand out as components you would like to use. Before you can decide on the fabric you want to use, you need to understand which options are available for each hosting fabric on the Skillable lab platform.
The table below will help you with your decision:
Feature | Hyper-V | VMware | Azure | AWS | Docker | Code |
Extreme User Concurrency | * | X | X | |||
Instantaneous Startup | X | X | ||||
Windows Support | X | X | X | X | ||
Basic Linux Support | X | X | X | X | X | |
Full Linux Support | X | X | X | X | ||
Full Dev Suite Support | X | X | X | X | ||
Light IDE Support | X | X | X | X | X | |
Basic Code Editing and Testing | X | |||||
Nested Virtualization | X | X | X | ** | ||
Highly Configurable Networking | X | X | ||||
GPU Graphics/Compute Options | *** | X | X | |||
Start States | X | |||||
Session Recordings | X | X | X | |||
Scoring Support | X | X | X | X | X | X |
Instructor Monitoring | X | X | X | X | X | X |
* Hyper-V supports extreme user concurrency under much more limited circumstances than other fabrics. If extreme user concurrency on Hyper-V is necessary, please consult with the Skillable team.
** AWS currently supports bare metal OS installations in public preview – allowing you to install your own hypervisor – however, this is an entire server stack and is extremely costly.
*** VMware on the Skillable lab platform does not support the addition of true GPUs, like the cloud providers do for advanced 3D imaging or extreme compute scenarios. Instead, it offers a discrete GPU, which permits options like basic 3D rendering.
Non-Virtualized Training Fabrics
Virtualization has become the technical training standard for creating uniform learning experiences for multiple students. While virtualization remains a necessity when you need to mirror an on-premises environment, if you do not need this type of environment, the Skillable lab platform offers options for training in non-virtualized environments. A non-virtualized environment eliminates the need to maintain virtual machine images and removes the impact of latency from a remote connection on the learning experience. Non-virtualized training options include full integration with cloud providers via Skillable’s Cloud Slice technology, side-by-side training with direct access to web and local applications and the ability to enhance both options by adding your own integrations using Life Cycle Actions.
Let’s take a look at the Skillable methods for facilitating non-virtualized training, starting with the Cloud Slice technology and the cloud providers with which the Skillable lab platform is already integrated.
Currently, the Skillable lab platform features full integration with Microsoft Azure and Amazon Web Services (AWS).
As outlined below, although the same overarching categories of capabilities apply to cloud slices of both providers, the way in which those capabilities are facilitated works a bit differently for each provider. All the below items are fully automated by the platform on each lab launch.
Azure Resource Group (CSR) | Azure Subscription (CSS) | Amazon Web Services (AWS) | |
Subscription Configuration | Skillable managed or your own Use subscriptions owned and maintained by Skillable or | Skillable managed only Use subscriptions owned and maintained by Skillable | Skillable managed or your own Use subscriptions owned and maintained by Skillable or |
User Account Creation | Generate one or more Azure user accounts at lab launch Azure user accounts may be Reader, Contributor or Owner | Generate one or more Azure user accounts at lab launch Azure user accounts may be Reader, Contributor or Owner | Automated login or IAM User Accounts generated at lab launch Automated login via a federated account, in addition to |
Resource Deployments | Deploy one or more resource groups at lab launch Each resource group may have one or more ARM templates | Deploy one or more subscriptions at lab launch Each subscription may have one or more resource groups with | Deploy one or more resources at lab launch Use one or more AWS CloudFormation templates to |
Resource Restriction Policies | Restrict what resources users can create in a resource group Control costs or steer learning objectives with full control over what | Restrict what resources users can create in a subscription Control costs or steer learning objectives with full control over what | Restrict what resources users can create in a subscription Control costs or steer learning objectives with full control over what |
Scoring | Azure CLI, PowerShell or SDK Evaluate learner environments to validate skills using | Azure CLI, PowerShell or SDK Evaluate learner environments to validate skills using | AWS CLI, PowerShell or SDK Evaluate learner environments to validate skills using |
If your training uses either Azure or AWS, you should use Cloud Slice. Cloud Slice can even be used in combination with virtualized hosting if your training scenario involves a hybrid environment. You can enhance the Cloud Slice experience even further by using Life Cycle Actions. However, if your training does not use one of these providers, you will need to use the direct access method.
Direct Access
With the Skillable lab platform, you can configure student labs to launch directly into any web-based portal while keeping the instructions visible. This permits fluid training of a web application in which students are presented with interactive instructions while maintaining full interaction with the web portal, without needing to switch back and forth between programs such as a document and a web browser. Beyond web-based applications, a lab that uses this format can also be tailored to a program on a user’s local computer.
Instead of maintaining a virtual machine to teach Windows PowerShell, for example, you could have students launch PowerShell on their local computer and it will run side-by-side with their instructions to permit a learning experience in an environment they use regularly. Lab Instructions can even be designed to Interact directly with desktop apps that support URL activation, such as Visual Studio Code.
Direct Access is ideal for any training that does not need the backbone of a virtualized fabric and is oriented around a platform that is not currently integrated with the Skillable lab platform. However, to bring your training experience to the next level, you should include Cloud Credential Pools and/or Life Cycle Actions to integrate with outside platforms.
Cloud Credential Pools
If you are working with a cloud platform that doesn’t have fully open APIs, or that only has APIs for some capabilities, sometimes it may be necessary to provision user accounts, access and possibly other resources or configurations ahead of time. When this is the case, it can then be difficult to deliver access to those user accounts learners need when they go through the labs. The Skillable lab platform overcomes this obstacle with Cloud Credential Pools. With these, you can assign a username, password and any additional user-specific information (for example a specific URL or ID value) that’s necessary for learners to use the platform and pre-provisioned user accounts.
Life Cycle Actions
While the Skillable lab platform’s Cloud Slice technology permits automated integration with the APIs of certain cloud providers, the Life Cycle Actions feature can be used to expand on these integrations (for example, initiating Azure PowerShell commands in addition to deploying ARM templates by using a Cloud Slice) or to make your own integrations with other platforms. This could be your own proprietary platform or any platform that has a publicly accessible API. At the beginning and end of a lab session, you can manipulate that API to automatically create and remove resources that are used for training.
Life Cycle Actions can provide a smoother training experience for the student by removing the need for actions that are not a part of the learning goals.
Best Practices
- Don’t be afraid of change. If you have worked on Hyper-V for a long time and realize that VMware has a feature you need, give it a shot and see how it works for you.
- When using Hyper-V or VMware, create your virtual machines natively on the Skillable lab platform instead of creating them locally, and then copying them to the Skillable lab platform. This reduces the number of files transferred and reduces the time needed to create and update labs.
- Don’t get “stuck” in a virtualized world. When full virtualization is not necessary, don’t rely on a virtual machine simply out of habit. Embrace cloud and container training fabrics. Harness cloud features when logical – for example, use Azure Cloud Shell instead of a local SSH client.
- Reuse content when possible. If you have a single virtual machine that can be used in numerous labs, it can cut down on your lab development time exponentially.
From our standpoint
Virtualization in hands-on learning will continue to be a part of the training landscape, as on-premises and hybrid deployments still exist. However, as the cloud options grow, and the use of the cloud further encompasses the workplace, consider harnessing direct cloud training as much as possible.
Ensure that you know the goals and intentions of your lab ahead of time so that you can choose the best fabric from the start.