De-construct the Monolith: How Serverless Modernizes Infrastructure & Refactors Apps

Cloud-native architectures are gaining popularity in 2020, no doubt.  But while containers get a lot of attention, Stackery’s Tim Zonca shares how going serverless can provide key advantages to multiple stakeholders -- developers, IT and business.

Tags: Apps, cloud, DevOps, Lambda, legacy, modernization, refactor, serverless,

Tim Zonca, Stackery
Tim Zonca

"A well-architected serverless approach will not only reduce complexity. It will allow your organization to become a leaner, more agile one."

Application Architecture Summit
Modern Application Development for Digital Business Success
Online Conference

Generations of developers cut their teeth learning how to build monolithic applications, with one large intertwined stack.


The challenge with a monolithic stack is that it's hard to move, difficult to update and generally slow moving—especially as teams have increasingly taken agile, iterative approaches. The challenges of updating and deploying monoliths conflict with the desire to leverage distributed, cloud native architectures.


However, simply moving a legacy, monolithic app to the cloud, otherwise known as “lift-and-shift” or brownfield migration, will ultimately fail to capture the benefits of the cloud. In the end you will get the scalability you’re after— but not the time to market or the cost savings that likely drove the migration in the first place. In fact, costs will likely increase overall.


Modernizing applications involves breaking a monolithic application down into separate microservices. While this does require refactoring, it can be done one API route at a time starting with the most expensive. This way you can deliver on the scale, speed, and savings enterprises need, assuming of course that you don't carry the expensive and complex infrastructure costs along with you.


There are different paths to cloud native. While containerization gets a lot of attention, serverless is becoming a favored approach for many companies. Serverless is garnering more attention for many reasons: an increase in enterprise-class options; a reduction in complexity and more proven use cases.


With serverless momentum growing, let’s explore the basics, the benefits and some next steps you can take to get started.


What is Serverless, Anyway?

With serverless, there are no long running servers, virtual machines or containers that need to be managed by engineers. Functions execute when needed as a service and the backend infrastructure is all managed in the cloud by a service provider. Serverless basically allows you to just focus on the business and application logic, so you can gracefully refactor an application and not worry about reconstituting the underlying plumbing to run a new set of services. This is a hard detour from the cloud-native path of moving to Kubernetes clusters and orchestration management, which is more complex and just as costly than anything we’ve done in the past.


The most well-known example of serverless today is the Amazon Web Services (AWS) Lambda service, though it's important to note that serverless is much more than just Lambda–it includes resources like API Gateway, AppSync, Cognito, DynamoDB, GraphQL, S3, Secrets Manager, and many more.


There are more than twenty serverless services offered by cloud providers like AWS, and with the right management tool it's possible to disaggregate a monolithic application into building blocks, and prioritize a smarter, incremental modernization strategy that focuses on parsing out the most critical workloads and components first. Once an enterprise can re-image their assets into building blocks, they can prioritize a smarter, incremental modernization strategy that focuses on parsing out the most critical workloads and components first.


This allows you to refactor existing applications that have all the power and flexibility you need, without having to keep worrying about the underlying plumbing.

What Serverless Isn't About

Serverless is not about virtual machines (VMs), which was what the first generation of the cloud was largely about. Serverless is also not about infrastructure and simply 'lifting and shifting' what an organization is already running on-premises or in their own data center, into the cloud.


Complexity doesn't necessarily add business value. After all, it’s hard to innovate when your IT staff is spending more of its time than ever figuring out how to enable the underlying infrastructure in the first place. If the business goal is time-to-market and delivering applications fast and in a way that is manageable, secure, and scalable, then most of the time serverless is the fastest path to transformation.


Serverless Lets Companies Focus on Digital Transformation’s ROI

If your goal is digital transformation, consider what it is that you're really trying to do.


The most successful organizations focus on delivering differentiation and time-to-value.

Serverless allows you to focus on what matters, and what matters is differentiation and delivery. A well-architected serverless approach will not only reduce complexity, but will allow your organization to become a leaner, more agile one.


Put another way:  If your goal is to grow your business by delivering an application or service, dealing with the underlying infrastructure required to run an application is not what your users want to pay for.  Going a step further, hiring more people to manage and understand that overhead doesn’t make sense.


If you do the math, the complexity becomes costly.  Let’s look at a real-world example,


in the traditional world, an organization might have had 100 servers that lasted for about three years. Then Virtual Machines (VMs) came about and let’s say for every server there were 10 VMs, each lasting about six months. Now for every VM, that same organization has at least 10 containers and potentially hundreds if not thousands of microservices communicating with one another, each of which is short lived – that’s 1010 things to manage over that same timeframe. There is no way that is any less complex than what we did in the past. And in very few cases does it provide additional value.


Examining Serverless Successes

So how can you build and run modern applications in a serverless approach? We've seen it work with organizations of all sizes, including MasterStream and Branch Insurance, where complex business logic has been modernized with serverless.


At MasterStream for example, the company's journey to the cloud started out with a "lift and shift" of their monolithic applications to the AWS EC2 platform. Once in the cloud, the company realized that there were more benefits to be had by disaggregating the monolith into a set of serverless functions to better enable scalability and management.


As part of that journey, MasterStream followed AWS best practices, tracked AWS CloudWatch metrics and figured where and how to replace capabilities in the monolithic application with agile serverless functions. By focusing on business logic with a serverless approach they no longer had to spend time and resources on database management, infrastructure provisioning and other plumbing tasks.


Branch Insurance was able to utilize serverless to achieve regulatory compliance with a consistent control environment, without the complexity of additional infrastructure. Branch’s co-founder and CTO, Joe Emison, intentionally hired engineers with a lot of AWS frontend experience because he wanted to make sure that the team building Branch stayed close to its customers. However, his growing team wasn’t as familiar using AWS CLI calls as he was. To avoid becoming a silo they turned to CloudFormation. Using serverless, they were able to save a lot of time on tooling and implementation to make building on CloudFormation faster and easier. The team arrived at several key capabilities: frequent release to production, ability to roll back often, and software delivery many times faster than the average cycle.


Embracing serverless enables your organization to spend time on the things that differentiate you from competitors, that will ultimately deliver a better experience for your customers. It is a fantastic way for organizations to modernize applications and truly benefit from cloud economics: scale and elasticity, speed, security, and a focus on the application – not unnecessary infrastructure complexity.


As CEO of serverless delivery and automation company Stackery, Tim Zonca focuses on making the lives of software teams productive and impactful with serverless so that businesses deliver and modernize cloud native applications quickly.  He has spent the past 20 years helping enterprises adopt modern software to innovate and remain competitive, with an emphasis on DevOps tooling and agile best practices.