Ask HN: How do people orchestrate microservices for development on macOS?
We've been having problems with Docker For Mac running poorly and in general being broken on release (this time for proxies, for previous 3 years just general performance issues and battery life problems). I'm looking for solutions on how to orchestrate many (3+) microservices together locally and still be able to develop against them all in concert by loading the local file system into the running containers. Ideally, this would use Kubernetes and still enable running local code.
So far, on the virtualization side, I've tried multipass (buggy), VMWare (expensive) and Qemu (difficult to use for people not used to it). We use Docker Compose.
Is there any simple, mac native way to orchestrate containers? Or is it better to somehow expose them via the network but only redirect for one service at a time to some local instance?
Thanks in advance for the discussion, thoughts, and time! Really appreciate the HN community!
3 comments
[ 3.2 ms ] story [ 22.3 ms ] threadAnd if you go into docker for Mac and click the checkbox you can spin up a single node Kubernetes cluster to try out your stuff with.
With VMs you could do the same with even more nodes either simulating a multi-node setup of k8s within a single VM or using N VMs for a multi-node setup or spin up VMs for each node to join the k8s cluster.
1) Years of CPU/Battery hogging (https://github.com/docker/for-mac/issues/3499) After the fix, this seems to regress every few releases (https://github.com/docker/for-mac/issues/5567)
2) Docker for Mac has made the user hostile decision to force updates unless a user opts for a paid plan. Due to this decision, and a bug with 3.3.x (https://github.com/docker/for-mac/issues/5572) which indicates a 500 error under unusual circumstances, downgrading and staying at 3.2.x on a free plan is not possible. I believe this issue runs even deeper, because proxies I've used for years are returning an errant EOF on a configuration that works fine on 3.2.x.
I don't have enough time to wrestle with these tools, and even with docker-compose our local environments aren't very close to production because of the lack of kubernetes orchestration (admittedly have not tried much through docker for mac, but I'm surprised there isn't a closer-to-metal solution). I currently maintain a number of proxy configurations to make our local setup work, and if I'm going to move to a paid tool, I want to make sure its the right fit.
EDIT:
This sounded more unappreciative than I meant it to. I think the docker for mac team are doing an awesome job and that it's a hard product to create and maintain. I appreciate that they are attempting to monetize it and do think it's something we should pay for. I just don't like the way they chose to implement their monetization.
Granted this is a shot in the dark because I’m stumped as to a solution for you. I’m sorry.