--- title: Northwestern Mutual Case Study case_study_styles: true cid: caseStudies css: /css/style_case_studies.css ---

CASE STUDY:
Cloud Native at Northwestern Mutual

Company  Northwestern Mutual     Location  Milwaukee, WI     Industry  Insurance and Financial Services

Challenge

In the spring of 2015, Northwestern Mutual acquired a fintech startup, LearnVest, and decided to take "Northwestern Mutual’s leading products and services and meld it with LearnVest’s digital experience and innovative financial planning platform," says Brad Williams, Director of Engineering for Client Experience, Northwestern Mutual. The company’s existing infrastructure had been optimized for batch workflows hosted on on-prem networks; deployments were very traditional, and had to be initiated in the company’s Milwaukee headquarters. "We had to build a platform that was elastically scalable, but also much more responsive, so we could quickly get data to the client website so that our end customers have the experience that they’ve grown to expect," says Williams.

Solution

The platform team came up with a plan for using the public cloud (AWS), Docker containers, and Kubernetes for orchestration. "Kubernetes gave us that base framework so teams can be very autonomous in what they’re building and deliver very quickly and frequently," says Northwestern Mutual Cloud Native Engineer Frank Greco Jr. The team also built and open sourced Kanali, a Kubernetes-native API management tool that uses OpenTracing, Jaeger, and gRPC.

Impact

Before, infrastructure deployments could take two weeks; now, it is done in a matter of minutes. The number of deployments has increased dramatically, from about 24 a year to more than 500 in just the first 10 months of 2017. Availability has also increased: There used to be a six-hour control window for commits every Sunday morning, as well as other periods of general maintenance during which outages could happen. "Now there’s no such thing because there’s no outage window," says Bryan Pfremmer, App Platform Teams Manager, Northwestern Mutual. Kanali has had an impact on the bottom line. The vendor API management product that the company previously used required 23 servers in production, "dedicated, doing nothing but that," says Pfremmer. "Now it’s all integrated in the existing stack, so that many EC2 instances every month are gone. And that’s just one environment. Between the three that we had plus the test, that’s hard dollar savings."
"You may not be at a point where your whole stack can be cloud native. What if you can take your API management tool and make it cloud native, but still proxy to legacy systems? Using different pieces that are cloud native, open source and Kubernetes native, you can do pretty innovative stuff."

For more than 160 years, Northwestern Mutual has maintained its industry leadership by keeping a strong focus on risk management, and for a long time, the company took a similar approach to managing its technology.

With a recent transformation to advance its digital strategy, the company has been making a lot of noise in the cloud native world.

In the spring of 2015, this insurance and financial services company acquired a fintech startup, LearnVest, and decided to take "Northwestern Mutual’s leading products and services and meld it with LearnVest’s digital experience and innovative financial planning platform," says Brad Williams, Director of Engineering for Client Experience, Northwestern Mutual. The company’s existing infrastructure had been optimized for batch workflows hosted on an on-premise datacenter; deployments were very traditional, and had to be initiated in the company’s Milwaukee headquarters.

In order to give the company’s 4.5 million clients the digital experience they’d come to expect, says Williams, "We had to build a platform that was elastically scalable, but also much more responsive, so we could quickly get data to the client website. We essentially said, ‘All the controls are off. You build the system that you think is necessary to support a new, modern-facing one.’ That’s why we departed from anything legacy."
"Kubernetes has definitely been the right choice for us. It gave us that base framework so teams can be autonomous in what they’re building and deliver very quickly and frequently."
Williams and the rest of the platform team decided that the first step would be to start moving from private data centers to AWS. With a new microservice architecture in mind—and the company’s headquarters taken out of the equation—they began using Docker containers. After looking into the various container orchestration options, they went with Kubernetes, even though it was still in beta at the time. "There was some debate whether we should build something ourselves, or just leverage that product and evolve with it," says Northwestern Mutual Cloud Native Engineer Frank Greco Jr. "Kubernetes has definitely been the right choice for us. It gave us that base framework so teams can be autonomous in what they’re building and deliver very quickly and frequently."

As early adopters, the team had to do a lot of work with Ansible scripts to stand up the cluster. "We had a lot of hard security requirements given the nature of our business," says Northwestern Mutual App Platform Teams Manager Bryan Pfremmer. "We found ourselves running a configuration that very few other people ever tried." The client experience group was the first to use the new platform; today, a few hundred of the company’s 1,500 engineers are using it and more are eager to get on board.

The results have been dramatic. Before, infrastructure deployments could take two weeks; now, it is done in a matter of minutes. Without the bottleneck that was created at the company’s headquarters, "You can take an app to production in that same day if you want to," says Pfremmer.

The process used to be so cumbersome that minor bug releases would be bundled with feature releases. With the new streamlined system enabled by Kubernetes, the number of deployments has increased from about 24 a year to more than 500 in just the first 10 months of 2017. Availability has also been improved: There used to be a six-hour control window for commits every early Sunday morning, as well as other periods of general maintenance during which outages could happen. "Now there’s no such thing because there’s no outage window," says Pfremmer.
"Now the API management is all integrated in the existing stack, so that many EC2 instances every month are gone. And that’s just one environment. Between the three that we had plus the test, that’s hard dollar savings."
Northwestern Mutual built that API management tool—called Kanali—and open sourced it in the summer of 2017. The team took on the project because the vendor product that they’d been using worked in an "anti-cloud native way that was different than everything else we were doing," says Greco. It required 23 servers in production, "dedicated, doing nothing but that," says Pfremmer. "Now the API management is all integrated in the existing stack, so that many EC2 instances every month are gone. And that’s just one environment. Between the three that we had plus the test, that’s hard dollar savings."

Kanali has OpenTracing and Jaeger built in. "We wanted to do cloud native, open source tracing," says Greco. "We found that there was a CNCF project, OpenTracing, and it made sense because it was vendor agnostic and that speaks for itself. You only have to instrument it once, and then you control whatever you write on top of it. Then as I was looking at the different UIs that implemented OpenTracing, Jaeger seemed to be the one that looked the best."

Now the engineers using the Kubernetes deployment platform have the added benefit of visibility in production—and autonomy. "Before, if you wanted to trace, you had to go to the centralized team that managed the vendor product and have them run a trace for you," says Greco. "Now, developers can just use this whenever they want, however they want. It becomes more valuable the more instrumentation downstream that happens, as we mature in it."
As the team continues to improve its stack and share its Kubernetes best practices, it feels that Northwestern Mutual’s reputation as a technology-first company is evolving too. "No one would think a company that’s 160-plus years old is foraying this deep into the cloud and infrastructure stack."
— APP PLATFORM TEAMS MANAGER, BRYAN PFREMMER
But the team didn’t stop there. "In a large enterprise, you’re going to have people using Kubernetes, but then you’re also going to have people using WAS and .NET," says Greco. "You may not be at a point where your whole stack can be cloud native. What if you can take your API management tool and make it cloud native, but still proxy to legacy systems? Using different pieces that are cloud native, open source and Kubernetes native, you can do pretty innovative stuff."

As the team continues to improve its stack and share its Kubernetes best practices, it feels that Northwestern Mutual’s reputation as a technology-first company is evolving too. "No one would think a company that’s 160-plus years old is foraying this deep into the cloud and infrastructure stack," says Pfremmer. And they’re hoping that means they’ll be able to attract new talent. "We’re trying to make what we’re doing known so that we can find people who are like, ‘Yeah, that’s interesting. I want to come do it!’"