Our new developer journey, Automatically scale to handle peaks in banking transaction demand, shows you the real-world benefits of implementing a serverless architecture for a common retail banking process. In a recent proof-of-concept with a large global bank, my team modernized a check deposit workflow with an elastic, serverless architecture built on Apache OpenWhisk. We deployed the system in a hybrid cloud deployment model with one set of components hosted on IBM Bluemix Cloud Functions and others running on premises. We built a solution that scales up application code instances in response to payday demand, which peaks every two weeks, and scales down during the other days. The application handles customer-facing requests with services hosted on Bluemix and then securely transmits data for further processing to an on-premises transaction processing system. All told, this customer showed that they might employ this event-driven architecture to theoretically process a billion checks for a small fraction of their current compute costs of their existing system, which uses virtual machines and bare metal servers.

Serverless, elastic, and event driven

This project highlighted some key strengths of the IBM Cloud Functions serverless platform (powered by Apache OpenWhisk) that differentiates it from competing public cloud services:
  • Actions (functions) can be written in the best language for the job because of support for polyglot programming with Node and Docker, among other runtimes.
  • The same OpenWhisk core system can be consumed on the public cloud and installed within your own data center, keeping the developer experience consistent while allowing a tradeoff between convenience and control for the operator.
  • The open source nature of OpenWhisk makes data movement and storage transparent.
  • OpenWhisk has built-in support for responding to database change events from Cloudant and Apache CouchDB through its packaging model.
For simplicity, the sample code leaves out the custom features built for this particular customer (including the split between public and private instances), but the main concepts and core of the workflow will help you understand serverless architectures and provide a starting point for your own elastic, event-driven applications. Serverless retail banking: check deposit processing with OpenWhisk

Serverless architectures, quicker responses

Today’s retail banking customers are always looking for ways to improve how they handle their personal financial tasks. They want to bank on the go (making use of time away from their computers with their mobile device), automate repeated tasks (such as paying bills when they come due), reduce transaction times (such as cashing checks), and make their deposits available as quickly as possible. If banks can’t constantly innovate to improve customer service, they will lose out to faster-moving competitors. And they must do all of this securely and efficiently. That’s why developers at financial institutions of all sizes are always evaluating new technology to improve the quality of their products and services. Apache OpenWhisk with IBM Cloud Functions offers several compelling cost, scale, and security capabilities that can be attractive for both new and existing applications. Serverless platforms provide a new way to handle common use cases that weren’t well served by earlier cloud delivery models, such as Infrastructure-as-a-Service and Platform-as-a-Service. OpenWhisk helps developers deploy applications that autoscale in response to unpredictable or highly variable demand. This reduces the developer’s operational burden, improves productivity and velocity, and can lower costs because of the pay-per-fraction-of-a-second billing model.

Autoscaling serverless platforms to optimize workloads

For this customer, the candidate workload involved automating the process of check deposits on paydays, which often takes place on a single day every two weeks. While the use of checks might be declining, it’s still a core service in demand by millions of customers in the United States, France, and elsewhere. And perhaps because it’s considered a legacy business, it’s ripe to revisit with a highly cost-effective solution. Processing check deposits is a great fit for a serverless platform as compared to PaaS, IaaS, and traditional IT. The workload is highly variable, meaning that it can be extremely inefficient to pre-provision a set of computing resources in anticipation of peak demand and have those resources sit idle during low demand periods. Furthermore, scanning checks for data using optical character recognition (OCR) can be a compute-intensive task, which may drain capacity from other applications co-located on the same, mostly idle, hardware. The video above shows the logical flow of the application. Thanks to OpenWhisk’s open source nature and its ability to be consumed on Bluemix or installed on premises, the bank could take advantage of hosted cloud services for image resizing, and move the OCR feature on their data center servers closer to their systems of record. Data is securely synchronized between Cloudant and on-premises Apache CouchDB databases over HTTPS. The OCR C library can be packaged as a Docker image, while other pieces of code can be written as JavaScript actions.

Serverless platforms for nightly batch jobs or mobile apps

A related alternative use case not demonstrated in the sample is the use of a serverless platform for nightly batch jobs. This is also a great fit for serverless because it’s a workload that only runs for a few minutes or hours and can be parallelized into autoscaled, stateless worker actions. You can also use OpenWhisk to support additional backend APIs for mobile banking apps (such as account management), and you might also use it to run complex scale-out computations more quickly and at a lower cost, such as to calculate the net asset value in a stock portfolio.

Go serverless with IBM Cloud Functions and Apache OpenWhisk!

I hope this gives you a feel for the power of serverless, especially in how it can apply cloud benefits to new or existing workloads in a way that wasn’t possible before. It can help you create new services or improve the efficiency of legacy processes. OpenWhisk is different from competing services, providing a polyglot programming model and hybrid deployment flexibility. Check out our developer journey, Automatically scale to handle peaks in banking transaction demand, then watch the demo video and go explore the code! If you’d like to partner with a developer advocate on a similar proof of concept, or just learn more about Apache OpenWhisk directly from the experts, send us an engagement request.

Join The Discussion

Your email address will not be published. Required fields are marked *