Realising Lab-as-a-Service through Environment Models
One of my recent projects has been to provide a Enterprise solution for Environment Management to a large Tier 1 organisation. Within the design, we provided a definition of a process that highlighted the operationalisation of a process called the Build Pipeline which provided an environment configuration strategy to address quality concerns around artefact and source code configuration. The architecture and process enforced the Environment Agnostic Design principle to simplify and abstract the platform specific definitions. For example, by ensuring the environment specifications are saved as properties files and building software deployment artefacts that are template driven, we can specialise the deployments to a particular environment and persist, version control and better manage the environment specifications.
In my journey, one clear truth has emerged; applications have a tight and brittle dependency on any given environment; specifically hostnames, schemas, URL’s, et. al. It is clear that abstracting away these environment specifications is key to enabling a seamless application configuration and realise rapid environment constructions/configurations. This dimension is further compounded by the speed to which business expect product and system delivery in today’s modern SDLC’s.
Copy and paste environments have been a vision for many environment engineers, where the possibilities have been pondered and drooled over, however, l have never seen an implementation of the strategy in my travels. Reflecting on my application architecture experience, coding to interfaces, dependency injection and abstraction rate very highly as useful tools and techniques that can be utilised to increase flexibility, promote reuse and improve architectural flexibility. Similarly, these principles can (and do) apply to environment configurations. Designing environments that lend themselves to an automated deployment strategy is as simple as defining requirements and creating an infrastructure architecture to implement those requirements.
Copy and pasting environments have one large, perceived drawback – each environment is an exact replica of the copied version; exact copies of server names, DNS entries, Active Directory and group polices can seem to be restrictive, after all, for the servers to be useful, the server names will need to be changed to avoid server name collisions. This might seem like a disadvantage, however, isn’t this a feature which we can take advantage of? Having environments that are identical in configuration can be exploited from an deployment perspective because the system in exactly the same as the master and will minimise change in deployment scripts. A strategy and solution to this problem is a “Network Bubble” – isolated collection of servers which are not (directly) accessible to a global network and avoiding the server name collision problem. Access to these environments are configured into the broader network and guided through front-end Web servers; promoting encapsulation of function and abstraction of environment configuration details – Lab-as-a-Service (LaaS).
VMWare Lab Manager is a tool that can provide the software functionality and network isolation features which can realise your LaaS objectives and enable Environment Models. LaaS objectives can also be realised through Amazon Web Services utilising Virtual Private Clouds, Elastic IP’s and Cloud Formations. The choice between these two options is an outsourcing decision. Both options present strong and compelling features that should be considered when building environment management strategies for our future projects.
Our old novel approaches of the past can no longer scale to meet the growing drive for new and refreshed business systems. To meet our customers demands, we cannot afford to solve environment management problems using manual or traditional configuration management strategies. Taking advantage of cloud based design patterns and bridging the gap between software configuations and deployment environments is critical in providing the agility and speed required to keep our customers competivie and ahead of the game.
Till next time!

