Every enterprise has dozens, hundreds, or even thousands of applications developed through traditional methodologies. Whether those applications were created by internal developers or purchased off the shelf from software publishers, it’s highly likely they were built and deployed using tools and processes that have been around for years.
After all, monolithic development techniques make changing your application difficult, time-consuming and expensive, because changes rarely can be made in small increments, as is typical in today’s DevOps development culture. Instead, changes to traditional applications have to be amassed, the system has to be made unavailable for a period of time while the application is reworked, and everyone has to hope for the best when the work is done. And, in all likelihood, you’ll have to go through the same cumbersome process six months or so after more requirements are identified.
However, while you may be worried that your traditional three-tiered applications aren’t a good mix in the era of digital transformation, don’t be too quick to jettison your legacy software―particularly if it’s a tightly coupled, workhorse application that is still widely used for important functions. Instead, to enhance your traditional applications in terms of speed, utility, scalability and insights, consider adopting some technologies that are readily associated with cloud-native development processes.
For instance, did you know that, without having to resort to refactoring code or starting from scratch, it’s possible to embed technologies such as artificial intelligence and machine learning, containers and microservices into your legacy application, even if it was developed years ago using waterfall development methodologies? That’s what a developer recently did with a decade-old Java web application, using Docker, Kubernetes and IBM Cloud services. The developer was able to modernize the application by converting tiers of legacy Java code into Docker containers, and then run and manage those containers using IBM Cloud Kubernetes Service, an innovative platform-as-a-service solution built on the open source Kubernetes platform.
Expose and integrate
A key element to this cloud-native approach to modernizing applications is the concept of “expose and integrate.” Under this approach, existing applications are exposed―or made available―as application programming interfaces (APIs), and then become reusable code that can be leveraged for building new functionality into the applications. This also allows modernized applications to be integrated into the enterprise’s full business process ecosystem via those APIs.
In this methodology, development teams--typically working in a PaaS environment such as IBM Cloud Kubernetes Service--are free to update and revise the application at will and speed the entire process with automated testing tools and services in the continuous testing culture of DevOps. Developers no longer are throttled by rigid release windows, allowing them to release new versions of the software, with important new functionality, far more frequently.
This means that technologies such as AI and machine learning, Internet of Things and blockchain-based microservices can be seamlessly and quickly integrated into traditional applications without having to start from scratch with new code or recompile existing code over months or longer.
For instance, imagine an existing loss prevention application for retailers. It can be made dramatically more predictive and enable faster identification and remediation of potential sources of retail theft by adding extensions to IoT-based sensors by a loading dock or using IBM Watson-infused AI to spot unusually high incidences of pricing exceptions.
IBM Cloud Kubernetes Service is an ideal platform to help organizations transform their tightly coupled, monolithic, legacy applications into intelligent, adaptive, loosely coupled applications that leverage powerful new technologies to deliver enhanced business value. IBM Cloud Kubernetes Service, combined with IBM’s cloud experts, can bring cloud-native development techniques to bear on legacy applications that need to be modernized, helping organizations fulfill the potential of digital transformation―without having to turn away from traditional applications developed using older, more rigid methodologies.