Serverless Computing - Composer and Shell
As the FaaS story has unfolded, it became evident that programming serverless applications requires more than just functions. A new programming approach is necessary, one that allows for coordinating across functions, services, and APIs; which encourages incremental and modular code development; and which bridges the gap between code editors and fancy UIs. For these reasons, we developed Composer and the functions shell (fsh) for programming the IBM Cloud: 100% serverless.
With Composer, developers can build even more serverless applications, for IoT, workflow orchestration, conversation services, and devops automation, to name a few examples. Composer helps you express cloud-native apps that are serverless by construction: scale automatically, and pay as you go and not for idle time. You can also weave your already-deployed Functions into new and powerful compositions.
Composer is not a new programming language. Instead, it is a library of combinators, or meta programming using functional programming, which you use in your favorite language (read Node.js!). It makes it possible to write straightforward code to express control and data flow, and may be used with polyglot functions. Moreover, the same approach can be generalized to other programing languages, like Python, Swift, and Java. Our goal is compositions that are easy to express and program, familiar to developers, and which offer the same benefits that make FaaS attractive and disruptive.
The shell is a new programming experience geared for the cloud and IBM Cloud Functions. It helps with developing, deploying, running, and debugging serverless Functions and compositions. Some highlights include:
- Edit your code and program using your favorite text editor, rather than using a drag-n-drop UI
- Validate your compositions with readily accessible visualizations, without switching tools or using a browser
- Deploy and invoke compositions using familiar CLI commands
- Debug your invocations with either familiar CLI commands or readily accessible visualizations
As an early adopter, you will also be among the first to experience more features planned for the weeks ahead. We welcome your thoughts, bug reports, and contributions, and look forward to your feedback. You can also find us on slack.