Explore the challenges and solutions for achieving deterministic Docker images with Go microservices in this conference talk from Strange Loop. Learn about building deterministic Golang binaries, including edge cases and necessary flags, while delving into the history of Golang's efforts towards determinism. Discover the process of creating deterministic Docker images using Bazel, and gain insights into Docker's inner workings and its limitations in native support for determinism. Examine strategies for maintaining decoupled code to prevent unnecessary image rebuilds, and explore patterns and tools that facilitate this approach. Gain valuable knowledge from a senior software engineer's experience in optimizing deployment processes for over a hundred microservices, aiming to reduce deploy times to under 20 minutes while minimizing disruption.
Overview
Syllabus
Intro
Fun facts
Deployment of a Service
Golang paths
Determinism Regression
Exercise
Issues with Docker Reproducibility
Go's Internal Linker
Code Patterns
Taught by
Strange Loop Conference