The adoption of container technology mostly driven by the rise of Docker and Kubernetes has changed the skill expectation towards developers. Besides skill about programming language, knowledge in container build and deployment steps is a new must. This talk will show various options to do so.
A typical workflow in a modern software dev project can look like: Build code, put built artefact into container image, put container image into registry, deploy to Kubernetes. Each step has it’s own requirements and pitfalls alike. The overall goal is most often to bake those steps into easily repeatable pipelines and enable a high degree of automation.
Dockerfiles seems to be option with the highest adoption when it comes to containerizing code artefacts. However it leaves a great range for developers from simply copying a jar into an image to getting things done right. Those “things” include selecting the right base JVM/JRE-image, memory management, image layering, user rights management and more.
The talk will give deeper insights by comparing (multi-stage) Dockerfiles to Cloud-Native Buildpacks (buildpacks.io/paketo.io) and Google’s JIB under the evaluation criteria of build time, build size, standardization, robustness and security. The examples and live demo will have certain focus on Java-based frameworks (Spring Boot, Quarkus, Java EE), but coverage of other languages will also be included and highlighted.
The intented take-away of the session is a better overview of container building and deployment options along with understanding of requirements, advantages and drawbacks.