With microservices, software applications comprise multiple, smaller-sized runtime services. Thus, rather than building, integrating, and testing an entire application as a monolith in which even small changes require a full test cycle of the entire application, microservices can be delivered as independent runtime services with a well-defined application programming interface (API). Thus, the microservices approach allows fast delivery of smaller, more frequently implemented incremental changes to a program or an application.
Rapid deployment of new microservices and updated versions of existing microservices can pose challenges to maintaining the operability of software applications built on multiple microservices. The challenges can be considerable if various vendors or in-house developers push changes directly to production. It is not unheard of for a vendor to push out 10 or even 50 microservice changes in a single day. Moreover, when vendors or in-house developers push changes directly to production, the containerization services containing the previous software instructions are often destroyed. Thus, a history of changes regarding the microservices of an application may be lacking. The ability to roll back any changes is accordingly constrained, as is the ability to provide various analytics related to the microservices.
The methods, systems, and computer program products disclosed herein can generate data structures and representations to efficiently track changes to microservices. In some embodiments, various representations are constructed using vectors, matrices, and multi-dimensional tensors to compactly represent processes built by combining multiple microservices. In accordance with the inventive arrangements disclosed herein, a representation of a network of microservices can be constructed, the network comprising microservices that are used by multiple processes.