As IT operations pros are called upon to set up and monitor serverless platforms, they'll need a solid grasp of the expanding product landscape.
AWS Lambda is an excellent place to begin. The serverless platform from Amazon Web Services remains the de facto standard for serverless platforms, and there's no moss growing on Amazon, as competitive serverless platforms race to catch up.
Three major Lambda updates last year stand out: Step Functions, the Serverless Application Model and [email protected]
Step Functions allow for the connection and orchestration of multiple web and microservices components in a visual workflow. It's a vast improvement over the previous Amazon offering, Simple Workflow Service, said Forrest Brazeal, senior developer of cloud architecture and services at an enterprise software company headquartered in New York.
"One of our workflows with several short deployment steps took thirty minutes to run under the old system," Brazeal wrote in a blog post late last year. "It takes -- no kidding -- thirty seconds to run to completion [with Step Functions]."
Step Functions can be further combined into a larger microservices architecture that uses another feature launched last November: the Serverless Application Model , which introduces a new resource type -- the function -- into CloudFormation.
"That's going to be the best part of Lambda by leaps and bounds, because there has never been an opportunity for the average person to go run code at endpoints," said Joe Emison, CIO for Xceligent Inc., a commercial real estate data services provider in Blue Springs, Mo. "It means if I want to build incredibly fast applications for people all over the world, a huge barrier has just been eliminated for me."
Lambda challengers: IBM and Microsoft tout serverless platforms
Against this challenging backdrop, two other IT vendors have launched their own serverless platforms. Microsoft's Azure Functions was made generally available last November, and IBM's Apache OpenWhisk followed with general availability in December.
Joe EmisonCIO, Xceligent
Microsoft touts ease-of-use features, such as Azure Logic Apps, where IT pros can use a visual interface to build an application workflow with Azure Functions on the back end. The company also hammers home the fact that Azure Functions can run locally, which plays to the strength of its hybrid cloud story. But, as yet, no enterprise has stepped up to put Azure Functions into production on premises, according to Microsoft.
The Microsoft and IBM products aim to deliver a popular slogan among serverless platform vendors: "an open source alternative to Lambda." IBM has moved OpenWhisk into the Apache Foundation, while Microsoft's source code for Azure Functions is on GitHub. Both also support .NET developers with Visual Studio integrations. OpenWhisk boasts integration with the popular Kafka open source data pipeline tool, which AWS Lambda does not support.
"It's hard to turn your nose up at something that gives you Lambda without the Lambda lock-in," said Michael Bishop, CTO at New York fintech startup Alpha Vertex, which uses IBM's OpenWhisk service. "It's great that [Lambda is] wrapped up in a bow for you, but the moment you want to be at the edges or leave the arena, you're kind of stuck."
Analysts point out that open source projects are only as strong as the community that develops them. As it turns out, IBM and Microsoft committers remain, with few individual developer exceptions, the only contributors to these projects so far.
Enterprise IBM customers also say they await an IBM API gateway that's beyond the experimental stage.
"Serverless by itself is interesting, but not particularly useful," said a senior vice president for a global financial services company, which wants to deploy serverless on premises and has evaluated OpenWhisk. "To get real work done, you need an API gateway to [connect] the serverless code with external actions."
Alpha Vertex's Bishop said he's pushed IBM to integrate OpenWhisk with Kubernetes, which he uses to bridge IBM's Bluemix and Google's Cloud Platform.
"The world is moving away from heavy-duty infrastructure answers in favor of the lighter Kubernetes way; for serverless computing, it seems a bit like overkill to have an OpenStack deployment," Bishop said. "I'm on them all the time about Kubernetes."
IBM says it is open to potential integrations and may add support for other containers and cluster managers, including Kubernetes.
Coming soon: Google, Pivotal enter the fray
What's old is new again for Google and Pivotal. Both were trailblazers in platform as a service (PaaS), and serverless just offers an execution path for developers' code at a higher level of abstraction. Google has also acquired Apigee, makers of an API gateway that has established itself with enterprise customers.
Google Cloud Functions is still in alpha, but an update could come as soon as the company's user conference later this month.* Like IBM and Microsoft, Cloud Functions can be run in any standard Node.js runtime, which allows for portability and local testing. Cloud Functions can be deployed directly through integrations with GitHub or Bitbucket.
Pivotal plans to launch Spring Cloud Functions midyear, and it predicts its serverless platform will only be relevant to about 10% of the code to be run on its PaaS. At this point, little is known about its differentiating features.
"Some people argue Lambda is just stored procedures for the cloud ... it's of that ilk," said James Watters, senior vice president of product for Pivotal. "This happened before in the monolith world, but we're now decomposing this into streams and microservices."
Serverless platforms promise cross-cloud portability
For those concerned about Lambda lock-in, Amazon loyalists point to a project called the Serverless Framework, now in version 1.0.
While not developed by Amazon, the Serverless Framework offers a utility that divides the logic in an app into multiple, portable independent functions, and it allows users to deploy autoscaling, pay-per-execution, event-driven functions to any cloud. It supports Lambda and OpenWhisk functions so far, according to its website.
"There are multiple public cloud providers out there that have their versions of these services and some cross-platform tooling out there that will allow you potentially to work across multiple cloud providers," Brazeal said in an interview. "The Serverless Framework has spent a lot of time working on that."
Meanwhile, a newly launched project, called Fission, from managed OpenStack and Kubernetes vendor Platform9, appears to have caught on in some Kubernetes circles. Individuals from the Kubernetes committer pool have contributed code to the project, which also bills itself as an open source alternative to Lambda. Platform9 is in talks to become part of Google's Cloud Native Computing Foundation, as well.
Elsewhere, Iron Functions, from Iron.io, is an open source project on GitHub. Launched in November, the technology is aimed at enterprises that already use the Iron.io's cloud-based IronWorker serverless platform, but want something in-house. Another Iron.io project in GitHub is a toolkit that can extract functions from Lambda, wrap them into containers and then run them on IronWorker or IronFunctions.
* Information changed after publication
Directly compare Microsoft Azure Functions to AWS Lambda
Ops will benefit from serverless computing, too
Serverless apps have different monitoring requirements