Introduction to Serverless

More universities and libraries are integrating serverless into their technology road maps — but what is it?

Serverless computing is a cloud execution model where the provider manages the servers and the developer just focuses on the code. In recent years, serverless computing—or simply serverless—has become a key technology, and its mainstream adoption, including by large companies such as Netflix and Lego, has drastically changed how enterprises build their applications. This adoption has also started appearing in the technology road maps of universities and libraries. The University of York, for instance, uses a serverless strategy for low-traffic applications to reduce costs, and the Virginia Tech Libraries builds its Digital Library Platform using serverless strategies to support digital assets preservation, management, and user access.

In this new series of blog posts, I will delve into how serverless technologies enable organizations to create and operate applications in new ways. Readers can expect to learn about the benefits and limitations of using serverless and the best practices for design, implementation, and migration strategies to this new paradigm. These posts will contain code examples and hands-on exercises to learn how to build serverless applications with various platform and service options. Topics will include, but are not limited to, building web apps with AWS Amplify, creating scalable and cost-effective backends for image processing with AWS Batch, and creating event-driven data pipelines for fixity checking with AWS Step Functions.

This series is intended for individuals in roles like software engineers, system administrators, DevOps engineers, and managers who are interested in serverless computing. It aims to equip them with the necessary know-how to make well-informed decisions about their existing and future projects and lead to more efficient, scalable, secure, and cost-effective applications.

What is serverless?

Serverless is a suite of technologies that enable developers to create and run applications without worrying about maintaining the underlying infrastructure. It is like driving a car that has always been carefully maintained, so you only need to learn the skill of driving it. The most attractive point of serverless is that it lets developers focus on what they want to build and offload all the routine, tedious, and time-consuming maintenance and operation work. Moreover, serverless applications run in a cloud environment provided by service providers, such as Amazon Web Services, Google Cloud, and Microsoft Azure. These underlying infrastructures are maintained by teams that only a few companies or organizations are capable of having. This means that your applications run in an environment maintained by top-tier engineers, and you pay for only the services you use. How does that sound? 

The term “serverless” can be misleading. Servers are still present and managed by cloud providers. The term just means that the management and maintenance of the servers are abstracted away from the application development.

Why use serverless?

The main reason why we use serverless is to create immediate developments and frequent changes to software. We are now living in an era of rapid changes. New needs, wants, and demands require innovative ideas and technologies to fulfill them—and fast. Instead of determining which machine to purchase and estimating upfront costs, stakeholders increasingly would like to see a minimum viable product (MVP) that demonstrates the proof of concept and then incrementally add new features to it.

In traditional, on-premise software development, prerequisites such as purchasing, provisioning, configuring, and maintaining the servers must be done before development. Once the application is deployed for production, new tasks arise, such as handling scalability, reliability, security, etc. As more and more services are in production, the maintenance loads increase incrementally. This may eventually become a bitten-off-more-than-you-can-chew situation for organizations with fixed team sizes.

Moreover, allocating exact resources to various services to save cost is a complicated task for a small development team in a library setting. With the pay-as-you-go pricing model for serverless, this becomes an achievable task. 

Where does serverless run?

Serverless typically runs in a cloud environment. You, as a customer, pay cloud providers to manage the underlying infrastructure of your serverless applications. You no longer do everything by yourself and delegate some operation tasks to them.

With that comes the shared responsibility model. 

This model is a security and compliance framework outlining the responsibilities between you and cloud providers to secure and protect anything that happens in the cloud. During your serverless application design, you need to clearly understand the responsibilities between you and cloud providers, which may vary depending on the services you choose to use. This differentiation of responsibility is commonly referred to as “Security of the Cloud” (cloud providers) versus “Security in the Cloud” (customers).

Conclusion

Serverless computing is a rapidly evolving technology that allows organizations to develop and run applications without needing to manage the underlying infrastructure, thereby enabling developers to focus on the core functionality of their applications. This post provides an overview of serverless, and the next post in this series will delve deeper into serverless design strategies and best practices.

If your organization is considering or has already started the process of transitioning to serverless and you would like to exchange your experience or seek suggestions and guidance on the migration process, please do not hesitate to contact me. I am interested in learning about the community’s thoughts and needs regarding serverless.


Choice and LibTech Insights gratefully acknowledge our launch sponsor, Dimensions, a part of Digital Science.  Dimensions, is the largest linked research database available and provides a unique view across the whole research ecosystem from idea to impact.


Sign up for LibTech Insights (LTI) new post notifications and updates.

Interested in contributing to LTI? Send an email to Deb V. at Choice with your topic idea.

Leave a Reply

Your email address will not be published. Required fields are marked *