For an assessment company in the higher education admissions space, being able to scale their testing system couldn’t be more important. Most of the year, traffic to Altus Assessments’ apps is steady. But come test time, everything changes. Suddenly, Altus’ system needs to be able to handle a surge of thousands of applicants logging in at once. Heroku’s easy scalability allows the Altus team to ensure optimal system performance and a great experience for test takers, while focusing on growing the business.
Founded in 2014, Altus Assessments was spun out of a successful assessment research program at McMaster University in Canada. The brainchild of two faculty members, the online CASPer exam aimed to holistically assess the people skills of applicants to the Michael G DeGroote School of Medicine at McMaster. The 12-part exam asks test takers how they would react to real world scenarios and seeks to gauge a skillset that, while necessary to the profession, can't be gleaned from standardized cognitive test scores and grades alone. The test has proven to be such a success that healthcare education programs around the world trust Altus to help them identify the best and most well-rounded applicants.
Relying on a third party to manage traffic spikes
Initially, Altus Assessments worked with an external vendor who managed their testing application and infrastructure. As tests are always scheduled, Altus knew in advance when to expect traffic spikes. They would put in a request to the vendor to increase resources for the testing period, however, despite the advanced notice, they wouldn’t know if their infrastructure could handle the spike until the test began. If the resources they needed weren’t provisioned, the result was a laggy system that forced the company to put in another emergency request, while also fielding panicked complaints from thousands of medical school applicants.
Bringing scalability in-house on Heroku
Having experienced just how painful it could be to have their system crippled on test day, Altus knew they needed to have direct control over app operations. One of their contractors suggested Heroku, and as the platform was also popular with the development community, they decided to give it a try. The difference transformed Altus’ operational experience. Heroku’s platform tools and add-ons gave Altus the ability to easily navigate test day demands and seamlessly scale their system up during the test period and back down shortly afterwards. Now, the company had full control—they could see what was going on and react quickly, rather than waiting for an external vendor to help.
We migrated to Heroku because it gave us direct access to our infrastructure. We didn’t have to put in a request or have a DevOps person on staff, we could manage it ourselves. Rich Emrich, Co-Founder and CEO, Altus Assessments
Four years later, all customer-facing applications in Altus’ testing system are hosted on Heroku. These include an account app where users sign up, pay for, and take the test; the admin app, where all internal test management occurs; the rater’s app, where each test is scored; and the portal app, where each applicant’s test files and scores are delivered to the institution’s administrators. Heroku allows Altus to scale resources to each app as needed, ensuring that the entire test process moves smoothly from beginning to end.
How Altus Assessments scales up on Heroku
By Altus' own estimates, their apps experience minimal traffic 95% of the year, as users sign up for the CASPer test. But when test time rolls around, the company needs to be capable of handling up to 10,000 users at once. Prior to switching over to Heroku, their system could lag during testing, which meant that applicants could be stuck waiting for pages to load or wouldn't be able to start the test at all. This caused frustration and urgent requests for support. Now Altus is able to manage this massive surge in traffic by scaling up their Heroku dynos so that everything runs smoothly.
Most of the year, the account app runs on five Standard 1X dynos, but a few hours before test time Altus will scale up to ten Performance L dynos. They then use a Passenger buildpack for Ruby apps to increase the child processes on each Performance dyno from one to eight. This allows the app to handle thousands of users at once, all while barely hitting 15% of their total CPU allocation. By utilizing Heroku's implementation of the WebSockets protocol, they're able to quickly receive and process data, allowing them to reduce response times to under 50 milliseconds.
As soon as the test starts and system demand is high, Heroku allows us to closely monitor app performance and scale up our dynos on the fly as needed. KJ Chabra, Software Development Team Lead, Altus Assessments
Human and automated workflows in a secure environment
Altus Assessments takes a human-centric approach to evaluating the people skills of its test takers. To do so efficiently, it must interweave automated and human workflows across its product. Automation helps keep costs down, while the rest of the platform is designed to streamline the manual processes inherent in this type of evaluation.
What makes the CASPer test unique is the way it builds a nuanced portrait of each test taker. Across 12 sections—eight of which are video-based and four of which are text-based—each respondent is tasked with explaining what they would do in a given everyday scenario and why they would do it. While answering the prompts, each test taker is also proctored through their webcam and Altus uses AWS facial recognition, along with other automated tools and human proctors to make sure they are who they claim to be and aren’t receiving outside help. Once these processes are complete, each section of the test is evaluated by a different trained human rater. Each step produces an enormous amount of data, all of which flows seamlessly in real time thanks to Heroku’s robust, scalable platform.
As important as it is to monitor test takers, Altus also knows they can rely on Heroku for help keeping all the data they produce secure. Heroku takes care of data security at the infrastructure level in compliance with industry standards.
Heroku is great at blocking numerous connections from the same IP address. That helps us identify if someone is trying to hack our system. KJ Chabra, Software Development Team Lead, Altus Assessments
Benefiting today and planning for tomorrow
Today, Altus is exploring new ways to make use of Heroku and its many services. There is serious interest in using the platform's autoscaling feature to reduce the risk of human error, as well as Heroku Private Spaces for greater privacy and performance. While the company has grown by leaps and bounds since it spun off as a startup, it's not satisfied with the status quo. Altus Assessments is trusted and used by over 200 academic programs in Australia, Canada, the U.S., and the U.K. to process over 120,000 tests annually. Next, the company wants to expand its reach even further, serving more disciplines and industries in more countries in the years to come.
Inside Altus Assessments on Heroku
Altus Assessments considers Heroku part of its "holy trinity," along with MongoDB and Meteor JS. The company currently hosts four customer-facing apps on Heroku. They use a number of Heroku Add-ons, including New Relic APM, Librato, and Redis Cloud.