By John A. Lynch. In Fall 2017, UCLA Humanities Technology was faced with needing to undertake a major PHP version upgrade of a locally hosted, custom application that provides web-based 24/7 scheduling for thousands of appointments annually for the Undergraduate Writing Center (UWC). This UWC Scheduler supports thousands of undergrads every year and facilitates the matching of peer writing tutors with undergraduates who need writing help.
At the same time, HumTech’s on-premise hosting infrastructure was nearing capacity. The department was looking for ways to free systems administrator time from duplicative server support. Dave Shepard, HumTech’s lead academic developer, asked, “What if we try serverless?”
For us, moving into serverless computing was an exploration of multiple unknowns:
- It would entail a complete rewrite of the app from the ground up.
- We couldn’t find anyone who had yet integrated UCLA’s single sign-on and Shibboleth with AWS Lambda.
- We were unsure if we would be allowed to move student and payroll data to the AWS cloud.
We had nearly a year’s time so we decided to take a chance. We reasoned that if we hadn’t resolved these issues within four months of our PHP deadline, there would still be time to fall back on the more traditional, locally hosted app.
Six months later, Dave had learned a lot about AWS Lambda and had figured out the integration points. And HumTech delivered a functional, serverless scheduling application to our Writing Center director for final testing. Here’s what we have learned from our exploration:
- Yes, you can connect Shibboleth to serverless AWS. It took a bit of research and a lot of experimentation, but working together, Dave and the UCLA identity access management team discovered that you can use AWS Cognito as a bridge between the two. Cognito charges per unique user per month, but the individual cost is so low that, for fewer than around 3,000 monthly users, it costs less than setting up a regular Shibboleth server in AWS.
- Serverless significantly reduces the cost of routine maintenance. A lot of the “routine” work that goes into maintaining a custom application is about running upgrades: OS upgrades, PHP upgrades, database patches, security fixes, etc. If you leverage AWS services, all of that goes away. AWS RDS, for example, lets you run a database in your choice of platform while handing that maintenance off to them, for a small monthly fee. This could matter a lot for scholars in fields such as the Digital Humanities, who want to develop custom apps but often don’t have access to a dedicated sys admin.
- There are fewer big capital expenditures. This is a double-edged sword. Justifying big IT capital expenditures gets harder every year. Since you can distinguish between the costs of individual apps in a serverless environment, it’s a lot easier to scale up, and it’s possible to pass the real cost along to specified users. However, this also means that smaller users won’t be able to benefit as easily from investments made on behalf of the biggest users.
- We still don’t know what long-term maintenance costs will be for serverless apps. With on-premise applications, we’ve found maintaining any given custom app costs as much every three years as it cost to build in the first place. We don’t yet know what our ongoing costs for serverless AWS apps will be. We assume there will be application rewrites; we hope they will be fewer and further between.
- Yes, you’re locked into AWS (or Google, or Azure, etc.), but does that matter? Moving from one serverless environment to another requires rewriting most of your app, so make sure you don’t mind being with one provider for a few years. We’ve decided to see this experiment through, and when UWC Scheduler needs a rewrite, we’ll look at our options.
If you haven’t already, we encourage you to take a closer look at serverless computing and see if it’s the right fit for your environment. And if you’re looking for new software to manage your writing center’s schedule, let us know! We’d be happy to spin up a (serverless!) instance of our app for you and show you what it can do.
John A. Lynch was academic projects manager, UCLA Humanities Technology.