3 ms·
... that implies all your services already were HTTP-separated or some other swappable network invocation besides direct calls ... Which means... you were micr
by AtlasBarfed 4y ago
... that implies all your services already were HTTP-separated or some other swappable network invocation besides direct calls ...
Which means... you were microservicing before microservices were a thing?
If not, do you care to share how you abstracted your service invocations so they could fluidly go from inter-box comms to separated boxes?
- marcosdumay 4y agoNetwork services were port-separated since the internet was a thing. (A bit earlier, but ports had different names.)
- franga2000 4y agoThe vast majority of IPC already used sockets decades ago, so it was easy to split a composition of services across multiple machines (just change the config from unix domain- to network sockets). Anything that ran commands to do things could be wrapped in ssh (for example, that's how I offloaded image processing for a sharing site). Two layers of DNS records solve the addressing issue: each box gets a static codename with an A record and each service gets a descriptive name with a CNAME record pointing at the box it's on. When you move a service, change the CNAME to point to the new box. If you have full box replicas/backups, you can also switch the box name or reroute at the IP level. Preferably you're running your own DNS and can issue a flush command to your entire fleet so you're not stuck waiting for propagation.
- AtlasBarfed 4y agoYeah, CORBA / RMI which microservices eschewed for HTTP. I had a joke years ago that the reason HTTP services became so popular was simply because those ports were the only ones open in the firewall, so people used those rather than having to get new ports approved by some convoluted security review.