Avallain’s customers typically offer platform solutions with targeted content for courses in a particular subject area and age group. The content is distributed worldwide.
The Unity platform needs to be deployed for each of Avallain’s customers. Each build has configurations specific to that solution and planned user base. Each build needs to be deployable across multiple environments, meeting agreed milestones in the project. This means that the Unity platform needs to be built using infrastructure as code in its entirety rather than having any manual elements or configurations applied to it.
The main goals for the solution included to:
CirrusHQ worked with Avallain to agree the scope, requirements, and boundaries of the architecture. The key to the solution was to deliver a full infrastructure as code deployment of a Unity platform.
The architecture diagram above shows the solution delivered by CirrusHQ. The solution followed the AWS CloudFormation best practices documentation.
Avallain request a build by passing configuration details to CirrusHQ. CirrusHQ updates the CloudFormation templates for that particular Unity deployment but passing in the configuration details into parameters within the CloudFormation templates. The build is then added to an s3 bucket.
Each Unity deployment has a single master CloudFormation template and seven sub-templates; all templates built using JSON
The sub-templates are:
When a Unity stack is created, the master template runs each sub-template in sequence. The sequence ensures that each component of the build is built and available before initiating the next template. This ensures against components failing to launch due to other components unavailability and removing any unneeded costs in the process.
After running the CloudFormation template, there are two possible outcomes: success or failure.
If CloudFormation encounters a failure on any sub-template the process will stop at that point. The events tab in the CloudFormation console will show the failure point in the sub-template. Expanding that log gives further details on the failure. This means that CirrusHQ can quickly isolate the error and correct the specific sub-template that failed. CirrusHQ then removes all elements provisioned up until the point of failure and re-run the templates.
CirrusHQ peer reviews each build to check that configurations have been fulfilled correctly.
Typical successful deployment times now take under an hour end-to-end. This ensures that Unity deployment is available to the education customer promptly, with confidence that the build is as expected, secure, performant and scalable, and will meet their particular education customer needs.
The hugely improved deployment process has helped Avallain deploy Unity to several of the top educational publishers worldwide.
CirrusHQ worked closely with Avallain, to design, build, deliver, and maintain the required infrastructure for Avallain’s solutions. The following are some of the key responsibilities of the team: