How microservices help Perlego deliver textbook availability

A laptop on a white desk with the Perlego homepage displayed

The following article originally appeared in Issue 15 of IT Pro 20/20 as part of a new series that invites industry experts to share their experience of tackling some of the most pressing issues facing businesses today. To sign up to receive the latest issue of IT Pro 20/20 in your inbox every month, click here. For a list of previous issues, click here.

Almost every educational institution has faced unprecedented disruption in the past year. The vast majority were initially underprepared for the challenge of providing online courses to their students and making educational material accessible to all, but these institutions were able to respond quickly through the adoption of different cloud-based technologies. This shift towards digital education is the main reason why the UK's edtech sector grew by 72% last year.

Perlego is one of the world’s largest online academic libraries, where students and professionals can access hundreds of thousands of textbooks from anywhere in the world. Over the course of the pandemic, universities have partnered with us to provide students with the educational materials they need to continue working remotely, and we’ve seen exponential growth over the last year. Cloud-based technology is what enabled us to be prepared for this exponential growth and to scale at such a fast pace.

The Perlego back-end is built as a series of distributed microservices. There are many advantages of having a microservice architecture but perhaps the biggest one is that if there's a problem with one service, it won't affect any others. So for example, if the microservice that enables users to create and manage their reading lists on Perlego should go down, it won't affect a user's ability to create an account, log in, or read a book.

To be truly independent, each of these microservices needs its own infrastructure. Thanks to cloud computing, this can be done at a fraction of what it would cost with on-premise infrastructure. We’ve leveraged the enormous scale of AWS’ infrastructure with their IaaS and PaaS cloud computing suite to make this possible for us. Our infrastructure is entirely based in the cloud, making it cost-efficient, on-demand, and secure, as well as fast, reliable, and scalable.

Each microservice is deployed on AWS using Fargate and the Amazon Elastic Container Service, helping the platform to scale effortlessly and ensure our uptime stays high. By leveraging AWS' multiple Availability Zones, services can fail without users even noticing, allowing a high uptime from deployment. Achieving this level of scalability and fault tolerance without cloud-based infrastructure is practically unthinkable nowadays.

Perlego's mobile app displayed on an iPad

When one of our developers makes a code change to a microservice, a deployment pipeline is triggered to push the new code into our production environment. Within this pipeline, code is compiled, tested, and deployed automatically, and we depend on a few different tools to do this. We use a static code analysis tool called Sonar Cloud that checks the overall code quality and helps prevent vulnerabilities from being introduced. We also use AWS CodePipeline to manage the deployment pipelines for each of our services and applications, and AWS CodeBuild to compile source code, run tests, and produce software packages that are ready to deploy. We also make use of JEST, LocalStack, and Cypress; they allow us to test code using container technology, to make sure it’s stable before it gets pushed out to our cloud environment.

Enterprise SaaS products have also been crucial in the development of the wider Perlego platform. With the rise of the ‘Plug and Play’ economy, many companies now offer cloud-based services that help solve common problems that platforms like ours face.


The total economic impact of Nutanix for end user computing

Cost savings and business benefits enabled by Nutanix HCI for end user computing


An example of this is how we process payments from our users on the platform. Building an entire payment processing system from scratch is difficult; it involves integrating with payment processors, complying with industry standards, keeping customer card details secure, and everything else that this entails. Instead, we use Stripe, a service that does all the hard work for us, ensuring our customers’ card details never even touch our servers. It’s much better to make use of such services rather than reinventing the wheel.

We take a best-of-breed approach to our tooling and have integrated a wide range of different SaaS-based systems. For example, we use Algolia, which is used to power the search functionality on our platform. It offers a dashboard that non-technical people can use to optimise the search algorithm and even A/B test different configurations to deliver more valuable results to our users.

We also use Sentry to capture error logs across our whole platform, which helps enormously in categorising and fixing errors, while Pingdom provides us with a way to monitor our production systems to make sure everything is up and running smoothly. Postmark is used to send users transactional emails reliably at scale, and Intercom’s conversational relationship platform allows us to deliver great customer support to our users and helps us understand their needs and pain points.

Without cloud technology, we would not be where we are today. We have embraced it at every level, and it has enabled us to build a great platform that helps people anywhere in the world gain access to a massive library of educational materials.