The following blog portrays the process of automating software demonstrations on AWS. Before discussing the automation, it is really essential to understand the importance of a software demonstration and the need for automation of process for creation and disposing of one.
Before selecting any enterprise software, software demonstration is a key part of the due diligence process. A software demonstration gives a prospect an idea of the product’s capabilities both in functional and technological terms.
The time frame that determines how well your software will be demonstrated is up front and very short. If you don’t have the customer hooked in the first 2 minutes then the probability of losing a potential sale is high.
Necessity for Automation
The seeds to a great software demonstration are planted in the initial scheduling. A smart automated process makes for a good first impression. This helps any vendor stand out among the competitors. Automation provides consistence in the demonstration that manual intervention doesn’t provide.
In terms of destroying the environment, it’s quite hard to recollect the resource allocation used to create the demonstration environment. Automating the process saves us from the trouble of manually searching through the services for used resources thus saving our time & money.
To create such software demonstrations, that can be launched at any given time, we can use some infrastructure automation tools like Terraform & configuration management tools like Ansible. Terraform helps us create the infrastructure environment and Ansible helps manage the infrastructure by writing playbooks.
Also, we can use Jenkins for automating the builds and Slack for triggering the builds remotely from anywhere using your smartphone. Furthermore, we can add scheduling capabilities to the process by adding Jenkins based automated builds by using Terraform plugin for Jenkins or use Slack to trigger builds based on a user’s request using Slash Commands.
Now that we have a brief idea about the things we are trying to achieve, we can start the process for automating deployment of the software demonstrations.
– Gathering the Pre-Requisites – Define all the pre-requisites & the flow that will help us successfully deploy the application
– Creating a Terraform Template – Create a Terraform template based on the resources that your software needs and then maintain it using VCS like Git
– Configuration Management – Create an Ansible playbook to orchestrate the configuration changes necessary for the application to run successfully and store it in the git repository as well
– Configuring Jenkins – Create a Jenkins job that will help automate the process of building the environment using the Terraform plugin
In order to make sure that the environment can be launched whenever there’s a request being raised to do so, we can add “Slash Commands” in Slack that triggers Jenkins build.
Also we can use Terraform’s ability to destroy the entire environment by setting a timeout period post which the requested demo environment will be deleted and will no longer be available for demonstrations
Automation of demonstration is an essential element for prospecting. It leaves a good first impression on the customer, automates deployment/configuration and destruction of the entire environment with ease and can be triggered from anywhere using Slack’s “Slash Commands”