| career | getting experience - Carlos Marquez
How to Become a VDI Engineer
It's common in IT to start off your career in a broad role (like system admin, network admin, or support tech) and then later specialize. What you learn early in your career often informs the path you take — and there are lots of choices. You can expand into high-level infrastructure, or become a deeply knowledgeable specialist on one software.
Becoming a VDI engineer typically actually means a little bit of both. Due to the nature of the VDI software and how it's used, you'll need to both know the high-level and nitty gritty of the software. Here’s how you can become a VDI engineer.
What is VDI?
The term itself stands for virtual desktop infrastructure. This may sound a bit intimidating at first, but it simply means running virtualized desktop software from a virtual server environment. Other terms in this space that often get lumped into the same bucket are desktop virtualization, End-User Computing (EUC) and lastly Desktop as a Service (DaaS).
Similar to how the term Kleenex is used, VDI now covers a sector of solutions from multiple vendors including Citrix Virtual Desktops (previously XenDesktop), Dell Quest (EOL), Oracle VDI (EOL), VMware Horizon (previously View), and Windows Virtual Desktop (WVD) among others.
Due to the similarity in their underlying technologies many of these vendors also offer comparable Application Virtualization solutions alongside their VDI counterparts.
While there are many iterations of how VDI is implemented the basic purpose is to provide:
- centralized management
- enhanced compliance of updates/patches
- increased perimeter security
To achieve this, base images are built and updated that downstream resources use as reference points when booting. In theory, this means that every time a VDI is booted it receives the latest patches, software and any configurations the VDI engineer deems necessary. Sounds like magic, right? Well, there's a lot that goes into it, and again, it varies by vendor.
What Does a VDI Engineer Do?
A VDI engineer role typically involves building and maintaining the VDI infrastructure and its supporting base images. The VDI Infrastructure varies by vendor, but the typical components exist across all vendors:
- a hypervisor for virtualization;
- a brokering service for administrators to make assignments/entitlements of resources;
- a database to store assignments/entitlements and usage history; and
- a web front-end for users to access their resources.
These components have quarterly to semi-annual updates that include necessary security patches, bug fixes, and features that can be beneficial to the businesses' needs.
So, other than quarterly infrastructure updates, what else does a VDI Engineer do? The majority of a VDI engineer's time is actually spent configuring, testing, and analyzing base images. A base image (aka golden image, master image, replica, etc.) includes an operating system, any installed applications, and its configurations. The base image serves as the template by which other downstream VDIs/servers will be created.
In the example above, a base image is copied to shared storage where other resources (VDIs or servers) can access a read-only copy of that base image and perform their initial boot. Additional disks are attached that provide the VM with a place to store identifying characteristics (aka computer name, AD account password, etc.) and a place to store any changes incurred while booted.
Depending on your vendor selection, these disks go by different names from identity/internal disk to difference/delta disk (Citrix/VMware, respectively). Regardless of whichever provisioning solution you select the name of the game here is the same: SCALE. These technologies allow an engineer to deploy an application update or configuration change across a cluster of VDIs or Publishing Servers (not just one or two as in our example) while ensuring consistency for the end-user experience.
While at first this may seem like a typical system administrator task, it quickly becomes apparent that preparing base images involves more than the standard Windows desktop operating system (OS) install. Think about it, with VDI the goal is to pack as many Windows desktop OSes on a single server with minimal performance impact. In order to do this, some sacrifices must be made in the form of trimming the bloat out of Windows.
To provide an example of something that would typically be considered as "unnecessary," best-practice guides often suggest disabling the Windows Search services. Why, do you ask? Well the Windows Search service runs an indexing service that by default scours certain directories on your machine and itemizes the content of the file. While perhaps trivial on one workstation, the effect of doing this across say 50 VDIs creates a significant re-occurring overhead on the hosting server that effectively reduces the number of VDIs that host can support. But note, every decision has a repercussion. For instance, disabling the Windows Search service in Windows will cause not only Windows searches to slow, but other searches that depend on it to as well, i.e. Outlook.
Both VDIs and application virtualization solutions require a whole slew of these best-practice configurations. These optimizations require VDI engineers to know their virtual infrastructure, network, storage, and overall environment extremely well to architect the best solution as these best-practices don't always work for every environment. Like the example provided above, some of these decisions have consequences that your business or users may not be willing to accept.
How to Get VDI Experience
As hinted upon in the last section, VDI is really a culmination of troubleshooting skills and some infrastructure knowledge combined with an understanding of your environment. In layman's terms, every organization is different, but a great place to start is the service desk. It provides an opportunity to get to know your users, their experiences, and your company's applications.
Once you've mastered this arena the natural progression is to become a system administrator, where managing the back-end systems is the key responsibility. Here, you'll learn where everything is, how it all interacts, and the patience to track a problem to its root cause.
Depending on your level of curiosity and how involved you got with tracking issues to their root-cause, this step can be merged with the previous. But do not underestimate the importance of learning the basics of domain services, three tiered applications, and network security.
The last step before honing on becoming a VDI engineer is to learn the infrastructure. In today's world the infrastructure typically refers to the virtual server environment, data-center networking, and shared storage. This is where you will learn how decisions around base image optimizations impact the end-user experience and potentially other systems on the same infrastructure.
A good example of a lesson learned would be how boot storms can cause high IOPS resulting in unavailable machines or the inability of user profiles to load quickly upon logon.
Once you have a solid base of experience, there are some really great resources online to get you kick-started with hands-on VDI experience. To begin, it's great to start with training to help you get your bearings. CBT Nuggets has some great courses in this space that will give you a leg up on the chase.
Once you've tackled some training, VMware offers free hands-on-labs to test their latest features. This is a great place to gauge your aptitude and general interest in what it's like to perform the day-to-day tasks of a VDI engineer. Other alternatives would include vendor documentation, vendor-sponsored hands-on webinars, local user groups, free/trial licenses for home lab use.
How I Became a VDI Engineer
With all this said, how exactly did I become a VDI engineer? Well, as described in the "How to get VDI Experience" section, I mostly came up those same ranks. The intriguing part of what guided me to VDI though isn't in the technical skills, but rather in the subjective nature of what I enjoy.
I'll go out on a limb and say most system engineers and administrators would prefer to avoid end users and their issues, work on projects, and build things. There is nothing wrong with that.
It just so happened that I actually enjoyed those small wins that came with helping the users. That moment of gratification that comes with A) accomplishing something in the same day you start it and B) witnessing the user's appreciation for your assistance.
To me, being a VDI engineer comes down to having the right combination of a few traits: curiosity, determination, and customer service. Collectively, these traits result in an engineer who enjoys determining the root cause of an issue — and implements solutions that improve the end-user experience.
If you find yourself fitting this mold, I'd highly recommend the specialty of VDI engineering, and encourage you to learn some of the skills that I referenced previously. You might just find yourself on a new career path.