IBM has launched OpenWhisk, an event-driven developer service, on its Bluemix cloud to aid in the creation of next-generation, microservice-based applications.
The logic runs only in response to the trigger, so the application runs for brief periods of time, with as many copies of the microservice running as needed to meet the demand set off by triggers. In other words, OpenWhisk will automatically scale up the service without the developer needing to worry about whether resources are adequate for it. These small services are frequently stored in Docker containers, where they can be quickly activated and deactivated.
The OpenWhisk service, announced as generally available on Feb. 22, is similar to Amazon Web Services' Lambda, which was launched 16 months ago. But OpenWhisk is coming into the world more fully baked. It works with three languages: Node.js, Apple's Swift, and Java. IBM said it will add more language support to OpenWhisk in the near future.
When it first arrived in November 2014, AWS Lambda worked with one: Node.js; now it works with Node.js plus Java and Python. OpenWhisk is also similar to Google's Cloud Functions, announced at the end of 2015. Microsoft's Azure has offered event-driven WebJobs since January 2014, said CTO Mark Russinovich.
IBM wasn't first to the party, but its OpenWhisk event-driven system is now open source code available on GitHub for free downloading and use on-premises, as well as in the cloud, said IBM's Angel Diaz, VP of cloud architecture and technology, in an interview.
AWS Lambda doesn't support Apple's Swift language, which gives IBM an opportunity to expand Bluemix OpenWhisk as a service for iPhone and iOS developers.
Diaz explained that OpenWhisk allows an application as set of services that can be easily revised. With monolithic and even modular applications, for the app to be changed, frequently the application has to be stopped, old code pared out, and new code phased in. With a service like OpenWhisk, microservices A, B, and C can be run as an application set. When C is outmoded, D can be composed and phased in without the application's operation ever being interrupted, Diaz explained.
Likewise, the rules that trigger the run of a microservice are stored in OpenWhisk and don't need to be concentrated in a single rules engine. Rules triggering the application logic can be changed dynamically as well, without one set of rules being hard coded into the application, Diaz said.
[Want to learn more about event-driven, serverless applications? Read How Serverless Applications Will Change Your Business.]
That's one reason why serverless applications, as they are sometimes called, represent "a leap forward" in what application developers can accomplish and how quickly they can get their code up and running, Diaz said. He expects "rule sets" that accomplish particular business goals to appear on OpenWhisk that can be used by microservices from different third parties.
Google Cloud Functions, AWS Lambda, Azure WebJobs, and OpenWhisk may represent the new face of platform-as-a-service. When development occurs in the cloud, it may follow the pattern of microservices triggered by rules, fired off by external events. Al Hilwa, IDC software development analyst, said these serverless applications are "an important new space in the PaaS world."
Because the application is fired up for a few seconds when needed instead of running continuously, the cloud charge is based on both the amount of time it runs and the number of requests coming to it. Such an approach is good for mobile apps, IoT data streams, big data processing, or analytics, Hilwa said in an interview. Hilwa got a look at OpenWhisk at IBM's InterConnect show in Las Vegas in early March.
"It's all made possible by container technology -- quick to start and quick to shut down," but different clouds may show different levels of performance. Such event-driven, asynchronous services "will prove an important competitive point for cloud services in the future," he said.