Awfully Thorough Guide to Choosing the Best Serverless Solution

Ilya Kritsmer
Aug 30, 2019 · 4 min read

In the previous blog post in a series we’ve examined Azure Logic Apps and Durable Functions. Now let’s see what Google and IBM have to offer. Spoiler: it will be a VERY short post.

Previous post in a series

Serverless Orchestration: Google Cloud

“OK, Google: What does Google Cloud have to offer when it comes to serverless orchestration?”

“Your search did not match any documents.”

That’s right, Google Cloud has nothing to offer here, so we’ll move right on to the next option, IBM!

Serverless Orchestration: IBM OpenWhisk Composer

Big Blue delved into serverless orchestration in October 2017, launching its Composer framework based on Apache OpenWhisk. Composer is authored by IBM Research, which may or may not indicate the framework is one of those experimental products IMB isn’t sure is worth betting on. Either way, Composer is a part of the Apache Incubator and it is open source, and because the last commit was more than a month ago[AE1] , it doesn’t appear to be actively developed. Beyond that, as IBM official Composer documentation states, the framework is still in a technical preview stage, almost two years after launch. The official documentation is very laconic, and the community is far from being vibrant — there are very few tutorials or hands-on reviews about the framework.

With that in mind, let’s drill down into the details

Unlike AWS and Azure, IBM did not integrate Composer with its IBM Cloud GUI, so all the development is done locally, leveraging a dedicated Electron-based virtual shell. This means there are no “Composer like” ready-to-use templates available to implement various business scenarios or integrate with other IBM services — which is an obvious flaw when comparing it to AWS and Azure offerings.

So, instead of including fancy screenshots and summarizing various use cases here, we’ll simply quote IBM: “Composer extends Apache OpenWhisk sequences with more combinators (JS, Python 3), which you can use to create more complex flows that include conditional branching, error handling and loops.” The exact examples of how to implement these features are included in the official documentation.

As mentioned above, the only option to develop Composer as an app is in a local development environment. You can either use a CLI, which supports JS and Python3, or a dedicated open source tool called IBM Cloud Functions Shell (which is now deprecated and has been replaced by another common purpose framework named Kui). The latter has a pretty neat GUI and can be seen as a kind of virtual execution environment.

Kui provides a bunch of useful functionalities and you can start with those (although we should mention they’re pretty old). Check out Serverless Composition with IBM Cloud Functions and Building Your First Serverless Composition with IBM Cloud Functions tutorials, both by Raymond Camden, to get more familiar. Note that you will still need an IDE (e.g., VS Code) or a simple text editor to write the source code.

Composer’s core units are actions (which is actually an OpenWhisk term) and those actions can be, among other options, IBM Cloud Functions. This means every service Cloud Functions offers works with and is relevant for Composer, but there is no built-in integration with any IBM Cloud service.

When Composer code is deployed it runs as a regular Cloud Function, so check out the related relevant section in IBM Cloud Functions review.

Unfortunately, there is no official data about Composer’s performance and scaling behavior. While there is a blog post by Rodric Rabbah that examines the performance of the Composer framework, it is not enough to make any conclusion about the real numbers.

Again, no official documentation exists. Since at the end of the day Composer runs as Cloud Functions, it is reasonable to suppose that the Cloud Functions security model applies to Composer too — but do not take this as a guarantee.

No pricing model is specified anywhere by IBM. Once again, consider the Cloud Functions model and assume it applies to Composer.

OK, the IBM OpenWhisk composer is far from even being a half-baked project and cannot be recommended for anything but demos and POC projects. We’ll see if IBM will put more effort into Composer in the future, but for now, it is really just a technical preview of a real product, and no further reading is needed here.

Awfully Thorough Guide to Choosing the Best Serverless Solution

A Guiding Light Through A Chaos Of Serverless

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store