peshkova - Fotolia


When is serverless technology best for app modernization?

Serverless has emerged as a viable option for app modernization, but it's not always a perfect fit. Rich Sharples, Red Hat senior director, explains the considerations to take.

Recent queries about businesses using serverless technology for application modernization -- even for mainframe applications -- gave Red Hat's Rich Sharples pause for thought. Not only are these customers seeking new uses for serverless at an early stage in its adoption cycle, but they consider it a way around a traditionally complex processes, said Sharples, senior director of project management, at Red Hat Summit 2018 in San Francisco.

The notion that businesses want to skip four or five generations of technology from mainframes and go straight to serverless technology shows two things, Sharples said: modernization is an urgent concern and serverless users aren't traditionalists. While serverless does have its place in legacy app modernization, Sharples said developers should proceed with caution.

Use cases for serverless in app modernization

The role of microservices in modernization comes into play when an application needs a new mobile front end or when some features in a monolithic application need to be modernized faster than the rest. Serverless functions can be used in some of the same ways, and writing functions has a simpler learning curve.

"We'll see monolithic applications being componentized and some components being offloaded onto serverless where it makes sense," Sharples said.

Spinning off event-driven functions comes naturally for serverless because code can be developed, scaled and run efficiently, he added. If the function isn't a fit for serverless, another option is to offload it in containerized microservices.

Rich SharplesRich Sharples

Another use for serverless in legacy app modernization is the use of functions to customize existing applications. For example, serverless functions can be used to customize vertical market billing systems, Sharples said. In the past, callback functions performed that custom function.

However, Sharples didn't recommend trying to retrofit most parts of a company's legacy applications with serverless. "Look for opportunities where serverless technology really does make sense, rather than saying, 'How far can we stretch this paradigm?'"

Advice for the serverless kind

Serverless development and deployment is [meant to be] a simpler process, and it attracts more noncareer developers.
Rich Sharplessenior director of project management, Red Hat

After Sharples heard an increase in queries about serverless, including those about modernizing mainframes, he noticed a different mindset.

"Serverless development and deployment is [meant to be] a simpler process, and it attracts more noncareer developers," Sharples said. Noncareer developers tend to want things done very quickly, he added, so they find the ease of serverless functions and increased speed of deployment appealing.

Bearing this type of user in mind, Sharples offered advice on the key serverless technology characteristics a development team should consider before adoption. Teams should remember that serverless function invocations are stateless. He also pointed out that serverless only supports an event-driven model, executing some action in response to external stimulus, and that an event-driven architecture may be unfamiliar and may require developers to think differently about how to solve a particular problem.

Serverless technology will not exist in isolation in a computing environment, Sharples said. It will likely be employed in a hybrid setting alongside traditional applications and services. Therefore, it is important to select an operating environment, such as a cloud platform, that supports the different models and styles of programming, including serverless.

Dig Deeper on Application management tools and practices

Software Quality
Cloud Computing