Abstractions have been with us since the birth of computer science. They provide a way to simplify the complexities of working with computers. The first assembly languages simplified how programmers fed instructions to the machine, and today we are awash with abstractions: Kubernetes, React, and the Linux Kernel all are “abstracting” complex, lower-level systems. It would be impossible for today’s software engineer to learn many facets of these technologies in detail, without abstractions.

But have we gone too far in using abstractions, rendering more complexity for developers than is necessary?

This was one of many questions raised by Venmo Systems Engineer André Henry at USENIX SRECon last December. He waged that abstractions took us from a one-to-one relationship with software to a “multilayered configuration and deployment” model, which is inherently more cumbersome in many cases.

#kubernetes

USENIX SREcon: Have We Gone too Far with the Abstractions?
1.05 GEEK