2022-02-21

Stop Computer Networking

While I was following

the Kubernetes The Hard Way

on the laptop with Vagrant VMs, I was reminded of the conviction that I had been holding: a general application should not deal with computer networking. That is, it should not concern with host addresses or ports or HTTP protocols or anything. Instead, it should work above a messaging abstraction provided by something like

NATS

or Kafka or such.

If the application requires low network latency such as video streaming, then it would need to deal with networking. But for an application that processes JSON messages and operates near the business level, the complexity of configuring networking is simply unjustified. Ideally, it would only need to know how to connect to a message broker and get all messaging done through it. It should even dispense with DNS. Any application that relies on DNS for service discovery has a tendency of being subtly broken.

Alas, a saner networking abstraction is not a norm, and that means I have to configure network overlay and DNS server, go through all their platform-specific details, to have a usable Kubernetes cluster.

서시 / 윤동주

죽는 날까지 하늘을 우러러

한 점 부끄럼이 없기를,

잎새에 이는 바람에도

나는 괴로워했다.

별을 노래하는 마음으로

모든 죽어가는 것을 사랑해야지

그리고 나한테 주어진 길을

걸어가야겠다.

오늘 밤에도 별이 바람에 스치운다.