“Things are all moving very, very fast.”
That was one of the big takeaways from my conversation at the Open Source Leadership Summit with former RedMonk analyst Fintan Ryan last month. We were talking about the state of the serverless market. (Depending on who you ask, serverless is either the same thing as, or conceptually related to, Function-as-a-service.)
In Ryan’s view, there are two different aspects to serverless. The first, he says, is “essentially a programming model which allows you to deal with event-driven architectures and event-driven applications. What we actually mean is there's an awful lot of small events that are generating things that give you an ability to deal with each thing individually in terms of very small functions.”
For example, uploading a file to a particular location could trigger actions such as transcoding the file into different formats.
From the developer perspective, serverless is also about abstraction. Ryan describes it as “abstracting away the underlying infrastructure from people. They can focus exclusively on developing the business logic that they need rather than having to think about how to scale out architectures, etc.”
Ryan notes that this is part of a trend toward helping a broader class of users develop applications. “Citizen developers” is a term that is sometimes used for this group of non-traditional developers. Ryan doesn’t think that they “quite fit into using these technologies [serverless] as of yet, but they may become consumers of them. We're definitely seeing that kind of shift.” He observes that there’s a clear trend, however: “The amount of Python usage that we're seeing in the data science communities and people coming out of, say, even social science degrees. It's completely different to where we were a number of years ago.”
Public cloud serverless offerings like Amazon Web Services Lambda or Microsoft Azure Functions also differ from more traditional approaches with respect to pricing. Typically, you pay for a virtual machine or a container based on how long they run. In contrast, serverless pricing (at least the compute part of the workloads) tends to be per-event. However, Ryan cautions against placing too much emphasis on pricing: “[In] the conversations we have, we very rarely come across people that are considering services solely on a cost perspective. It is definitely a consideration, but it's not the biggest consideration. That velocity thing is what they're really, really interested in.”
Ryan says that it is useful to think about the serverless space as consisting of two areas: platforms and frameworks.
“In the platform area, we're seeing an explosion of different implementations of serverless at the moment that will run on premises,” he notes. “It's all coalescing and running on top of Kubernetes, which is quite an interesting shift versus where we were even a year ago.” Among the many open source projects in this area, many of them early-stage, he identifies Apache’s OpenWhisk as having a lot of momentum, with companies including Red Hat and IBM participating.
Application portability is one specific aspect of using Kubernetes that Ryan highlighted. “That's one of the things from developers and from businesses' perspective that is really, really interesting,” he says. “...if I can use this framework with any Kubernetes implementation that's out there. Then I can shift my serverless applications around the place. That becomes an interesting dynamic in terms of how you approach and how you make your technology decisions.”
As for frameworks, he identifies projects like the Serverless Framework as taking away “all of the complexities from setting up when using serverless. It is relatively opinionated about how it sets things up. That lets you get on with actually developing the application.” He adds that there are many additional frameworks, but the majority are tied to a single language and underlying cloud provider platform and aren’t really intended to be general-purpose.
Does serverless replace containers, as some argue? From Ryan’s perspective, that’s too simplistic a view of real-world IT environments which are almost always highly heterogeneous. He told me: “One of the things that we tend to see with every technology wave, we tend to see a bit of an over-rotation from it. Everybody goes, ‘Everything's going to be a container. Everybody's going to be serverless, etc.’ Whenever anybody says that to me, I always point out, ‘Well, IBM just had a huge quarter on the basis of selling mainframes.’ Things don't go away. There's a long tale of technology inside an enterprise that's absolutely huge. That's not going to disappear because a new technology's emerging.”
Ryan also points out that applications differ in their requirements. “There’s the set of applications that are suitable for serverless versus a set of applications that are suitable for other areas, for other types of approaches.” For example, consider how long a process needs to run. “There [are] questions of things like, ‘OK, do I need special types of affinity to locations and that kind of stuff?’ That's not guaranteed with serverless. It is guaranteed with where I can do positioning, with an orchestrator [such as Kubernetes].”
Ryan concluded by observing, “There's a whole bunch of these considerations that are there. To sum it up, there's basically a spectrum of containers in serverless. They're going to fill a very, very big chunk of it together. We'll see a lot of people combining them together and using different areas for different parts of the application.”
Listen to podcast (MP3) [18:30]
Listen to podcast (OGG) [18:30]