It's cool to hear the ways folks today can understand Borg, a technology like 15 years old, via papers about it from 6 years ago- by comparing it to their modern experience using its open source descendant, #Kubernetes today.
The goals of borg and the ways they were accomplished are similar enough to k8s to be recognizable, but sometimes accomplished a bit differently. Similar naming conventions (borglets vs kubelets), BCL vs YAML, etc.
A difference is that the separate components of the Kubernetes control plane all seem to be part of a singular component, the Borgmaster. Which means Borgmasters could scale vertically, but not really horizontally - which is allowed more by the k8s component separation.
Borg approaches scaling, and related performance, differently from Kubernetes. k8s took a more pluggable approach to be able to work in more environments, whereas Borg clusters are generally a whole datacenter. So there are different assumptions about how hardware communicates.
Borg had 4 9's availability. That's about 1min of downtime per week. A lot of businesses couldn't allow that much downtime, but Google did (to some extent maybe does?) it. Very interesting perspective.
Tip from @rothgar when reading whitepapers - if you can't understand what a graph is trying to say, try imagining how you would visualize what the text is teaching you. Graphs are dense with information, so it can take some thinking to sort them out!
@rothgar Borg came about years before the popularization of containers. So their process isolation uses some components of containers (like cgroups), but it's much less isolated than modern containers. Which made sense for the time and use case.
@rothgar By the way, cgroups were created and contributed to the Linux kernel by Google. So containers in their modern form are built on this early work, so reading the borg papers gives insight into a moment of time with regard to the development of process isolation.
@rothgar An earlier point I didn't tweet was Borg's resource utilization. The system didn't (& I'm sure still doesn't) use its resources at 100% efficiency. They shoot for a percentage of overhead space, which is still a best practice today.
Kubernetes has a much higher focus on being extensible and flexible, whereas Borg was/is a much more limited use case (which is fine). For example, there's no concept of a Borg operator or custom resource in the Borg papers. Which is an important capability of Kubernetes.
The Borg papers just call all its workloads "jobs." They mention a limitation of needing abstractions to run microservices, several components of a single app. Kubernetes has several object types, but really still no abstraction of a whole app, which can be several deployments.
Thanks @rothgar for this! I, and several others, didn't get to read the paper but that didn't hinder our ability to learn from the discussion. Several folks asked great questions about limitations of Kubernetes that they wanted to compare to Borg, and I learned so much from that!
I should say learn and participate in the discussion! Anyone who wants to join the next one should! Even if you didn't read the paper.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Kaslin Fields

Kaslin Fields Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Thank you for your support!

Follow Us on Twitter!

:(