Serverless computing has been a capability offered by the Big 3 public cloud providers — Amazon Web Services, Microsoft Azure, and Google Cloud Platform — for some time, and it's now coming to DigitalOcean.
DigitalOcean Functions became generally available on May 24, providing the cloud provider's developer and small and midsize business (SMB) users with a serverless offering. With serverless, rather than users needing to have a long-running virtual server instance to deliver an application, an event or a function can be triggered on demand. With serverless, a function only runs for as long as is needed to execute the operation, providing users with a very cost-efficient model.
"While serverless isn't new, its primary adopters have been large enterprises," Anshu Agarwal, vice president and general manager of Serverless at DigitalOcean, told ITPro Today. "As more and more customers within the SMB market segment move to the cloud, they are rearchitecting their applications from centralized monoliths to distributed, loosely coupled components that communicate through events."
DigitalOcean Functions Serverless Is Based on Open Source
The underlying technology that enables DigitalOcean Functions is based on the open source Apache OpenWhisk project and is a result of DigitalOcean's acquisition of Nimbella in 2021, which was co-founded by Agarwal.
DigitalOcean has expanded what Nimbella had built with customizations to work with DigitalOcean App Platform and DigitalOcean managed databases (DBaaS), and enables log visibility for observability providers.
It's also possible to migrate to DigitalOcean Functions from another serverless service running in a public cloud, such as AWS Lambda.
"The closest programming model is AWS Lambda in terms of the semantics and execution model, with generalizations that make Functions vendor-agnostic and backed by open source," Agarwal said.
Depending on the use case, a migration from another cloud platform could be as simple as no updates or a few small updates to source code and a commit to GitHub, she said. For example, a developer using Lambda to process files in Amazon S3 could migrate to Functions and leverage the same SDKs.
"We do have a few updates in-flight to make migration even easier, such as backward-compatible changes to the function signature, and plan to support orthogonal products that will make migration of certain architectural patterns possible without a complete rewrite," Agarwal added.
From Server Applications to Serverless
While there are ways to migrate to DigitalOcean Functions from other serverless platforms, it's not quite as easy as moving from a traditional virtual server application to serverless.
"There is no automatic way of decomposing into a series of serverless functions," Agarwal said. "Serverless is a programming model that a developer needs to adopt and rewrite the code to create functions."
She suggests that initially, developers should use serverless for new developments and deployments to get familiar with the approach. Developers can run both functions and containers using DigitalOcean App Platform, thus supporting both legacy and new applications and offering a gentle migration to cloud modernization, Agarwal said.
"Developers should choose Functions when their workload is spiky, transient, or when they need to execute code on-demand or in response to events and don't want to provision and manage infrastructure themselves," she said.