By Christophe Closset (Technical Project Manager / Solutions Architect), Stephane Bourdat (IT) and Jonathan Vanderick (Software Developer), Alcatel-Lucent
In Agile development there’s a big emphasis on development, transferring ideas into working code and getting it validated. Development teams new to Agile development may notice the shortening of the development cycle (ideation thru finished product). In a typical software development lifecycle, this may take months. In an Agile lifecycle, the goal is usually a couple weeks.
To shorten the lifecycle, work is generally broken up into lots of little chunks and moved through a cycle of design, development, and validation much faster. This shorter and faster lifecycle results in all sorts of process changes. People sit closer together in cross functional teams, they use lighter-weight ways to describe and document requirements, and they employ automated testing to shorten the cost of adding to and changing the software.
Combined with new virtualization tools, an Agile framework has uncovered a wealth of new possibilities for our Application Enablement R&D teams and is helping to fuel a culture of increased collaboration and innovation (see our Application Enablement website).
Increasing R&D agility
Having recently moved to an Agile framework, the Application Enablement team felt the need to provide our R&D team with more immediate and direct control. We were seeking to eliminate time spent on IT procedures and needed the ability for multiple individuals to manage our lab environment at any given time. Furthermore, our lab needed to be highly reliable.
We faced several specific needs from the development side, which included the ability to:
Support various environments;
Replicate an environment to support different releases simultaneously;
Provide a testing environment at a specific release for patch point testing;
Simulate (sporadically) specific features like high-availability, geo-redundancy, and more
Test product(s) integration with other elements/products
Creating the “Virtual Lab”
We expressed these desires to our IT team and they suggested we take a look at their VMware lab pilot – and since then we haven’t looked back!
Sharing our resources (OPEX and low CAPEX), we collaborated with other internal teams to improve the pilot and expand it into a full-scale virtualization platform. From there we were able to create our “Virtual Lab.”
Essentially, the Virtual Lab is a highly available, fully redundant lab setup, running a full-blown virtualization layer from VMware. This effectively brings IT management to the R&D level; giving us direct control of resources when and where they are needed.
Unlocking R&D innovation
This new lab setup has indeed unlocked a wealth of innovative possibilities for the R&D team, while helping to shorten the development lifecycle and optimize resources across Applications Enablememnt.
Through our new Virtual Lab environment we are able to create a new machine for an integration test and delegate control of the machine directly to the integration team. This allows us to create an instance/set of instances, assign control of these to specific R&D groups, and allocate a resource pool so they can safely experiment and iterate without impacting any other teams.
Additionally, we can now dedicate a virtual instance to a specific function – previously, this would have required significant investments in time as well as in physical hardware. Specifically, we have instances dedicated to the following R&D functions:
Continuous integration servers;
Code repositories (svn, git) which benefit from the high availability of the lab (never come in the morning and see that the code repository is down J);
Wiki instances, forum instances, “crazy tools” instances, etc.;
Testing automation – we can “spawn” new instances for automated testing, run tests (even intricate tests) on them and destroy them in an API call.
Stable-state history – we can keep a history of the stable state of each machine which opens up continuous testing and allows us to safely test various setups. (no need to devise a test to return to a stable state or foresee recovery procedures)
Lastly, thanks to our Virtual Lab, we can much more efficiently manage and optimize our resources. We’ve gained greater visibility into our hardware usage and performance, which has translated into a direct cost-savings by reducing unnecessary hardware investments.
please sign in to rate this article