The new computing paradigms such as cloud, mobile and cognitive, are generating interesting opportunities for companies in terms of savings, efficiency and innovation. However, adherence to the latest generation IT models to replace traditional systems requires the modernization of legacy business applications, as well as a change in software development and lifecycle management methodologies.
Today, companies of any sector and size have to deal with an international and highly digitalized competitive landscape, which requires a thorough organizational review with the aim of personalizing the offer and accelerating time-to-market. The business requires technologies to support activities capable of supporting higher levels of performance and flexibility, while reducing implementation and maintenance costs.
Modern business applications become the heart of the new Digital Enterprise: fast in design and deployment, they meet the current needs of LOBs, guaranteeing user-friendly interfaces, easy and secure access from any device, availability anytime, anywhere.
The cloud, on the other hand, represents the main architecture for new IT ecosystems: these are multi-cloud environments, where it is not only the infrastructures that become hybrid, but the applications themselves. In fact, the software must be able to run on different systems, in traditional or as-a-service mode, in the company offices or in the provider's datacenters. This opens up different design scenarios, ranging from the adoption of containers (which allow the rapid development of software for legacy or cloud environments thanks to the use of standard elementary resources) to application modernization for the transposition of traditional programs towards as-a-service models and on the cloud.
The obsolescence of business applications today is a stressing problem for many organizations, one that affects both IT personnel and business users. The use of software based on frameworks that are outdated or even at the end of their life (therefore left without functionality and security updates) in fact involves numerous critical issues both in terms of management and protection and in terms of performance and ease of use.
It is therefore necessary to pursue a strategy of modernization of the software park, with a view to a cloud first strategy, which allows to meet the application needs of the business, such as multi-device access, 24x7 availability, usability, time-to-market speed and so on.
The tactics to achieve the goal and adapt programs to the as-a-service paradigm can be manifold.
Re-hosting (or the so-called Lift-and-Shift strategy) consists in the simple transposition of the business application and associated data on the cloud without changes to the code or functional characteristics.
The re-platforming (also known as the Lift-Tinker-and-Shift approach) involves the more or less profound modification of the code with the aim of optimizing the functional and structural attributes of the application to fully reap the benefits of migration on as-a-service infrastructures, and simplify subsequent maintenance operations. The business application, improved in terms of flexibility and integration with cloud native technologies, will therefore be able to take advantage of a whole new portfolio of services, such as serverless architectures or cloud databases.
Sometimes, however, more stringent interventions are necessary and the program must be completely rewritten starting from scratch but preserving its functional characteristics. The re-building aims to develop a new cloud native business application, directly using the microservices architectures and the tools made available by the PaaS (Platform-as-a-Service) environments. The containerization technique is today one of the most accredited for the development of modern applications with a high level of scalability, deployment speed and portability between heterogeneous environments. Put simply, a container is a virtualized server at the operating system level. Unlike virtual machines, in fact, it does not recreate an instance of all physical assets (storage systems, computing units, network equipment and so on) but only of the application execution environment. Containers substantially provide applications with shared real resources, accessible according to established criteria; compared to a VM, they require fewer computational resources and reduced activation times.
Obviously it is not always possible to perform application re-hosting and in some cases the other modernization techniques can be not very convenient. In fact, there are situations in which it is necessary to replace old applications with other cloud-native solutions, capable of performing similar functions.
As a last consideration, it should be assessed whether the applications in question are really essential to business activities or could be safely decommissioned.
It is clear that the transition to modern business applications involves a non-simple effort for the entire organization. Information Systems must take time and resources to migrate to the cloud or any software selection, but also users must be trained and get used to new tools. It is therefore preferable to study upstream which software is useful to the company and should be maintained, leaving open the possibility of discontinuing some programs.
The choice to open up to application modernization also implies a better collaboration between the IT team and corporate users: it is in fact on the thrust of the business that the application evolution process is activated, in light of the new competitive needs. Lobs will therefore clarify their needs and request new software features from IT colleagues. The adoption of DevOps and Agile methodologies for application design is also important: by working in constant synergy, the development and production teams can accelerate software release times, with the possibility of making changes very quickly, meeting the demands of the business.