How to Achieve a Modernized App Stack
How to Achieve a Modernized App Stack
An insider’s take on the technical aspects of a modern app stack.
More often than not, the need to modernize IT systems and applications will be made evident by different signs of aging infrastructure. However, in some cases, the need for modernization may not be so obvious. For instance, instead of implicit costs reflected in repair bills and third-party licensing fees -a business may be paying for older technologies through opportunity cost, usually in the form of:
- lost clients
- higher time-to-market than competitors
- lower employee productivity
- limited development options
and many more. The point being, modernizing your IT infrastructure and especially your app stack is a vital step in improving your company’s capabilities. But how?
In this article, we’ll take a comprehensive look at the technical aspects of a modern app stack, what components it has, and how to achieve a modern tech stack.
What is the Ideal Architecture?
A tech stack is only a part of the ideal architecture, which itself is only a part of the modern IT infrastructure. Modernizing your existing tech stack to meet today’s IT requirements is one of the best ways to reach that ideal architecture. But what exactly is it?
The ideal architecture consists of a series of principles, practices, and technologies. Most of these are based around cloud computing which, in many ways, lays the foundation of an ideal infrastructure. At the core of the ideal architecture, we find the following characteristics:
- Independent Development
- Independent Deployment
- Fault Isolation
- Granular Scaling
- and Mixed Technology Stack
These characteristics make the ideal architecture very similar to the microservices architecture - and that’s not a coincidence. For many businesses, the microservices is the basis of the ideal architecture as it supports most of the requirements.
For instance, the Google Cloud Platform allows developers to build very versatile applications based on microservices while using a mixed technology stack. But simply having multiple programming languages in a single project does not make the app stack modernized.
What is a Modern App Stack?
An app stack (or tech stack) is simply a combination of technologies (programming languages, libraries, tools, and services) that are used together to build, deploy, and maintain an application. A modern app stack is one that meets the requirements (or characteristics) of the ideal architecture. Which in the real world translates to a smoother and more resilient customer experience, reduced costs, faster development, automation, and more.
One of the most fundamental ways a modern app stack is different from a traditional app stack is in the level of scalability and extensibility it offers. Traditional app stack generally cannot scale limitlessly nor can it be very extensible since it is monolithic in nature (and the code is coupled tightly). It also doesn’t allow for parallel development or ease to switch to different programming languages.
All of this is possible due to the technologies used in a modern tech stack. For instance, a cloud-native app stack would generally include numerous container-specific tools and services such as container orchestration software (Kubernetes) that allow development using microservices and CI/CD pipelines.
The other main basis of differentiation is the specific technology it uses. Almost every app stack would include a programming language, a database, a networking solution, etc. But most of these components won’t be the same across both modern and traditional app stacks.
For instance, for your database, you may be using a legacy on-prem database. But a modern app stack calls for something more scalable and resilient - a cloud-based database like MongoDB. One of the most popular modern app stacks is called MEAN App Stack. It stands for:
- MongoDB, a JSON-based cloud document database.
- Angular (Angular.js / Angular 2), a frontend web app framework
- Express.js, a backend web app framework
This is just one example of a modern app stack. In the real world, businesses often change individual components(for instance, switching from Angular to ReactJS) to better serve business objectives.
Benefits of a Modern App Stack
Apart from the obvious benefits of a modern app stack such as reduced time-to-market and increased scalability, a modern app stack also results in:
1. Easier recruitment
If your IT infrastructure supports a wider range of programming technologies, you’ll have a much easier time finding technical talent as you’re not limited to a recruitment pool for one, specific expertise. Believe it or not, finding technical talent is still a major problem in 2021 and the last thing a growing business needs is to be bottlenecked by a lack of staff.
2. Improved security
Legacy tech stacks are often based on outdated technologies that may no longer be supported and thus have vulnerabilities to cyberattacks. They also have a higher chance of developing these vulnerabilities in the future. In addition to this, if you decide to take the public cloud route, your cloud vendor will provide an extra layer of security and monitoring to your cloud-native app stack and apps.
3. Reduced maintenance costs
It’s normal to assume that having multiple technologies will result in greater maintenance costs - but this is a common misconception. The use of a mixed tech stack (properly) results in fewer failures and is built to withstand (and isolate) failures, minimizing damage in worst-case scenarios, such as natural disasters.
4. Better prepared for the future
Most legacy app stacks are already outdated in the context of today’s requirements and will only become less and less capable in the future. Modernizing your app stack not only ensures that businesses improve customer experience today but also in the near future.
How to Deploy a Modernized App Stack?
Sadly, as you may imagine, modernizing your app stack isn’t always as simple as migrating to a different database. In the real world, deploying a modernized app stack has numerous variables and is generally done as part of a larger modernization project. However, this does not mean that you cannot deploy a modernized app stack alone. You can and it can even serve as the stepping stone to a company-wide modernization.
There are a few approaches you can take to creating a modernized app stack but all of them begin with the same step: setting goals and objectives.
Determining business objectives and needs
The case for modernization shouldn’t only be inefficient processes but also your competitive advantage (or lack of one). The reason being, any form of modernization comes with some level of disruption and it’s best to avoid disruption unless doing so costs us a competitive advantage, in which case, we must embrace change while minimizing disruption.
For instance, having a mobile app is a major advantage for most businesses today and if that is your primary goal, your tech stack will be based around mobile app development. Another decision to make is which operating system your target audience uses more. There are different app stacks for iOS, Android, and cross-platform development.
Android Studio & Android Developer Tools
Xamarin + C#
Scope of modernization
In the context of app stacks, we’re usually exclusively talking about software - not hardware. However, depending on how comprehensive your modernization project is, updating/changing hardware might also be necessary (to varying extents).
In the case of cloud-native tech stacks, businesses will almost always migrate some of their workloads to a cloud vendor like Google Cloud Platform (GCP) that offers technologies such as Cloud Storage (database) and Kubernetes as well as the hardware through the public cloud.
In a nutshell, modernization does not have to mean a digital transformation. Businesses can pick and choose what they need and implement those solutions through comprehensive modernization strategies already available.
Planning the stack
One of the final big challenges of modernizing your app stack is actually building and deploying the stack for everyday operations. The complexity of this phase depends very much on the scope of modernization. For our discussion, let’s focus on the most complex scenario and how we can overcome it with minimal issues - modernizing every aspect of the existing tech stack.
In such cases where the existing technologies are completely obsolete in the modern tech landscape, one of the best approaches to modernization is going the cloud-native app stack route. I advocate this route because it’s a very practical solution for legacy businesses that simply want to build and deploy apps with minimal hassle.
Building and deploying a modern app stack
The big question business owners have at this point is “what’s next?” and the answer begins with evaluating your current environment and app stack. It’s unlikely that your existing app stack is completely obsolete and dropping everything to start from scratch is rarely recommended.
Instead, the right approach to achieving a modernized app stack is to do business case studies and product analysis of what the pains are with the current stack and prioritize modernization based on that. Common pain points may be:
- lack of collaboration
- lack of support for remote teams
- limited scalability
- increasing costs
- finding technical talent, and more.
Next, begin modernizing the app stack (changing existing processes and introducing new components). It’s important to improve incrementally which results in measurable results for the long-term business objectives. We recommend using a cloud-native app stack. At the moment, there are less than a handful of options and the Google Cloud Platform (GCP) is arguably one of the most comprehensive and small-medium-enterprise (SME) friendly. GCP has very SME-friendly pricing and even a cost calculator. Most importantly, the platform has a fully managed service for every major component of an app stack.
Now that you understand what a modern app stack is, its benefits, and how to build/deploy it, the final step after modernizing your app stack will be to find the right technical talent. Although you’ll now have access to a larger recruitment pool, finding the right individuals may still be a challenge. Thankfully, there are quite a few options to keep IT operations going, such as staff augmentation.