Platform9 runs internal hackathons every now and then, and software engineer Soam Vasani admits he’s worked on some “quite silly” ideas during the two-day free-for-all sessions.
His latest one wasn’t so silly. Inspired by the concept of serverless functions and interested in working with Kubernetes container orchestration, he came up with an idea that’s become Platform9’s latest managed service.
It’s an open source project called Fission, announced today, and it works with Kubernetes to run serverless functions on a public or private cloud or even a developer’s laptop. The code is available on Github, and Platform9 is talking to the Cloud Native Computing Foundation about possibly hosting the project.
The open source aspect is important. The major public clouds already offer serverless functions; AWS Lambda from Amazon Web Services (AWS) is the example most often cited. But these serverless functions aren’t portable between clouds. A job written for Lambda is locked into AWS.
“Lambda is only as powerful as the number of triggers it lets you act on, but today, those triggers are all based on services offered in the Amazon ecosystem, says Madhura Maskasky, Platform9’s vice president of product management. “If you’re a developer and you want to use Kafka, your only choice is to use Amazon’s equivalent of Kafka.”
Serverless functions seem to be catching on, judging by the new features AWS recently announced for them and by Lambda’s role in AWS products such as the IoT Button. Platform9 believes that if more developers continue working in this direction, serverless could even become a new way of programming.
That’s because serverless functions spring up in the cloud only when triggered by certain events — the code could automatically create a thumbnail image after a video is uploaded, for instance. A serverless function can’t know anything about where it’s going to live. So when it comes time to launch this function, Lambda or Fission would take care of the details at the container or Kubernetes level.
In that sense, a serverless function is a form of automation.
“It’s kind of raising that abstraction level for engineers. As an engineer, you get tired of repeating that boilerplate work to get your code to run,” Maskasky says. Serverless functions let the developer “write a piece of code and throw it at the infrastructure.”
More than a convenience factor, this could become a new model for programming, she adds. “It’s going to evolve into a mainstream way of writing software.”
Fission came from Vasani’s vague idea to build something around Kubernetes. For the Platform9 hackathon last summer, he wanted to show that the container orchestration platform could be used to build something production-worthy, quickly.
He didn’t need a fully formed idea. Platform9’s periodic hackathons are meant to stir up creativity. Employees aren’t required to start with any ideas at all. But they are required to try.
“What I like about hackathons is that there’s a companywide mandate not to do anything else work related,” he says. (Customer-related emergencies are exceptions, of course.) “Release deadlines, all those things, are put aside for two days. It’s really motivating.”
With no planning beyond some “light discussions” about how Kubernetes and “serverless” could go together, Vasani chipped away in node.js and managed to complete a “very hacky” version of what eventually became Fission.
“From there, we did our due diligence in the company, wondering: Is this worth building into a product?” he says. “In September, I think , we started building it in earnest.” The results were fit to show at the KubeCon event in November, at which point Platform9 decided to let the code loose as an open source project.
By the way, about Platform9 and Kubernetes — the company also announced general availability of its managed Kubernetes platform today. Beta availability had been announced in June.