Building better SaaS products with UX Writing (Part 3)
UX writers are not omniscient, and it’s best for them to resist the temptation to work in isolation, just as...
A multitude of strategy alternatives can be used to tackle the business challenges of applications. A typical modernization initiative consists of different strategies that are applied to the different components of an application.
In the modern all-digital business environment, applications play not only a critical role for driving the internal business processes but are also increasingly key to generating all new digital revenue sources or driving traditional revenues using digital channels. This has led to 100 million applications being created during the last 40 years (according to IDC) with the same amount of applications estimated to be created during the next 5 years alone.
Clearly, not all applications of these applications have been built in light of the current requirements nor using the cloud technologies that drive much of the current digital businesses. These traditional companies becoming increasingly digital are now facing new software related challenges impacting their core businesses that they had not faced in the past.
Such challenges are for example:
Luckily the public cloud provides a rich set of PaaS services that go beyond the virtual infrastructure provided by traditional data centres. These services, such as managed queues, databased and serverless compute, drive new development paradigms such as serverless or cloud-native application development, which have a track record not only in making the operations of the applications more flexible and cost-effective (up to 90% savings) but increased developer productivity (up to double). These advantages are driving high adoption. According to IDC, two thirds of new enterprise applications will be developed cloud native by 2021. Cloud technologies enable not only new application development but also make modernisation initiatives of legacy applications more viable and attractive.
A multitude of strategy alternatives can be used to tackle the business challenges of applications. A typical modernisation initiative consists of different strategies that are applied to the different components of an application.
The simplest approach for modernisation consists of replacing some of the generic services of the application with managed cloud services to gain cost savings and/or improve scalability. For example,
This approach typically requires minimal changes to the application source code and enables to get an improved and cloud-optimised version of your application in production in minimal time. In 6R terms, this is what is typically referred to as “Re-platforming”.
One approach used is the introduction of an API façade based on cloud native technologies such as AWS Lambda and Amazon API Gateway and decoupling of the legacy application from the user interface layer. Some business logic related to the application may be introduced to this API layer but it is a good practice to keep that fairly simple. This approach enables the following:
The most complex approach is a full rewrite of an application or component (in 6R terms “Refactoring”). This approach consists of re-architecting the application or component to fully leverage the capabilities of the public cloud and rewrite most of the application code, possibly in a different programming language than originally used. Typical architectural patterns that are applied during a full rewrite are:
In addition to the technology and architectural changes, it is key to have also modern software development tools and practices in place to get most of the benefits out of the modernisation initiative.
In real life modernisation initiatives, it is typical that the strategy is a combination of the above and modernisation is run in a phased approach by modernising component by component. This enables faster time-to-production with the initial architecture and ability to leverage the modernised architecture sooner than an “all-at-once” approach. The downside of a phased approach is the added cost of running both the legacy and modern applications in parallel but that is often justified by the positive impact on other strategic business metrics than operating cost. An example scenario for a phased modernisation is the following:
With the multitude of approaches available, embarking on the modernisation journey for an application or portfolio applications requires clear objectives and understanding of the capabilities. Our recommendation is to start with an application assessment which consists of the following:
The above are key to ensure that the objective and business rationale for the modernisation is clear and driving the actual modernisation work aligned with the set objectives.
Nordcloud helps customers with the full modernisation journey from assessment to managing the modernised applications in public cloud environments.
P.S. Nordcloud will be attending the AWS Summit in Stockholm on May 22nd, 2019. Come visit us at booth P2 and discuss more about our experiences in improving digital business capabilities with application modernisation. Sign up at https://aws.amazon.com/events/summits/stockholm/
Let’s discuss how we can help with your cloud journey. Our experts are standing by to talk about your migration, modernisation, development and skills challenges.