In this episode of Lancom TV we sit down with Nick Westbrook, Microsoft's Cloud Solutions Architect. We discuss application modernisation covering the important facts a business needs to know before embarking on a change.
With most businesses having legacy applications ready for a review, this is a timely conversation that not only discusses the technologies available to modernise, but also the business case behind it.
Priscila: Take two. Hi, guys, welcome back to Lancom TV. I'm Priscila Bernardes and today I'm sitting here with Nick. Hi, Nick, how are you?
Nick: Hey. Good, thanks, Priscila. Yourself?
Priscila: I am very good, thank you.
Priscila: So, Nick is a guest today and he's a cloud specialist for Microsoft so we're very excited to have him on the show today and we are here to talk about application modernization.
Nick: Awesome. A pleasure to be here.
Priscila: My pleasure, Nick. So, application modernization I guess it's a massive topic. It can mean a lot of things to many people and what we're trying to do today is to try and simplify it for our audience watching us and understand what this means for New Zealand companies, global companies, and where does it all start and end I guess. So my first question for you today is the basics, right? What does application modernization mean? What does that mean for businesses and decision makers that are watching us today?
Nick: Sure, no problem. So, as you mentioned, app modernization gets banded around quite a lot, a lot of people have different ideas around it. But generally, at Microsoft, we tend to think of it as redeveloping applications to take advantage of the cloud-native capabilities that are present in platforms such as Azure.
Nick: So, if you think about the history when some of these applications were created sort of, you know, 5 years ago, possibly 10 years ago, rolling out the platform to host these applications was quite a mission. So you had to, like, build virtual machines and different tiers of the application, you know, you had your web tier and application tier, and the database tier. And often you had to have high availability of each other's tiers.
Priscila: Could take months, couldn't it?
Nick: Exactly, and you needed to know upfront what your key capacity would be so that you can actually provision the platform to cater for that even though overnight it's not being used at all.
Priscila: Correct, yeah.
Nick: And then there's all the management that goes with it. So, it's like a lot of effort that went into build a platform to host these applications. And the applications themselves were essentially these big monoliths, so development teams would build an application and you had, like, you know, one EXE with a bunch of DLL's and it would just sit there and it's all very tightly coupled together so you couldn't actually split this application apart, it all needed to run on, like, single virtual machines. So, all of that efforts and the way things are built in is a far cry from where we are today. You know, so if you think about the way that we can do things in the cloud today, it's totally different.
So, looking at some of the services that we have written in the Azure platform. So, we've got Azure App Service, you know, which allows you to run a web app with just a few clicks, you know, you don't need to worry about any of the underlying infrastructure or patching and maintenance. Nothing like that. If you look Azure SQL Database, you know, you can essentially run a database in a platform as a service offering where you don't need to worry about any of the high availability underneath it, a lot of security is managed for you. No virtual machines in sight. So, there's a lot of benefit in hosting these applications in the cloud.
Priscila: In the cloud, yeah.
Nick: In a modern way. So, the process of application modernization is essentially trying to get an application from where it is today...
Priscila: Today, yeah.
Nick: ...how that's been built sort of in that monolith approach a few years ago to try and approach more of a cloud-native architecture. We might not be able to get all the way there but we can usually approach some of the way there to get some of the benefits. And there's sort of a trade off between the amount of effort we wanna put in to achieve that cloud-native outcome versus the benefit that we're gonna get from putting that effort in.
Priscila: Yeah, absolutely. So, I guess, you know, to put it super simple is to go... It's converting this monolithic application that you've once built maybe a few years ago, and in many cases, a couple of decades ago.
Priscila: And that once was a big, big job for IT teams to come together and make that happen and using cloud-native services to be able to take that application to the next stage and free up resources, free up time...
Priscila: ...so that it just runs. Is that a good summary?
Nick: Yeah, you just focus on the application...
Nick: ...without having to worry about all of the platform underneath it and all the management and legacy that goes along with it.
Priscila: Fantastic. So, I guess my next question for you, Nick, is then to go... What are the show and tell signs that a business, you know, if we're talking to the nontechnical people watching us today, how could they know whether or not they even have some applications in their business that works in such a way and they can potentially approach their managers or their peers and actually go, "Hey, how can we make this work better for us?"? Are there any kind of easy ways of spotting an opportunity for modernization?
Nick: Yeah, absolutely. So, there are a variety of triggers for someone to reevaluate where they are with an application. There are a few common ones, so for example, platform obsolescence is a big one that we see. So, you'd write an application, you know, a fair few years ago and it's running on Windows Server 2008, you know, with a SQL Server 2008 at back end.
Priscila: Which are all coming end of support, aren't they?
Nick: Exactly, yeah. So, within a few months, they're gonna be out of support which means that you're suddenly gonna be vulnerable to, you know, the next piece of malware that comes along. Really, you'd have to think about what to do with that application because it's not gonna be supported on the current platform.
Priscila: Correct, yeah.
Nick: So, if you're going through that process anyway it's probably a good idea to take it a step further and take a bit of a bigger picture view and say, you know, "What shouldn't we do with this application? Are there other ways that we could approach a certain order to get some of those benefits from running things in a more modern way?"
Priscila: Yeah, fantastic.
Nick: Yeah. And then, yeah, there's another few examples as well of times where it'd force you to reevaluate the application.
Nick: So, say our development team or one of the developers is looking to retire or move off and you suddenly lose touch with the code base, it could be written in a software development framework, you know, which is very old now. So, you're possibly looking at, you know, rebuilding it using more modern toolsets. Yeah, so there's a whole host of ways.
Priscila: A number of examples. Yeah. And I guess a final one, I guess, that comes to my mind is when that application have outgrown the business needs, right?
Priscila: Ten years ago we used to do things in a certain way and we've built this application to service us in that way but 10 years now down the track we no longer do things in that way anymore and, therefore, it no longer fits your purpose.
Nick: Integration's quite a big one as well. If you've got this old monolithic application, it could have very tight reins over the benefit that it holds.
Priscila: True. Exactly.
Nick: And you're now working with more modern applications within the business ecosystem and you want it to integrate this old application's data with the new ways that you're doing things and that could just be a step too far for the application, it could just be too hard.
Priscila: That's so true. Yeah.
Nick: So, that would force you to reevaluate ways of storing our data as well.
Priscila: Fantastic. Yeah, there's many ways of looking at it I guess is the answer, but hopefully, those examples can help clarify and give you something practical to take away and look at your business and understand whether or not you even have something along those lines. Fantastic. Thank you so much for that, Nick.
Nick: No worries.
Priscila: So, I guess my next question is around the approaches, you've alluded to the fact that sometimes the approach is to rewrite from scratch and start all over again, but is that always the answer? Is there any kind of ways that businesses can take this modernization on their own pace and essentially achieve an outcome that makes sense to them but potentially, you know, not necessarily start from just, "Let's throw everything away and do everything again."?
Nick: Yeah, absolutely. So, we actually said, "No, there are different approaches that we can take in going on this app modernization journey." So, I think it was around 2011, a fair few years ago now Gartner put together a study which looked at ways of achieving app modernization and they came up with what's known as the 5 R's to approach that. So, in my mind, there was actually a 6th R that we can start with which is kind of the easiest.
Priscila: Oh, that's news to me, six now.
Nick: So, the sixth one is essentially just Retire or Remove.
Priscila: If you don't need it, why should you have it?
Nick: Exactly. If you have this application sitting there and it's coming end of support, you know, the platform's getting obsolete, you can assess if you actually need this application at all or not.
Priscila: And there might be something off the shelf that is up there now that could assist you anyway, correct?
Nick: Yeah, exactly. I mean that's one of the other R's. So, we've got Retire, Remove. Next up we have Replace which is what you were just referring to there. So, if you've built this application yourself which does something that an off-the-shelf product does, you could wonder like, "Why go to the effort of trying to modernize this application...
Priscila: Totally, yes.
Nick: ...if you can literally, you know, pay a license fee and then just use the SaaS-based application which does exactly the same thing?"
Priscila: Which is already cloud-native and has all the benefits.
Nick: Exactly, you get all the benefits out of it, know what it is, etc. If you decide that there isn't an application that can actually do that for you, the next item we can look at is Re-hosting. So, rehosting is essentially taking the application, running on say a virtual machine in your current environments, and just putting it onto another host or into another data center.
Priscila: So, moving it to the cloud essentially.
Nick: Exactly. So, what we'd recommend is obviously, you know, picking up the virtual machine that you're running on-prem, and lifting and shifting that into the Azure environment. Your SQL Service 2008, Windows Service 2008 obsolescence is what you're trying to avoid. We actually have an offer at the moment where if you move this virtual machine into Azure you get three years of additional security updates for free.
Priscila: There we go.
Nick: Yeah, so that's some incentive. It helps you out as well.
Priscila: No changes to the application itself, it just...
Nick: Exactly. You just move it into the cloud.
Priscila: ...means it's in a better environment and that's protected and supported by the likes of Microsoft that's thinking about those day in and day out. Okay.
Nick: Yep. So, the next up we have Refactoring. So, refactoring is essentially keeping the solution essentially the same, so we're not changing anything to do with the code, but we're taking some of the components and perhaps replacing them with sort of PaaS versions of them, so Platform as a Service. So, for example, if we are running a SQL server as part of the solution like we were referring to earlier, we can remove all of that infrastructure by possibly replacing the service of that SQL server with Azure SQL Database.
Priscila: Totally, yeah.
Nick: Or Azure SQL Managed Instance, which is another option.
Priscila: That's too many R's to keep up with.
Priscila: So, six. Okay.
Nick: So what are we down to now?
Priscila: We're probably gonna put them on the screen for you so you don't get confused, but that's excellent. So, the answer's very much depending on every business situation is what I'm hearing.
Nick: Exactly, yeah.
Priscila: And there is an answer for every problem. Who knows, it could be 12 R's the next year but six is what we're looking at the moment.
Nick: Yeah, so I mean we can round it off. I think there's a couple more. So, there's Re-architecture which is the next one, you know, so essentially that is breaking the application down into its core components, and then instead of, you know, running it as a monolith, we could essentially attempt to move it into more of a microservices architecture.
Priscila: Yes, yes.
Nick: So, the benefit of that is that it allows the independent parts of the application to scale by themselves, you know, sort of thing.
Priscila: How cool is that?
Nick: It's pretty cool, yeah. If a particular component of the application gets busy then that component alone could scale out...
Priscila: Can just scale, yeah.
Nick: ...and then adapt rather than the entire platform having to adapt because one area or other is better.
Priscila: Yeah, excellent.
Nick: And then the last one is Rebuild. So, that's essentially throwing it all away and starting again, which obviously involves the most effort but you get the most benefit out of it. So, along the continuum of, you know, Remove, to actual Retire, through to Rebuild...
Priscila: To Rebuild.
Nick: ...there's multiple ways of actually achieving that modernization journey and you can kinda decide, you know, where you wanna land on that continuum based on the amount of effort you wanna spend versus the rewards that you'll get from where you'll end up.
Priscila: That's so great to hear. So, there's a solution for everyone essentially?
Nick: Exactly, yeah.
Priscila: Yeah. My final question for you today, Nick, and that's always a question that pops up. So, I'm going to go, I'm going to adopt this mindset of modernizing, I'm going to choose the approach that makes sense to my business based on what I'm trying to achieve here and now but also looking at the future of this application. What are the benefits that I'm going to realize? What are the show and tell, I guess, cases that I'm gonna look at the end of this project or this engagement and go, "This was a successful project."? Is there any common benefits that we often talk to?
Nick: Absolutely, absolutely.
Nick: Yeah, so top of mind you can think of, you know, reduced costs.
Priscila: That's a big one.
Nick: It's a huge one, yeah. If you think about all of the infrastructure that you have to build and manage in order to support these legacy on-premises applications, it can be enormous. People cost as well. So, you know, if we can try and remove some of that infrastructure by hosting it in Azure in a platform service or replacing the application entirely and replacing with a SaaS-based offering, it removes a huge amount of burden and cost that goes with it.
Other benefits, elasticity. So, as I said before on an on-prem system traditional environments you had to cater for your peak load upfront, get to know what that is. And then as your business grows you may certainly need more demand of this application.
Priscila: Or you might not know that until you run into that scenario.
Nick: You run out of it. Yeah, exactly. So, being able to host this in an elastic environment like what the cloud provides us can be a huge benefit to the business, yeah.
Priscila: I guess not to mention security, right? You've spoken to that before when you talked about the operating systems coming end of support. So, you get all of that security, all of that assurance that you're making the right decision for the future as well by selecting that platform, right?
Nick: Exactly. Yeah. By putting the application into a managed data center you don't need to worry about those...
Nick: ...bottom few layers of the security.
Priscila: Yeah, yeah. Backup, disaster recovery. And there's a lot more that comes as part of that decision.
Priscila: A final one for me is also, you know, being able to answer the needs of your staff members who certainly would be demanding access from anywhere, work flexibility comes into play here so something that's cognitive speaks to the people in your organization as well, gives you a chance to reveal the user experience of that application if you're going for a rebuild, for instance. And making sure that you're using the application to enable your people rather than preventing...
Priscila: ...them from doing their job which is a massive one for me.
Nick: Yeah, yeah. Huge. I mean these days everyone wants to be able to access their applications from anywhere on any device without having to jump through a bunch of hoops in order to do that. You know, so hosting the application in the cloud and more of a cloud-native approach allows us to achieve that.
Priscila: That's right. It's been so good. Thank you so much for coming.
Nick: No worries, it's been a pleasure.
Priscila: It's been fantastic talking to you. And essentially what you've, you know, summarized for us, today, Nick, is that app modernization doesn't need to be this complex conversation that we try and avoid because it sounds complicated. There are really easy wings that can be achieved by taking an approach that speaks to the business outcome that makes sense to your business, so it's so good when you're able to simplify a massive topic into something tangible, and I really appreciate having a chat with you today. Thank you so much.
Nick: Not a problem, it's been a pleasure.
Priscila Yeah. Thank you, guys. Bye for now.
Nick: See you.
⇒ Appreciate transparency? Get a guide through our application modernisation process. Discover Lancom's WADIM methodology.