Software engineering teams (e.g., the developer, tester, IT operations engineer) rely on quick and ready access to machines to get their work done. In providing this ready access to software machines and lab infrastructure, here are some of the challenges that system administrators face:
- Machine (physical or virtual) sprawl. Here is an example of a user being overwhelmed by the number of virtual machines being created.
- Reducing the delay for users to get access to pristine machines (i.e., machines loaded with the right images and software stacks to conduct tests, for development etc.)
- Security and user access control for various machines – some machines and configurations need to be locked out of public access. In addition, only specific teams and users should have access to it
- Controlling and managing the amount of storage resources that each user can access
- Monitoring and managing the software license use. It has been written about here and here
- Leveraging existing user databases like LDAP/AD to control user access to virtual machines
Are there other challenges that you see and missing from the list above?
What is the best approach to address these challenges in providing a self serve environment? Do you let each team (dev/test/…) run in silos and just hope for the best in addressing each of the challenges above? Are there any synergies that can be leveraged?
Self serve IT within bounded policies/quotas is a key benefit of virtual lab automation solutions. VLA solutions like VMLogix LabManager provides this self serve IT capability that offers the following:
- Administrator can setup and control a self serve lab environment
- The administrator can enable many users and add them all to the lab system. The administrator can leverage existing user database systems like LDAP/AD can be used to authenticate users prior to them using the lab resources. Every user is required to sign-in/authenticate before they get access to the virtual machine/configuration library and other lab assets
- Every user can get access to the resources and functionality as configured by the administrators. This essentially means that the lab functionality exposed to a user is customizable. For example, user_A can create virtual machines and deploy configurations whereas user_B can only deploy configurations/templates
- The administrator can configure storage quotas (based on individual users) and leases (for various lab resources) – so no single user can cross bounds of how the lab is meant to be utilized
- Allow each user to operate without hindrance in the self serve environment
- Every user can independently deploy configurations on a central set of host resources. In addition, multiple users can deploy the same configuration in parallel without needing to go create the same configuration from scratch (wasting time and storage resources in the process)
- Every user added to the system can access the lab easily via a web browser
- Sharing is enabled between the many users and teams. So, a virtual machine with the software stack installed can be captured as a template and shared with other users/teams — that way multiple users do not need to create the template and waste storage space.