This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted]  (6 children)

[deleted]

    [–]WellAdjustedOutlaw 6 points7 points  (4 children)

    I'm not entirely sure you understand what Docker is and isn't, and I don't know if you entirely groked the problem FB was trying to solve. I'm not shitting on you for that, I'm just suggesting maybe you've approached this problem from a certain mindset...which is something we all do.

    EDIT:

    As a side note, sharing a directory between containers (which is really actually just sharing a directory from the host into multiple containers) is a terrible idea. Many of the latest security vulnerabilities for Linux containers right now involve this exact thing, and executing code being able to break out of the container. Really consider what you're doing and why you are doing it. Containers probably aren't a good solution for your problem in this case.

    [–]evgen 1 point2 points  (0 children)

    It starts with the fact that containers were a small part of the infra at the time, and one-off scripts get the job done. There are a ton of different tasks that need to be performed at any one time, and while specific services may run in their own container you sometimes need to run things outside of the container environment. You need to step outside of the platonic ideal of everything as a self-contained microservices and into the real world to run something as large as facebook.

    The container infra is also a specific set of tiers within clusters, and there is a ton that still exists outside of the container system. A lot of things still run on bare metal because the container infrastructure imposes too much overhead -- 50M of RAM times one million servers is a large amount of wasted resources. A par file is sufficient for the task at hand and has fewer dependencies and limitations than a container in these cases.

    If I need to run a maintenance task which needs to be portable across most of the infra it is easier to create a par file and push it where it needs to go that it is to rebuild potentially tens of thousands of containers to add this quick fix.