The current approach to packaging microservices offered by the KumuluzEE framework is packaging into an uber JAR. This type combines the application code and all dependencies into a single file, which guarantees high portability but sacrifices optimal building of images for virtualization. The unification into a single file demands the entire microservice to be put into a single image layer, which requires a complete rebuild of that layer upon any change to the application code. Since dependencies rarely change but still represent the majority of the space taken up by the microservice, copying them repeatedly is unnecessarily wasteful. In this thesis, we expanded on the packaging types offered by the KumuluzEE framework by introducing a new smart JAR packaging type, which separates the application code from the dependencies and thus speeds up the rebuilding of Docker images. We also expanded the framework with the functionality of automated Dockerfile generation.
|