REDMOND, Wash. — Microsoft’s push into “serverless” computing aims to change the way developers use the cloud, and Microsoft Azure CTO Mark Russinovich says the trend represents nothing less than the future of computing.
Despite the name, servers are still involved, but developers don’t need to worry about spinning up virtual machines, installing applications, patching or managing other elements of the system, as they would normally. Instead, the code is handled directly by the cloud and triggered by pre-defined events. Developers and companies are charged based on the resources their applications use.
Microsoft is far from alone in this quest. Public cloud leader Amazon Web Services launched its Lambda serverless technology in 2014, and competing solutions include IBM Bluemix OpenWhisk and Google Cloud Functions. Microsoft introduced a key component of its serverless technology, Azure Functions, last year, complementing another enabling technology, Azure Logic Apps.
“This is like a nirvana for developers,” Russinovich said at the company’s Redmond headquarters this week. “I just write a piece of code and I give it to the platform, and now it does everything that needs to happen to get that code up and running and activated in a secure, reliable way — connect to the network, connect to other APIs — and I can just focus on that piece of logic, which is what my job is all about.”
The company gave reporters a behind-the-scenes look at its serverless technologies, including hands-on demonstrations of Azure Functions and Logic Apps, and examples of how customers including Accuweather, the Missing Children Society of Canada, and Plexure are using the technologies.
In his opening talk, Russinovich laid out Microsoft’s vision for the role and potential of serverless computing. During a Q&A session, he also addressed GeekWire’s questions about the competition in serverless computing.
Continue reading for edited highlights from Russinovich’s remarks.
On the goals of serverless computing: “Where we see the industry moving — and we’re moving, and leading, I believe — is trying to drive up the level of innovation by minimizing the work that’s required of a developer that wants to get their job done. If you take a look, this is all aimed at that, everything that we’ve talked about. We view serverless as really the next generation of computing, where everything is going to be driven, because that’s where the maximum value comes for an organization, for a company that wants to develop a solution — not having to worry about all of these details that hopefully a platform can do for them. At that point, the focus becomes, ‘How do I architect my application?’ Not all of this other management that goes with it.”
On the flexibility of ‘event-based’ programming: “One of the things that has come out of this serverless movement is the recognition that an event-based or trigger based programming model is actually a very powerful model — one where I can get code activated very quickly and respond to it. Now, that is a model that will live outside even this world of abstracting servers and microbilling. This is where we see a holistic approach to what’s come out and been defined as serverless programming. Some of these concepts you want to take out and leverage in other places. So if you take a look at a trigger-based programming model, it would be great if I could deploy a piece of code that adheres to that to a serverless platform that does these things for me … but I want to sometimes take that same piece of code and deploy it into platform as a service, where I am deploying it into a virtual server. You lose some control here, and maybe there are scenarios where this model of micro-billing and pay for usage is actually going to cost me more than if I just pre-provision things. There’s also scenarios where actually the setup cost to get the code running might be high.”
“We want the full spectrum of support here. I can take something that responds to events, that is integrated with the rest of the platform, we can offer that as a serverless model and that can fit a lot of scenarios, but we also want to be able to say it can be deployed into platform as a service and even infrastructure as a service, as well. This is one of our goals. We don’t think this is a one-size-fits-all world. While we see the push towards serverless, and as much as possible we’ll be supportive, it doesn’t mean that platform as a service and infrastructure as a service are obsolete.”
“The bottom line is, we’re going to push as much as we can towards the serverless paradigm. Maybe I abstract the servers, but they’re more long-running applications that I can deploy, instead of these trigger-based applications, and that might be another option. So I don’t think this is by any means done, but we’re seeing the first steps toward this nirvana world where developers just write their application and give it to the platform and everything other than the application is taken care of by the platform itself.”
On the competitive landscape: “I’m not here to talk about Lambda, and all its features and capabilities, but I think there’s some differentiations that I’ll just highlight that we think that Lambda doesn’t have. One of those is all the bindings that we have, the support for bindings — the ability to take input from diverse data sources and integrate them with the logic flow, the code, with the developer not having to do anything. That’s taken care of with these input and output bindings.”
“The developer experience that we’ve got is first-class, inside the portal and inside Visual Studio. The ability to do debugging. The integration with App Insights gives people a rich insight into the way that the functions are executing. I think the closest thing they’ve got to Logic Apps is Step Functions, which is relatively new. This is pretty mature here when we take a look at Logic Apps and, again, a very rich experience. Plus the rich ecosystem that you already see growing up around this both in terms of Microsoft first-party services as well as the third-party services — these 120 connectors that we’ve got that make it really easy to integrate with outside sources, and get the data from those outside sources into the logic workflow.”
“The fact that there’s ARM (Azure Resource Manager) templates underneath, as you develop this thing, also makes this thing not just a one-shot coding exercise and then what I’ve got is something ephemeral. This becomes something that’s robust and now I can check it into source control, deploy this thing with versioning out to different regions that the Logic App needs to execute, have a BCDR (business continuity disaster recovery) story around it, have a versioning story around it. Being able to put this in GitHub and other people can consume it, so another ecosystem play there. That’s the way I look at it. Lambda is out there, and Step Functions is there, but I think we’ve got a differentiated view and we’re taking this further than what we see out in the rest of the industry.”
[Editor’s Note: AWS CloudFormation, which dates to 2011, is Amazon’s template-based technology for creating and managing AWS resources. Amazon’s automated deployment technologies also include its AWS Serverless Application Model, CodePipeline, and CodeBuild.]