Contrary to its title, the talk is not exclusively about the Open Container Initiative (OCI). I came up with the title before doing any research, and I kept the title in the end because it made me happy.
This talk happened because
I didn't know much about containers.
The project I work on uses containers. One container in one part of our system wasn't pinned to a version and things broke.
Debugging container versions was unexpectedly cumbersome.
Someone prodded me to do a talk (gulp) and I needed to figure out a topic.
I had a research day at work.
My research day started with basic Googling 'how can you diff container versions?' and ended with a list of topics about containers that felt important but that I was pretty clueless about. I spent more days researching, and in the end this talk became a review of the important points in container history up to 2015.
In the process of learning what to talk about, I covered interesting ground. I discovered Linux mailing list archives and scoured the early 2000s messages for release details about cgroups. I got clarity on buildpacks (vs containers), runtimes, and CloudFoundry–something I helped build in a past life!–that I hadn't understood previously. I read about stuff like SBoMs, image signing, dependency drift, building images, diffing images, consuming images, and running images, and I installed a number of tools (and languages) on my machine to see what I could discover. I read Google's research about Borg, Omega, Kubernetes, and their history of container orchestration at scale. I found the 99designs brief Docker posted for their original logo and watched Docker's first demo. I read about big vulnerabilities and started to unpack the importance of secure software supply chain, which had lived in my head as 'jargon phrase enterprise speak' up to that point. I finally watched both parts of the Kubernetes documentary and immediately told anyone who would listen that they should watch it. I discovered an engineer who had authored a lot of interesting content about containers and images. I reached out to her and ended up spending an hour getting to know her and having her share some of her expertise–that felt like the most open source moment in the entire endeavour. And of course, I also researched the Open Container Initiative and learned how it is moving the cloud native landscape forward.
Basically I learned a useful amount of knowledge about many things. I had moments of self-consciousness where I wondered, "Should I know all of this already? Doesn't everyone else know this already?", and I had moments where I thought, "This...still doesn't make any sense but I've hit a wall and have to move on.". But the ratio of those moments was very low compared to moments where I felt I truly understood something new.
Most of the stuff I learned or started learning didn't end up in my talk. I kept a board with all the stuff I reviewed. If you’re interested in learning about containers, or you want to hear my reflections on learning something new, you can click around the Miro board or watch the talk.