Suggestions
Fabiano Honorato
SRE/Data Engineer
Fabiano Honorato is a software engineer at Brex, with over 10 years of experience in creating and maintaining infrastructure. He is based in Blumenau and has a background in IT, having studied at Senac RJ. His professional profile indicates a strong focus on software engineering and infrastructure development within the tech industry.12
Highlights
É com felicidade que anuncio que começo hoje como Staff SRE na Swap!
Portuguese version: https://lnkd.in/dH4kGjU5
I know how to create containers without Docker! And no, I'm not talking about Buildah or Kaniko (3 great tools by the way). I can create a container using namespaces, cgroups and jails which are just Linux features. And if you have no idea of what this is I'll explain, namespaces are a way of isolate processes, for instance, you can have 2 applications on the same machine without allowing them to interact with each other through the kernel, cgroups (or control groups) are a way of limiting how much resources a process can consume (ex.: disk or network I/O, CPU and memory) and jail is a way to isolate a process within a filesystem (that way he will be "jailed" and will only be able to see some system files).
But them you may ask yourself, is there any reason to create containers using pure Linux in your day to day life? And unless you see yourself in a situation where you can only use pure Linux I'm going to say that the answer is no, because it's slower, less secure and more error prone. Yet I love the fact that I know how to do it because it's not about being more practical or because it can solve issues but it's because I have a domain of the technology that goes beyond the superficial, I know that not every container it's Docker because I've used jails in BSD and containers in Linux before Docker was popular and when I use an orchestrator like Kubernetes or Nomad I know what the tool is doing when I run an "apply" command and I know what happens when the agent (kubelet or nomad) creates the container on the host.
Maybe you're not a infra person and knowing how to create a container using only Linux it's not something important, but if you're a networking architect do you really know how BGP works? If you're a programmer do you really know how a Garbage Collector works? Can you do a bubble sort from the top of your mind? I could list a lot of different examples from different areas but what I'm trying to say is that by understanding the technologies beyond the surface does not makes us immune to errors but makes us more capable of taking grounded decisions. And so far in my experience this helped me to better understand the challenges that I've faced and also how to better teach concepts to other people.
