The knowledge and expertise for creating dev and test labs spans multiple knowledge areas. From Cloud knowledge which contain building images and writing scripts for provisioning, till making the proper decision when to use and create the Dev/Test infrastructure and what is the needed infrastructure, what does it contain to make a viable validation of the application under test. The needed knowledge can be grouped in to three categories.
Dev/Test Lab knowledge categories.
Based on expertise and usages the Azure Dev/Test Lab Management Knowledge needs can be organized in three groups. Every group comes in play at a different time, is used once or many times and uses different tools.
- Azure Infrastructure knowledge.
Generic Cloud infrastructure knowledge, needed to create the template, scripts and images which will be used to create the Dev/Test infrastructure.
- Project Dev/Test Infrastructure knowledge.
Project specific knowledge within the team running the project. To answer the question: what is the minimal set of machines and configuration needs for the System Under Test to have a viable test result.
- Test knowledge.
Knowledge needed by the team running the project to make a proper decision when to create a dev/test lab instance.
When looking at the categories in relation with a project every knowledge category is needed in a different phase, with a different frequency and with different tool support.
Test Knowledge is needed every day every sprint every time. A team member needs to have the test knowledge to make a decision to create a new Dev/Test environment. This can be based on a new feature, a ready test set, a successful build run or a new bug verification and many more triggers (knowledge). Project specific knowledge, the creation of the Dev/Test environment must be an easy fast tasks. This task must not be slowed down of the decision what kind test infrastructure is needed and definitely not by first having to create the proper scripts and images. Both already should have be done and ask completely different knowledge.
The Project Dev/Test Infrastructure knowledge selects and prepares the templates for the Dev/Test Infrastructure for the Team. This selection is done within the team often by a technical lead with knowledge what the project needs are. A selection can be done from a maintained library of infrastructure definitions or together with a cloud infrastructure specialist one can be created. The prepared dev/test infrastructure template is used by the team to quickly efficient create the environments. Often only once a project or release this selection and preparation of prepared templates is needed to be done.
Azure Infrastructure knowledge is a multi-project specialism, it must be reused for multiple projects. It builds resource definitions and scripts for projects and is very a very technical activity. With this knowledge projects are supported in building their Dev/Test infrastructure templates. It also maintains a library of predefined often used resource definitions and scripts from where technical leads can select.
Having a process / structure in place to make as efficient as possible use of knowledge is key to be successful in Dev/Test lab management. One team member with all the knowledge is very inefficient, specially between the project generic and project specific knowledge. Setting up a support team is almost a must to be successful in Dev/Test lab management, otherwise teams will drown in knowledge gathering which is only used once per project.
Sogeti OneShare Service
The Sogeti OneShare service separate the needed knowledge. In the Sogeti Cloud Service Factory there are cloud Infra specialists with very detailed technical Cloud knowledge. This Service Factory maintains a library of infrastructure templates and images. This library can be used by the project technical leads who know the project needs for their Dev/Test infrastructure. Within the OneShare project portal this technical lead selects the template and pre-fills the template with project specific details. So at the end any team member can create a Dev/Test infrastructure with the test knowledge they have.
Cloud Infra Specialist
OneShare makes it easy for team members to great Azure Resource Groups via a template mechanism. A Sogeti Cloud technology specialist can help with the creation of the Azure Resource Manager JSON template or a default template can be uploaded in the OneShare portal.
Project Technical Lead.
When the ARM JSON is uploaded a OneShare Resource Group template can be made. This OneShare RG template contains values for default settings and will abstract away the technical complex details for the end user.
End users can now simply create an Azure Resource Group by using this OneShare RG template just by filling in a name (and the left open parameters).
OneShare uses the three technology levels for Azure Resource Manager:
1. Infrastructure specialist: Creates the Azure Resource Manager JSON file. Has detailed Azure Infrastructure knowledge.
2. Project Technology specialist: Selects the ARM JSON file and create the project specific OneShare RG template. Has detailed project needs knowledge.
3. Team member: Creates and deletes Azure Resource groups based on the OneShare RG template. Knows when an environment is needed.
With this separation of knowledge and specialism teams can move fast and are flexible in the usages of their environment needs.
Resource for knowledge:
Azure Infrastructure knowledge.
Project Dev/Test Infrastructure knowledge.