When working on a product like Deployit, 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 deployment
Many customers want to customize Deployit 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 GUI
To make it easier to write command line scripts for Deployit, 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 Deployit using the GUI
Editing an XML file to customize Deployit can be intimidating for new users. Make it possible to customize Deployit (adding new types, changing existing types, changing scripts) directly from the GUI. Update the running Deployit system with these changes so they are available immediately without a server restart.
Deployment to a virtual (cloud) environment
THe idea is to allow users to deploy to a cloud environment from Deployit. 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 Deployit 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 Deployit 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 Deployit GUI testing tool
We'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 Deployit GUI. We found that the RIATest tool, while it has it's limitations, does make it a lot easier to test the Deployit 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!