sgnnseven
As a Yugoslav war refugee, this is spot on.
Small sidenote: Even if all of these languages are effectively one big "super-Balkan" language it is a _very_ divisive point from an ethnicity perspective given the number of conflicts this region has had over the centuries. While it's not my cup of tea, the reality is that people from the Balkans will often judge others from that region (both positively and negatively) based on these almost-imperceptible language differences since they signal to the listener some degree of ethnicity, nationality, socioeconomic level, and education level.
> Do not upgrade your system packages
Most distros will have smooth upgrades and provide you with patched libs that your app may need and the latest image may not provide. It's slightly more prone to breaks but it creates a less vulnerable runtime app env.
> Do not use ‘latest’ tag for base image
Depends on the org but sometimes pinning means that you will likely end up using and end-of-life image because it requires proactive work to maintain. If you leave it as 'latest' this won't happen but you will get out-of-band breaks to keep that working. Choose wisely.
A few things I would add too:
- Don't mount Docker socket into any container unless absolutely necessary
- Your biggest security threat will be from your app's dependencies, not the container's setup
- Do not run a full init system unless absolutely necessary as this is just a security disaster waiting to happen. There are valid use cases for it but they're rare.
- A vault (Conjur, HCV, something else)
- A built-in credential service that comes with your cloud
- A sidecar that injects credentials or authenticates connections to the backend directly (Secretless Broker, service meshes, etc)
If you are doing a poor man's solution, mounted tmpfs volumes that contain secrets are not terrible (but they're not really that much safer than env vars).
Except not really... The original article's writer doesn't know what they're talking about. If anything, knowing Docker has increased my employability in the new K8s-centric world.
1 - https://www.amazon.com/Deployment-Docker-continuous-integrat...
In general, Amazon doesn't make positive impressions on potential employees by saying "work for us and we could easily prevent you from working anywhere else for a year and a half (and please trust us that we won't)".
Some other smaller things also contributed but I don't think they were such big deals:
- Lack of good compression on both transfer of data and file formats, necessitating simpler designs and palette-based image formats.
- Graphics acceleration was generally slow so smooth animations were out.
- Image creation/editing tools were practically non-existent and digital cameras were rare so it makes sense that the resulting pages that have had designed assets were scary-looking.
Interesting to see that both sides seemed to have been fighting for what they believed to be a better idea but neither recognized the points where they inadvertently escalated the divisions between them.
Sam Boyer's side of dep vs go modules story
I opened the original issue in question due to lack of feature parity and it got quickly closed (https://github.com/golang/go/issues/26610#event-1753880630). Then after some twitter back-and-forth (https://twitter.com/sgnn7/status/1022547467466956802) the issue got reopened.