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
Awfully Thorough Guide to Choosing the Best Serverless Solution
Part 2.2 : Azure Logic Apps and Durable Functions
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
Benefits and Use Cases
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.
Tooling and Debugging
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.
Monitoring and Logging
When Composer code is deployed it runs as a regular Cloud Function, so check out the related relevant section in IBM Cloud Functions review.
Performance and Scaling
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.
Wrap Up and Further Reading
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.