Avallain is a highly successful development company solely focused on delivering the highest quality digital solutions for Education worldwide. Within their core product offerings is their flagship education platform called Unity. Unity is a feature-rich learning platform upon which bespoke learning management systems can be developed for Education customers, to hold their learning content.
The Unity platform sends communication via email to customers at critical points during a school/college year. Managing large volumes of outbound emails, Avallain need to ensure the AWS SES (simple email service) availability, and closely monitor service usage against the AWS SES quota. The solution automates service monitoring and alerts for Avallain, enabling them to best support their customers in the provision of the educational service.
For more information about Avallain and the solutions they offer, please visit their website.
Business Challenge / Problem Detail
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.
Throughout the year the Unity platform sends out communications to its users, which include educators, learners and administrators. At key points during the year email volumes are particularly high, such as when a new cohort of users are created at the beginning of the school year. It is vital that AWS SES is available during this time.
AWS have put quotas on the AWS SES that the solution needs to adhere to including bounce rates, complaints, and email volumes. More information can be found here.
The main goals for the solution included to:
- Ensure AWS SES availability
- Monitor the AWS SES and create alerts
- Create reports of the failed emails to inform the customer’s next steps
- Automate the process where possible
- Assure data protection
- Be cost effective
Solution
CirrusHQ worked with the Avallain to agree the scope, requirements, and boundaries of the architecture.
There are three parts to the solution:
- The gathering of the SES data
- The reporting on the data collected
- Status check
The SES Notifier architecture above shows how the data is collected and stored. The education platform (an instance of Unity) sends out emails via SES to the customers. Where responses occur they are sent securely to SNS which triggers a Lambda function. The function inspects the header information, transforms it into fields, and adds to a new row in DynamoDB.
The SES reporter architecture above shows how a CloudWatch event triggers Lambda to run the reports. The Lambda function interrogates the tables in DynamoDB (the same table as used in the SES Notifier part of the solution) and generates a standard report (accompanied by a raw data extract held in csv) for Avallain.
The SES status check architecture above shows how a CloudWatch event triggers a Lambda function to check the health of the SES associated with an Education Platform per region, per account. When certain criteria are met, the function will send the results to an SNS topic. This could trigger an Opsgenie alert for CirrusHQ to respond to.
In addition, it can be noted that:
- each Lambda function that creates any exceptions will create a log which is stored in CloudWatch Logs for immediate review by CirrusHQ.
- all parts of the solution have been architected securely.
CirrusHQ Role
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:
- Cloud system architecture and design
- Development of Lambda functions
- Deploying and configuring AWS infrastructure
- Cost and performance optimisation
- Monitoring and alerts
Tooling (Tools and Technologies)
AWS Lambda, Amazon DynamoDB, Amazon Simple Email Service (SES), Amazon Simple Notification Service (SNS), Amazon CloudWatch alerts, and Amazon CloudWatch Logs
Expected Challenges
- Extracting data from SES responses into DynamoDB in a repeatable architecture so that it can be used for each deployment of Avallain’s education platform.
- Creating standard reports to inform both Avallain and their customers