XebiaLabs Tech Rally - April, 2012
When working on a product like XL Deploy, the development team has many ideas for new features and improvements in the product or the development process. Some of them can be implemented straight away, others are too big or require some investigation. Periodically, we set aside a day to work on the most interesting and promising of these ideas. The end result of this day of creative hacking is working code that demonstrates how a particular idea could be implemented. Last week was our most recent Tech Rally and here are some of the things we worked on.Easy way to incorporate scripts in a deploymentMany customers want to customize XL Deploy to fit their environment. Although this is possible, sometimes users just want to include a particular script at a certain place in their deployment plan, without creating new custom CIs. We prototyped a script contributor which allows user to provide a script and the conditions under which to trigger it and it will be included in the deployment plan automatically.Record command line scripts using the GUITo make it easier to write command line scripts for XL Deploy, add the ability to record a GUI session and translate the commands into a CLI script. The user can start/stop recording and copy the resulting CLI script for further editing or inclusion in a plugin. Here is a screenshot of this feature in action:Customize XL Deploy using the GUIEditing an XML file to customize XL Deploy can be intimidating for new users. Make it possible to customize XL Deploy (adding new types, changing existing types, changing scripts) directly from the GUI. Update the running XL Deploy system with these changes so they are available immediately without a server restart.Deployment to a virtual (cloud) environmentTHe idea is to allow users to deploy to a cloud environment from XL Deploy. The target environment is provisioned on the fly during the deployment. We prototyped an approach that allows the user to create a representation of the middleware in XL Deploy and the environment that contains the virtual middleware takes care of provisioning. To test this idea, we created an environment based on Vagrant and extended the hosts in XL Deploy with a Vagrant VM id. The VM that Vagrant instantiates uses Puppet to properly install and configure the middleware. Once this is done, the deployment continues with installing the middleware. Here is a screenshot of this deployment in action:Alternative XL Deploy GUI testing toolWe're always on the lookout for improvements to our development and testing tools. In this case, the question was whether using a combination of free, open-source tools could replace the RIATest testing tool we use for the XL Deploy GUI. We found that the RIATest tool, while it has it's limitations, does make it a lot easier to test the XL Deploy GUI. There would have to be a lot of custom work to get the open-source tools to this level. If only RIATest would improve their scripting language! ;-) All in all, it was a fun day of hacking and creativity! Really cool to see what we can accomplish in just one day!