Application Modernization: A Demystified and Practical Perspective for 2020
Dane Johansen
GitHub Actions Aficionado | Helping dev teams ship better code better with CI/CD+ automation
Note: This is the 10th article in a series of articles authored by various Microsoft Azure Specialists in a "12 Days of Azure" program for this year's holidays! A new article will be shared every day between Dec 13th and Dec 24th. #12DaysofAzure
The mark of a new year never fails to motivate people and organizations all over the planet to make changes. The new year is almost upon us. Is there anything you'd like to change?
If you're a business, one of your greatest opportunities to explore impactful change dwells in your datacenter.
That's right...I'm talking about digital transformation. And when it comes to practically identifying opportunities to change the way we do business with information technology, one of your first stops on the journey is application modernization.
What is application modernization? Simply put, application modernization is the practice of delivering better apps to end users, and delivering those better apps better. You with me? Let's break this down some more.
When I say better apps, I refer to software applications that do a better job of helping end users do more. Now, I'm not saying that a business's current app landscape isn't helping end users get the job done. But I am saying that there's most likely an opportunity to improve or enhance this app landscape to empower end users to achieve higher levels of production. And here's how we can think about building and delivering better apps:
- Give 'em a beautiful interface. A good number of the applications that end users must use on a daily basis lack a modern UI and UX. A fresh and strategically designed modern interface for today's modern worker can make a big difference in helping end users work with it more efficiently. Plus, as end users, we can all admit that a well-designed modern UI/UX is delightful and motivates us to actually use the app more.
- Give 'em a mobile edge. You want to help today's modern end user work do more? Then give them the opportunity to use the apps they love most on any device, any time, any where. One of the chief ways to do this is to make your app mobile. Take Microsoft Teams for example. At Microsoft, we love Teams. And we love Teams for a number of reasons. One of those reasons is that Teams is a stellar experience on a smartphone (in addition to the desktop and web browser). Many would argue the experience on mobile is even better than what you get with the desktop app. That makes Teams a better app. Think about adding this mobile capability to other popular apps in your landscape.
- Give 'em cognitive capabilities. I'm talking about infusing AI into your applications. Imagine how an app could help an end user do more if it had the abilities to see, hear, understand language, speak, converse, autonomously search for information, and offer advice and provide recommendations? Now we're talking, baby. This is what we refer to in modern tech when we talk about making apps more intelligent.
Building better apps is one dimension of application modernization. The second dimension of application modernization is all about delivering apps better. The first dimension is all about helping end users achieve more. This second dimension is all about helping IT administrators and developers achieve more. And when IT administrators and developers are achieving more, I can guarantee you that a part of that "more" involves focusing more time, energy, and money on the first dimension. And who doesn't love that? Spending more resources on helping end users do more? That's the dream of IT! And so, here's how we can think about building and delivering apps better:
- Use as-as-Service (aaS) as much as you can. Whether you're performing a lift-n-shift to host applications on public cloud infrastructure (Infrastructure-aaS) to free yourself from managing facilities, metal, and hypervisors, or you're packaging code and deploying to a public cloud application platform that manages the underlying server OSes and middleware for you (Platform-aaS), or you're letting a cloud solution provider do it all for you with a hosted software service (Software-aaS), you gotta' get much more intense on capitalizing in this area. And why? All three of these, to some extent, put your IT organization in a position to spend more time focusing on delivering better app experiences to end users and less time on managing the underlying means. Plus, as-a-Service (aaS) can often give you better reliability and security experiences, more speed in overall delivery, a lower total-cost-of-ownership (TCO), and a better posture for pursuing IT innovation.
- Break applications into microservices, containerize those microservices, and run them on a serverless PaaS platform. There's another sexy tech term for you. S-e-r-v-e-r-l-e-s-s. It's really a beautiful thing. Imagine running your application as a distributed system of micro-functionalities on a public cloud platform where you don't manage the underlying infrastructure, OS platform, or middleware, and you only run your application when it's being used (micro-functionalities triggered by end user activity) and thus only pay for what you use at those times. It's really a package deal here. Microservices enable teams to push out functionality faster and to ensure higher levels of resiliency (by the microservice). Containerization makes microservices deployments more portable and efficient in their resource consumption. And serverless hosting can improve app performance and reliability, while also keeping your hosting costs down. Can someone say win? WIN!
- Become a DevOps-oriented shop and automate delivery as much as possible. When it comes to building, integrating, testing, and deploying software to live computing environments, businesses today have a tremendous opportunity to pursue automation across all of these activity streams. Now, DevOps isn't solely about automation. DevOps is all about development and IT operations teams working together to deliver better functionality (tested) faster. That's the bigger picture. But, it just so happens that automation is a big part of this. Combine DevOps delivery "pipelines" with as-a-Service (aaS) hosting and microservices-oriented, containerized apps aimed at serverless platforms, and you're on the way to becoming one lean, mean (a good mean, I mean) tech-enabling machine.
So there you have it. That's application modernization. Building and delivering better apps, and building and delivering those apps better. It's a world of changes worth exploring. The result? End users who produce more. And that means profitability. And positive impact. Boo-yah.
At Microsoft, we've built the tools and the platforms (yes, that's plural) that you need to build and deliver better apps - and to build and deliver those apps better. It's time to explore what's available and thus what's possible! Now, if you can't wait until the holidays are over to engage your Microsoft team, do a little DIY exploration and specifically check out Microsoft Azure, Azure DevOps, Visual Studio Code, and Power Platform (namely Power Apps). A great place to start getting immersed is https://docs.microsoft.com/en-us/.
With that, I gotta' roll. Merry Christmas, Happy Holidays, and Happy New Year (almost!) everyone! Sending you tons of love, encouragement, and inspiration from the Microsoft family.
Tango with Microsoft in 2020. We've made it our mission to help you achieve more. Let's make it happen.
Vice President, Strategic Retail | North America Applications at Oracle Corporation
5 年Haha, wow!