Hi David,

Thanks for starting this discussion. I like the idea of providing smaller
images that can be used by more advanced users that don't need everything.
Having smaller image sizes can be really helpful when having to pull the
image (with your changes this time should roughly be decreased by a factor
of 2) in case of failure recovery or rescaling events.

Concerning the added release complexity, can we automate the process of
generating the slim and full images? If this is the case, then I don't see
a big problem in having to release multiple images.

Cheers,
Till

On Wed, Dec 22, 2021 at 2:43 PM David Morávek <d...@apache.org> wrote:

> Hi,
>
> I did some quick prototyping on the slimmed down docker images, and I was
> able to cut the docker image size by ~40% with a minimum effort [1] (using
> a multi-stage build + trimming examples / opt + using slimmed down JRE
> image).
>
> I think this might be a low hanging fruit for reducing MTTR in some
> scenarios, but I'd like to hear other opinions on the topic.
>
> Pushing this forward would require us to release twice as many images as we
> do now (the current images + slimmed down versions).
>
> Using /opt dependencies + /examples, would look something like this from an
> user perspective:
>
> FROM flink:1.14.0-scala_2.12-slim
> COPY --from=flink:1.14.0-scala_2.12
> /opt/flink/opt/flink-s3-fs-presto-1.15-SNAPSHOT.jar /opt/flink/plugins/s3
> COPY --from=flink:1.14.0-scala_2.12
> /opt/flink/examples/streaming/TopSpeedWindowing.jar /opt/flink/usrlib
>
> Size of the 1.15 images (java 11):
>
> ~/Workspace/apache/flink-docker> docker images | grep flink | grep 1.15
> flink                                        1.15
>                          e96a3a3eaab2   15 minutes ago   702MB
> flink                                        1.15-slim
>                           e417b7665522   17 minutes ago   427MB
>
>
> Do you see a benefits of this effort? Should image size / distribution size
> be a concern with the modern deployments [2] ?
>
> [1]
>
> https://github.com/dmvk/flink-docker/commit/f866b3e57eacd0e6534b80fd0a1618cb30bbb36a
> [2]
>
> https://cloud.google.com/blog/products/containers-kubernetes/kubernetes-best-practices-how-and-why-to-build-small-container-images
>
> Best,
> D.
>

Reply via email to