In the first post in this series, we talked about what is driving enterprises to modernize their applications. I hope it caught your attention and made you think more about your own modernization plans. Read on to learn what you need to consider when designing your strategy for app modernization.
Why Do I Need to Modernize Applications?
As with any technology project, the first question should be why. Why modernize apps? Is it really necessary, or is it just a fad?
2020 has highlighted, amongst other things, the value of the digital experience. Enterprises that have more modern applications, infrastructure, and approaches found it more straightforward to respond to COVID‑19 than those who don’t. They seemed to find it easier to evolve and meet these very challenging circumstances, because they were less constrained by traditional infrastructure, processes, and culture.
Of course, for most enterprises the move toward modern app development and delivery was not just in response to COVID‑19, but is part of ongoing digital transformation efforts that have many drivers (though some enterprises are farther along than others). Online consumer spending is now in the trillions of dollars and mobile apps are increasingly the preferred way customers interact with your business. Consumer expectations have changed significantly. If you’re not convinced, look at your own habits. Whether you love or loathe Amazon, it has redefined what we expect when it comes to buying. We don’t expect a seamless online experience only with Amazon – we now want it from everyone.
It is not just consumer expectations that have changed either. Many of us now realize that the enterprise IT experience has also changed. From smartphones to the public cloud, we have rapidly adopted new ways of consuming IT services. Employees now expect the IT teams at their own companies to deliver a slick, cloud‑like experience.
Expectations for a modern IT experience aren’t confined to our internal business environment either. We expect and demand our business partners to deliver a smooth interactive experience, and they expect it from us. Our applications and business processes need to reflect this – if our applications and processes are not fast enough, secure enough, or able to scale quickly enough, then we are going to find ourselves quickly losing business to our competition.
While many recognize the need for change, for enterprises that are still driven by large monolithic applications app modernization is a real challenge. How can we deliver an experience at speed and scale? How can we grow quickly to meet demand? How do we rapidly evolve systems to meet new security challenges? How can we optimize apps to provide more performance? If every change we make takes six months because of the size and complexity of our systems and processes, how are we supposed to achieve the required agility?
Evolving Our Applications
The reality, of course, is that we cannot just “throw away” our major existing business applications in order to meet these challenges. We need to evolve them. To do this, we have to find ways to take advantage of new technologies and working practices in our approaches to infrastructure and application delivery.
Where do we begin? In researching the way NGINX has developed its platforms and methodologies, it becomes clear that there are several steps for you to consider that can allow you to begin the process of modernizing your application stack.
Monolithic applications are difficult to change because of the tight interdependence among components, not to mention their complexity and generally large size. Changes to one element potentially have a significant impact on other elements, making agile development difficult. We need to find a way of separating these elements.
To truly modernize, our services must be abstracted from the (often custom) hardware on which they run. Modern business platforms give app teams the freedom to run apps in the location that is best for them at any given time.
We must know how our application is performing and is being used. Without powerful insights, how can we measure the digital experience we are providing while ensuring it remains secure?
The speed and scale crucial to modernizing the technology stack are impossible without automating many of our processes. If our systems don’t have the intelligence to react almost instantly to new security threats and customer demands, a fast cadence of app releases and updates is too risky.
Simplicity is important on so many levels when it comes to modernization. Complex systems are too hard to change at the speed and scale required for the agility we need.
Modernization must extend to our development process and culture too. The application stack must allow us to integrate with DevOps workflows, the CI/CD pipeline, and ecosystem partners so we have choices and not lock‑in.
We need to ensure that our applications are open enough for us to embrace APIs, making it possible to interface with new tools and giving us the freedom to offer quick, easy, and new user experiences. We must also adopt robust API management tools and practices to maintain control.
All of this, of course, sounds wonderful. What enterprise doesn’t want its applications to reap all the benefits of these modernization practices? They undoubtedly help us become more flexible and agile and as a result provide better digital experiences. But when we have big applications that touch many elements of our business, how do we begin to deliver this kind of modernization? We’re not just talking about upgrading Microsoft Office!
In these first two posts, I’ve tried to paint a picture of what is driving application modernization, why enterprises need to embrace it, and the steps we need to take to change how our systems are developed to better support our business needs.
In the third part of this series, I want to focus on practical tools and systems that can help. This is where NGINX plays a part and we will explore how its tools and solutions, packaged together into NGINX Controller, can help you to start to bridge that application modernization gap.
This blog is part of a series about APIs and other trends in app modernization, written especially for NetOps engineers by industry experts and published in collaboration with Gestalt IT. If you enjoyed this blog, check out the entire series.