Criteria Corp Expands its Presence on AWS and Adopts Best Cloud Computing Practices

Challenge

Criteria was experiencing performance issues due to its manual deployment process and inefficient CI/CD.

Solution

ClearScale implemented CloudFormation, auto-scaling groups with EC2 instances, RDS Aurora, and AWS Elastic Beanstalk to simplify integration and deployments.

Benefits

Criteria’s infrastructure is now highly available, as it consists of three separate environments managed by an automated deployment process.

AWS Services

Amazon CloudFormation, Amazon EC2, Amazon CloudFront, AWS Elastic Beanstalk, Amazon RDS, AWS CloudTrail, AWS Config, Amazon CloudWatch

Executive Summary

Criteria Corp provides high-quality, web-based pre-employment testing services to companies of all sizes. Founded in 2006, Criteria has become one of the fastest-growing talent management companies, with thousands of customers in all 50 U.S. states and 18 countries.

The company’s testing system, HireSelect®, provides state-of-the-art assessment tools that help organizations increase the effectiveness of their employee selection and retention process. This SaaS solution features tests for cognitive aptitude, behavioral traits and tendencies, and job-related competencies.

Criteria helps organizations benefit from precise, innovative tests in a highly accessible, user-friendly format. The company is based in Los Angeles, CA; to learn more, visit www.criteriacorp.com.

"We knew what we wanted to do with AWS, but ClearScale was instrumental in helping us achieve those goals. We leveraged their expertise to automate a lot of processes, while ensuring that our implementation followed best practices and was scalable and highly available. As a result, our developers are happier, and we can provide an even better service to our customers."
Wayne Chuen
CTO at Criteria Corp

The Challenge

Criteria was developing new customer-facing and internal applications, to be hosted on Amazon Web Services (AWS). These applications needed to be highly available, scalable, and secure, which was challenging since they all shared the same Amazon Elastic Compute Cloud EC2 instances.

With the existing setup, deployment or even high or abnormal activity of one application could cause delays or even timeouts for all other apps. This could adversely affect the end user experience. In addition, the deployment process wasn’t automated, so Criteria needed to take extra precautions with manual work in a single production environment.

To help Criteria overcome these application creation obstacles, and to gain an easy and predictable CI/CD process, ClearScale was brought in to create a new architecture on AWS.

The ClearScale Solution

ClearScale created a highly available, scalable, and secure architecture for Criteria including the AWS CloudFormation templates for describing and deploying the whole infrastructure, and deploying AWS components on multiple application tiers. CloudFormation gives Criteria a common language to create, manage, describe, provision, and update all the infrastructure resources needed for applications in a cloud environment.

Each application tier is hosted on its own load-balanced, auto-scaled group of EC2 instances. This provides greater flexibility in choosing the number and size of instances individually per tier.

Logical Architecture Diagram:

Logical Architecture Diagram

Network Diagram:

Network Diagram

ClearScale created Amazon CloudFront distributions for the main web application in each environment, helping to improve the user experience while reducing the load on the EC2 fleet. CloudFront is a content delivery network (CDN) service that helps improve website performance while securely delivering data, videos, applications, and APIs.

The new architecture includes three separate environments: Development, Staging, and Prod. Each environment spans two Availability Zones, for high availability.

To simplify integration and deployment, AWS Elastic Beanstalk was leveraged for all applications. Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services. Fully automated processes were developed for infrastructure and applications deployment, using best practices and Jenkins automation.

Continuous Integration:

Continuous Integration

Since Criteria's client base is continuously growing, the system’s MySQL database load will be constantly increasing. To ensure that this database won’t become a bottleneck, RDS Aurora was deployed. Aurora instances store copies of data in a cluster across multiple Availability Zones in a single region, providing up to 64TB of auto-scaling SSD storage.

Amazon RDS Aurora Diagram:

Amazon RDS Aurora Diagram

One of the security requirements for the new architecture was encryption of data at rest. To meet this requirement, the ClearScale team ensured that RDS Aurora was encrypted, along with the Elastic Block Store (EBS) persistent block storage volumes of the EC2 instances.

Security and auditing is provided by different AWS managed services, including AWS CloudTrail, AWS Config, and CloudWatch.

CloudWatch Monitoring:

CloudWatch Monitorings

The Benefits

Criteria can now run its new applications on a highly available infrastructure, where applications run independently of each other. This new architecture features three separate environments and a fully automated deployment process, so Criteria’s new applications can be tested and deployed quickly and reliably.

The new ClearScale infrastructure also provides a superior experience, since if one application fails, the functionality of the other applications isn’t affected. In addition, optimal EC2 instance sizes, plus auto-scaling and RDS Aurora, minimize the latency of each application.