Medallia enables global brands to improve the experience they deliver to their customers. It captures customer feedback across web, social, mobile, and contact center channels, transforms that data it into insights, and then delivers it to everyone inside a company — all in real time.
The sales organization needs to demo the complete Medallia platform to many potential new customers in multiple verticals. The initial infrastructure for Medallia’s demo environment was hosted on traditional hardware in a data center, and the operations team needed to manually provision demo environments and constantly add capacity to support Medallia’s rapid growth. This was an inefficient and time-consuming process.
So to better equip the sales organization to showcase the Medallia platform, and to help the ops team save time and effort, Medallia decided to build a self-service portal that could scale up to power up more than 300 simultaneous demo environments with zero latency and downtime.
Because stability and performance are critical, Medallia’s self-service portal needed the ability to deploy to multiple regions and include redundancy for each demo instance. And to support collaboration among the sales team, the portal also needed to provide snapshot and clone capabilities of customized demo instances, as well as to pause the demo and restart it at a later time for cost efficiencies. Additionally, the Medallia team needed the ability to demo using custom data sets that could be matched with different code versions.
Medallia partnered with ClearScale, a cloud systems integrator, to build and launch a fully automated and elastic self-service portal in the Amazon Cloud so the sales team could launch complete demo environments on demand and leverage the scalability and full automation that AWS can provide. AWS has the most complete technology and automation stack and provided Medallia with all the components and tools to construct such an environment.
Medallia and ClearScale finalized the following requirements:
- Complete platform stack for each instance
- Each component should be highly available.
- Full automation
- Use APIs everywhere.
- Start-Stop-Snapshot-Clone instance capabilities
- Automate code deployment and server/configuration provisioning.
Using AWS and an extreme agile approach, Medallia and ClearScale were able to build and deliver the self-service portal in only two months.
To address the project requirements, ClearScale helped Medallia with developing the following solution:
End-user functionality for the sales person from within the self-service portal that enabled them to spin up a demo environment that could be customized by region, data set, and code version; create a demo environment by cloning from an existing demo; and start, stop, and restart demos as needed.
End-user functionality for the IT admin from within the self-service portal to create demo templates for the sales team that would speed up deployment of new demos; create templates to access new data sets stored in Medallia’s data center; create database templates based on RDS Type, IOPS, Storage, and EC2 type; add new users to the system; and customize system configuration settings for key services like CloudFormation and SQS.
A demo template makes new data sets accessible through the demo portal via a series of automated steps that involve Amazon SQS, S3, CloudFormation, EBS, RDS, SMS, and Chef
A demo environment is simply a snapshot of a demo template. A new demo environment is created through a series of automated steps that include CloudFormation and Chef. The current execution status is passed through to the demo portal so that the sales person is able to track the demo status as it is provisioned and knows when it is ready to be used.
The Medallia Demo Portal takes advantage of available APIs and tools to automate the launch of demo environments:
Amazon CloudFormation is one of the primary tools used in this project. CloudFormation templates retain information about AWS components and their interactions and launch complex environments with a single API call.
Amazon SQS is used for communication with custom scripts such as backup scripts and bootstrap scripts that make initial demo stack template (DST) configuration. SQS has a simple programming interface, command line utilities for sending messages, and is available worldwide.
Chef is used to install Medallia software and generate appropriate configuration files on each launched instance. Chef makes system adjustments like firewall configuration and user management. Chef calls are wrapped to shell scripts that run when the demo stack template (DST) is created by CloudFormation, and then another wrapper script starts demo stack (DS) configuration.
The toolsets used to launch demo stack (DS) instances differ slightly from those used for template creation:
Citrix NetScaler ADC is very powerful software used for web traffic management. In the Medallia portal, NetScaler is used for load balancing and managing requests to different demo stacks. The Java API library available for NetScaler makes it very convenient for automation.
Amazon CloudFormation is used in the same way as for template creation, described in the section above.
Amazon EC2 API is also required by the demo portal to automate simple management tasks with EC2 demo stack (DS) instances.
Another improvement implemented was the use of the new Amazon RDS instances. RDS provides a ready-to-use database solution with integrated backups and high availability features.
The sales team can now be self-sufficient in launching new demo instances with the complete Medallia stack for their own individual use. They are able to customize those demos as needed, which allows them to respond faster to market demands and support Medallia's very rapid growth.
And for the ops team, AWS enabled on-demand elastic scalability that does not require long procurement cycles or manual labor. This allows the team to save many weeks from each capacity cycle and focus on more business critical projects.
The next phase of this project will enable multi-region support so instances of the application can be launched in multiple countries with AWS presence to provide the best response times based on client locations and to provide geographical diversity and better availability.