Portability means that an application can be moved from one hosting environment to another. This includes moving from one cloud to another, from AWS to Microsoft Azure. The work required to port the application from one platform to another depends on the specific environment.
Containers are considered to be one of the technologies that make such transplantation easier. This is because applications and operating systems can be encapsulated in a single bundle and run on platforms that support container standards such as Cubanetis. But the container is not a panacea.
In fact, application porting requires a tremendous amount of planning effort to address compatibility issues in different environments, whether container or not. The use of container technology does not guarantee portability of platform-to-platform, cloud-to-cloud containerized applications. For example, you can not port containerized applications for Linux to Windows.
Containers must be a great way to bundle the operating system and applications together. Container technology can be used to improve portability. As many people believe, it does not give “the ability to port from any platform to any platform.”
Of course, portability is important to the enterprise. And transplantation can always be done. What you need is a tremendous planning effort compared to when you first created an application.
If you have enough time and money, you cannot deny that you can port all your applications. It is important to note that the use of technologies to help create applications or provide cross-platform application compatibility to minimize cross-platform porting is only part of the formula.
Therefore, portability is not binary legal. That is, it is not a matter of not being. The answer belongs to the gray area. It is “sometimes different” that many IT directors dislike so much.
Perhaps the most crucial thing to understand portability is the price you pay. It just drops the functionality because it uses only the least common denominator functions supported across all environments. Applications that use more of the native platform or cloud functionality increase portability. The reason is simple. Many useful features are tied to a particular operating system or language, cloud platform, or other technology, and these features are not transposed. In some cases, it can not be transplanted.
The only way to alleviate this problem is the planning and design process. Nevertheless, technology is not easy because it is constantly changing. Portability will continue to be a gray area, not a binary legal issue in the future.