At the Serverless Conference in New York City on Tuesday, IBM is unveiling Composer, a new programming model to move forward the development of serverless applications.
Composer is effectively a library of patterns that are key for building serverless applications. IBM is making it available today in Node.js, but developers can take the model to make it available in other programming languages like Python, Swift and Java.
“Rather than forcing people to learn new programming languages, we’d rather bring the model into their favorite programming language,” Rodric Rabbah, principal researcher for IBM Cloud Functions, told ZDNet.
The idea behind the library is to expose key features of serverless and Functions-as-a-Service, Rabbah explained: “To make functions first class and still allow you to orchestrate the execution of all the functions and the data flow between them automatically, freeing the programmer from having to do that.”
Composer preserves the promises of serverless, such as automatic scaling and paying as you go and not for idle time.
Typically, developers building solutions with serverless either have to roll their own composition in an ad hoc manner or use a separate service, such as AWS Step Functions, IBM researcher Paul Castro told ZDNet.
Composer, he said, “is bringing that composition into the development flow you would already use for serverless, and it’s well integrated into what we have in OpenWhisk/ IBM Cloud Function.”
“This is the bleeding edge of serverless right now,” Castro said.
Last week, Oracle announced it’s open sourcing a serverless developer project called Fn, which will bring serverless capabilities to its Oracle Application Development platform. Developers can use it to orchestrate and sequence functions together within various languages including Go, Java, Ruby and Python.
“There’s really a large gap of where serverless is today and where it needs to be for developers to actually leverage some of the benefits,” Rabbah said. “Composer is really a way of filling that gap and trying to make it appeal to developers, so composition just looks like code you would normally write.”
IBM is also introducing the functions shell, a new tool to help with developing, deploying, running, and debugging serverless Functions and compositions. For instance, a developer can use it to edit code in a text editor rather than a drag-n-drop UI, or to validate compositions with visualizations without switching tools. It also helps developers deploy and invoke compositions using familiar CLI commands.