Skip to content

write guide section on: productionising, containers and dev workflow #14

@clux

Description

@clux

There are many many many different ways of packaging rust applications into docker to make a nice workflow. Many of them have tons of annoying cache-caveats (some that only work on CI, some that only work locally).

I would like to have a good guide with some pros/cons discussions on deployment choices and that optimise for a few different metrics (parenthesised):

  • standardised rust image (readability)
  • standardised rust image as managed by CI providers like circleci (CI image locality)
  • above but with cargo-chef (CI cache time)
  • musl cross compilation (docker image size, less direct C dependencies)
  • arm cross compilation (cloud compute costs via graviton)

Most of these have some annoying side effects:

  • rust image -> slow iteration time locally and on CI
  • CI provided rust image -> faster on CI, but potential differences between local build and CI
  • cargo-chef -> large, inscrutable docker images, and still awkward for local builds
  • musl cross -> potential musl compat issues and static toolchain upgrade problems (C deps in image)
  • arm cross -> ??? need to know more ??? looks very new

Additionally it would be nice to also discuss some stuff that can (probably) be used with most of the above choices:

With this we can probably close kube-rs/kube#332

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions