
Containers Patterns - kiyanwang
https://l0rd.github.io/containerspatterns/#1
======
vardump
Is it just me, or is the linked page completely blank? In any case, no content
visible.

Windows 7, Google Chrome "Version 64.0.3282.167 (Official Build) (64-bit)".

Update: Seems to work fine on my phone, Android Chrome "64.0.3282.137". Weird.

Update 2: Reason for not working is likely a failure to load this script
(changed "https:" to "hxxps" to prevent unwanted link):
hxxps//remarkjs.com/downloads/remark-latest.min.js

~~~
Anthony-G
I had to allow scripts from remarkjs.com in order to read the content.

------
majewsky
These slides would be much more valuable as part of the recording of a talk.
(Also, with translations from French.)

~~~
mariolet
I'm the original author of the deck. I've created it for a talk I've presented
at snowcamp.io a few weeks ago and I did not expected to find it on HN
(although I'm pretty happy about that :-). That explains why a couple of
slides are in french.

Unfortunately there was no recording of the talk but anyway it was in french.
I will present it again at rivieradev in May but that will still be in french.

~~~
Chico75
You should a blog post about it, even in French. It's really nice to put clear
names on all those different patterns that people are using without knowing
them.

------
stuntkite
Thanks for posting this! It's a nice breakdown! I've been working on some ways
of visualizing our container systems, networks, roles, dependencies, and you
know ... the whole ball of wax. It's for a specific app, but I'm going macro
level.

I found Karl Wiegers Software Requirements about eight years ago and have been
evolving a high level model based off his visual model superset of UML and
I've found it not quite to cover the complete roles of the container process.
You've helped me bucket some fuzzy black boxes with your colored boxes!

Something I've been chewing on at the middle level of visualizing container
roles is not just the role blend you specify here but now the overlap of
networks, container technology, federation, and similarity from development,
to release staging/production, to customer bare metal deploys, to legacy CI
then staggering that over AWS, GKE, my personal OSX machine, my new Linux
machine, the rest of my teams OSX machines.

We are a small company that is on the bleeding edge of cloud GPU stuff, we
have a code base with some legacy warts that we are growing out of and
channels that need to be distributed through them. The containerized GPU
ecosystem is growing FAST! OSX is not really going to support nvidia-docker
any time soon because of xhyve. The fuzziness of containers just being one
thing adds to so much operational confusion! To do a lot of things sometimes
the systems and roles you're using containers for can feel like "Who's on
first?"

To be clear, I'm aware that I'm over thinking what follows, I think it's
interesting and most of it is just built out of a sense of play. I'm still
just playing with the concepts as they relate to cluster operations. No models
I've used from before quite cover the relationships at a glance that we now
have while using containers. Especially to people who are just getting into
them it can feel majorly overwhelming because at first they just see them as
VMs. I really like your banding for the contexts. I'm totally going to work
this into the ops flow.

Anyway here's a whacky thing I'm dreaming up, I started by thinking about the
system similarities in buckets that I made into hexes, I put color sections on
the hexes for overlap. AWS, GKE, and OSX would be hex tokens. Route53,
GoogleDNS, Consul/Dnsmasq would be lets say their yellow corners. Some system
deployments rely on different parts so you can look at a key, but I can corner
label a green, orange, purple set of hexes then just light up the matching
overlap. So like I'm doing a pretty standard UML layout but I can throw some
Star Trek style pips on the container and at a glance you can know what it
touches. I just got out of the system wide sketch phase with this and I'm
really digging it.

I've also been doing experiments[1] with procedural color[2] and shade so
instead of picking items at random a base can be picked then branches from it
are mathematical so you can infer context, state, or connection even if you
have to shift pallet because you've drilled down into a subsystem.

A bit over a year ago I came up with this system relationship flow that I'm
calling "The Lotus"[3]. It came from looking at the hexes and trying to put
them in appropriately adjacent context then realizing the system "joins" sort
of fan over each other and end up making a lotus thing pattern. This spawned
from being asked to outline a VERY complex font matching system in a way that
was "not technical" it started out as tongue in cheek and still is pretty
weird, but inside these experiments I'm starting to see some patterns grow
that I really like. Especially as it relates to containers.

This all feels like a massive rambly overshare, but I really liked how you put
it together and I thought I would share some of the weird stuff I'm thinking
about.

Thanks again!

[1]
[https://github.com/millerhooks/GraphTerm](https://github.com/millerhooks/GraphTerm)

[2] [http://devmag.org.za/2012/07/29/how-to-choose-colours-
proced...](http://devmag.org.za/2012/07/29/how-to-choose-colours-procedurally-
algorithms/)

[3]
[https://github.com/millerhooks/SystemVisualizationConcepts/b...](https://github.com/millerhooks/SystemVisualizationConcepts/blob/master/FontSystemProcessFlow.png)

