Serverless computing may be the newest, shiniest gadget in the developer’s toolkit: It’s a cloud service; it runs only when triggered by an “event,” like a click on a website, so it doesn’t rack up costs; and best of all — it hides all of the underlying server management.
But serverless computing architecture won’t replace containers or other, more established methods of building applications.
“Most IT shops don’t have the luxury of every time a new technology comes along, ‘Let’s rewrite everything to this new way of doing things,'” said Rich Sharples, senior director of product management at open source software company Red Hat. “What you end up with in typical enterprises is different generations of technology, and they are going to live together in harmony.”
The ops side of DevOps is another matter. Serverless environments will essentially be “ops-less,” said Sharples, a former developer, because the operations are taken care of by the cloud provider.
It’s a good thing to have developers who understand operations, he said, but developers need to churn out applications fast. “And if that means you’re creating a level of abstraction to hide and completely automate a lot of this, then yeah, I think everybody wins there.”
Sharples spoke to SearchCIO about serverless computing architecture in an interview, which was published as a Q&A this week. Here is more from that conversation, edited for brevity and clarity.
Where does serverless computing architecture fit into the application development landscape?
Rich Sharples: This idea that serverless is going to kill containers — I think that’s really nonsense. There are well-accepted use cases and usage patterns for both of these, and I already know they are going live in harmony. Most IT shops don’t have the luxury of every time a new technology comes along, ‘Let’s rewrite everything to this new way of doing things.’ What you end up with in typical enterprises is different generations of technology, and they are going to live together in harmony.
So we’re going have containerized monolithic applications — sometimes decomposed into microservices, using traditional containerized microservices; sometimes using serverless. And all these things are going to work happily together because we spin them together using well-defined APIs. This whole idea of APIs is the way to interact with software gives us that insulation control.
So when I’m thinking about building net-new applications, moving to a microservices model, I’m likely going to have a mix. Some of that application logic is going to be a really good fit for implementing serverless. For some of it I want a more traditional, long-running microservice running in a container. And from the outside, from the consumer perspective — the consumer of the service — they don’t need to know whether it’s implemented as serverless or a regular, long-running microservice.
It’s really just another choice for developers — modernizing existing applications or building net-new applications. Nothing ever dies in IT — they will just keep accumulating new generations of technology.
How does DevOps fit into serverless computing architecture?
Sharples: From a developer perspective, it almost becomes ops-less. I mean, the whole serverless term is kind of stupid, right? It is a server. There is infrastructure. There is somebody taking care of that stuff. So there’s still an operational focus there. It’s relatively hard to find really good developers who also can handle operations at scale.
For some things, it absolutely makes sense, and I think organizationally, from a lack-of-ownership perspective, developers understanding the role of ops, understanding some of the concerns around security and operational effectiveness, is good: It helps to create better applications. But at the same time, developers need to get new products and get new features out very, very quickly. And if that means you’re creating a level of abstraction to hide and completely automate a lot of this, then yeah, I think everybody wins there.
As much as anything, there is a massive drive around automation. People have realized that to continue to move ahead and to be able to even just keep the lights on, they’ve got to invest in automation and things like Ansible and OpenShift. So I think the term ops-less, or less ops — more automation and fewer people. We’ve been on that drive for 10 years. And I think serverless is just a good example of how far we’ve come.