https://www.youtube.com/watch?v=sJx_emIiABk

Containers are processes born from tarballs anchored to namespaces controlled by cgroups


4 Lessions


1) containers have strengths - stateless stateless applications data -> APPLICATION -> data

  • portable
    • iterate
  • disaster recovery
    • standardized
  • testing environments

2) containers have weaknesses - databases statefull applications aka containerizing databases “Are you Google?”

reasons to try:

  • Faster provisioning
  • Stability
  • faster recovery

--> cloud provider + tooling

“You wanna DIY, really? really!?” 2 main solutions:

  1. containerized databases
    • send their data to network backed storage array (eg. SEF)
    • --> network bound
  2. containerized instances on host
    • store data on host (eg. /data) using mounted volume
    • --> network bound

--> keep it small => cloud provider


3) Containers need friends - ecosystem “It’s never ‘just’ containers” How will you

  • build your container tarballs?
    • docker (primed for dev setup)
    • …?
  • schedule container resources? (orchestration)
    • where to run
    • which host
    • automated?
  • manage clusters?
    • health checks
    • drain traffic
    • automatic failover
  • handle routing, access control, service discovery? (networking)

deployment monitoring provisioning debugging

gradual rollout

  • 1 year

end goal != all is containerized == hybrid: legacy + containerized


4) Containers need headcount - new team “We’ll just give it to ops” DONT new team skills needed:

  • knows operations (at your company)
  • knows deployments (at your company)
  • write & test tooling + glue together
  • monitoring
  • kernel engineer
  • networking
  • security
  • help with internal adoption - relationships, invite ppl to beta platform
  • project manager

6-8 ppl, atleast 4 ppl empower them to succeed

  • budget to run different cloud providers
  • mandate to mess with other’s roadmaps

Should we use containers in prod?

Do you have…

  • stateless services?
  • a large heterogenous platform?
  • time money, people, org support?

--> Yeay contaners!!

Do you have…

  • a monolith and few services
  • a small team with no org support

--> Boo, containers!!

Do you want containers or a blog post? “it would be rad” -> DON’T do containers