The concept of using Docker containers to make it simpler to package application code to make it more portable has been around for a while now. But that same technology is also making it possible to more easily to reuse functionality across multiple applications. Case in point is the new TIBCO Jaspersoft for Docker offering that allows developers to embed business intelligence (BI) functions directly into their applications.
Ernesto Ongaro, senior product marketing manager for Jaspersoft at TIBCO Software, says the vendor previously made it possible to employ JAR files within Java environments to embed Jaspersoft within a Java application. But once Docker containers became available, TIBCO Software realized that Jaspersoft BI software could be made available to the entire developer community.
In general, developers can pursue three approaches to adding BI functions to their applications: They can write the code themselves, invoke an application programming interface (API) to remotely call that function or reuse code developed by a third party.
By making Jaspersoft available as a Docker container, developers now can make use of the Docker Compose tool to access embedded BI functions just like any other microservice.
BI functions, of course, are not the only types of code that can be reused across multiple applications. Relatively soon developers will be making all kinds of software functionality available as Docker containers that can be embedded in any number of applications. Ongaro says that approach ultimately will prove preferable to employing APIs to remotely call BI functions. Functions embedded within an application always will perform better than external services invoked via an API that may reside in the same data center or, more likely, in the cloud.
Naturally, it may take a little while longer for developers and the IT organization they serve to fully appreciate the reusability of code enabled by Docker containers. IT organizations have been pursuing code reusability since the first days of service-oriented architectures (SOA). Achieving that goal always has been problematic for many reasons, including the simple fact that developers tend to view with suspicion any code they did not write. But in an era when developers are under more pressure than ever to deliver applications rapidly, any opportunity to reuse code in as simple a manner as possible becomes more compelling. Before too long applications will consist of modular sets of containers representing functions developers can re-employ at will. Best of all, those functions can be replaced or upgraded simply by deploying another version of a container.
Of course, there are plenty of governance challenges associated with reusing code, ranging from attaching signatures to the original developers of a piece of code to keeping track of how many times it has been reused.
In the meantime, however, IT organizations will have to get used to developers reusing code as they see fit. They might not always appreciate where that code comes from. But as agile development continues to evolve in the age of containers, IT organizations will discover soon enough the degree to which application lifecycle management will be transformed.