Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

Funny that this came up — shameless plug: I've actually been working on a new Linux+Docker+Kubernetes solution for macOS recently! Already added quite a few improvements over existing apps including Docker Desktop, Rancher, Colima, etc:

- Fast networking: 30 Gbps! vs. 150 Mbps with Docker VPNKit. Full VPN compatibility, IPv6, ping, ICMP and UDP traceroute, and half-open TCP connections.

- Bidirectional filesystem sharing: fast VirtioFS to access macOS from Linux, but also a mount to access the Linux filesystem from macOS. This setup can help with performance: for example, you could store code in Linux and edit it from macOS with VS Code (which can take the performance hit of sharing), so the container runs with native FS speed.

- Not limited to Docker or Kubernetes. You can run multiple full Linux distros as system containers (like WSL) so they share resources.

- Fast x86 emulation with Rosetta

- Much lower background CPU usage. Only ~0.05% CPU usage and 2-5 idle wakeups per second — less than most apps, while Docker wakes up ~120 times per second. Made possible with low-level kernel optimizations. Also, no Electron!

- Better solutions to other problems that can occur on macOS: clock drift is corrected monotonically, dynamic disk size, and more I'm working on now. Will look into memory usage too, although I can't guarantee a good fix for that.

- No root needed.

Planning to release this as a paid app in January. Not OSS, but I think the value proposition is pretty good and there will be a free trial. Not sure about pricing yet.

If anyone is interested, drop me an email (see bio) and I'll let you know when this is ready for testing :)

Also, feel free to ask questions here or let me know if there are other warts you'd like to see fixed.



Biggest question: is it backwards compatible with Docker? Docker CLI and docker-compose is used in tons of scripts. To have any change of this being adopted in a team setting it needs to be a drop in replacement.


Yes, Docker CLI will be configured to talk to the VM.


What are the tradeoffs?


In general, I don't expect anything to be worse than existing solutions, but not everything will be better.

Enabling Rosetta can have a minor performance hit on memory-intensive workloads in the VM (not only x86 ones) because of TSO memory ordering, so it'll be optional. Hypervisor.framework doesn't have an API for third-party VMMs to set this and doesn't seem to let the VM modify ACTLR_EL1 either, so unless I can find a private API for it, I'm stuck with Virtualization.framework's limitation of Rosetta being either on or off for the entire VM at boot time.

Memory usage is probably the biggest uncertainty right now. It should be at least slightly better, but I'm not sure if I can improve it much more due to Virtualization.framework limitations. Still looking into it.

Networking is implemented with my custom userspace proxy for VPN compatibility. Servers are forwarded to localhost automatically, but you can't connect to the VM by IP because the network doesn't exist from the host's perspective. I've ran into too many issues with Apple's NAT setup and host-only networking is a private API, so this is postponed for now. Should be able to do better with root.

Graphics won't be supported at launch, but I could look into it later if there's interest. Not sure how feasible acceleration will be if I can't find a way around having to use Virtualization.framework.

Let me know if there's anything specific that I missed!


It cost money sounds like the big one


Even after building and selling developer tools for a decade, it always surprises and enrages me to see how miserly developers are.


I'm not surprised. Software is an attractive hobby to the miserly because it requires little investment. And eventually those hobbies become careers.

If spending was our thing perhaps we'd have gotten into woodworking, or photography, or whatever it is that can take a good chunk of change to get into deeply instead.


It's also our employers. They don't like to spend money on dev tools because the suits don't see the benefit. There's no glossy Gartner magic quadrant BS for every niche development usecase so they think they're throwing money into the fire.


If you think you get more productive with $10/month or something that most dev tools cost, why don’t you buy it on your own. After all even if it increases your salary hike by 1%, it will be worth it. I have seen designers buying Adobe tools which cost much more than dev tools, and their salary is on average lower.


I don't know where you work but in our place using tools without internal approval or certification is really frowned upon. And in the case of this particular product we were talking about, it's really an infrastructure thing. You can't implement this on your own because then your colleagues' work won't connect to yours anymore.

But also, the company should just supply the tools.


> glossy Gartner magic quadrant BS

The phrase is gold. I understand from this that companies which provide tools and infrastructure for professional developers must not only attract the devs themselves, but also (and maybe more importantly) market/advertise and sell to the "suits", their managers and employers.

Not sure if that's what you intended, but I'm now seeing the value of glossy Gartner magic quadrant BS, and thinking how to apply it in my own projects.


I am calling it that because I often see solutions being marked at the top that are actually worst in capability. I don't understand how they make these quadrants but I guess money has a lot more to do with it than technical capabilities.


Also, there are some tools where you could convince someone up the chain to spend money, until they see the offer from the vendor.

I would have loved to have HashiCorp Vault Enterprise for instance, but the math just wasn't working out to get a feature you can get by... just running more of them.


Anything but a FOSS license makes my life as an employed software engineer harder if I don't want to completely disregard compliance rules. So usually I don't bother.

Also, some developer tools want outrageous prices that are in no way proportionate to their value if you compare them to some standard paid tool (i.e. a JetBrains IDE)


That's fair, but I think the value proposition is there for some :)

I'm honestly not sure how pricing and licensing will work yet, but there will be some way to try it for free. Maybe something like Docker Desktop: free for personal use, license required for companies? That seems like a risky bet as an indie dev.

There's also the whole question of one-time purchases vs. subscriptions. Subscriptions seem like the optimal model for this, so I'm not sure how to accommodate people who just don't like them.

Would love to hear if you have any thoughts on how it could be done to reach as many users as possible.


> There's also the whole question of one-time purchases vs. subscriptions. Subscriptions seem like the optimal model for this, so I'm not sure how to accommodate people who just don't like them.

My company is just large enough to require Docker Desktop licensing, and a per-seat continuous drip is too much for us. So, if you're looking to differentiate, having a buy-out option that gives permanent access to at least a range of versions would be big.


The way I've seen this choice done that makes it easy (for me as a director of software dev) to buy into is a hybrid. You can pay $x/mo or $10x/yr. If you pay for the year, you don't have to do it as a subscription, but if you don't renew then you're stuck on the last version released during that year.

FontAwesome, TablePlus, and some others I've paid for multiple seats on do this and it's great. Some we just paid for the one year, and others we were able to see enough ongoing value to keep paying on the subscriptions.


Oh, I'll certainly pay for it. I'm excited to do so; and if it's substantially better than Docker we'd consider moving Notion eng over to it.


I’m not on macOS so I’m not in your intended audience but I’ve paid for stuff on the JetBrains model where the subscription also gets you permanent access to some previous version.


> Maybe something like Docker Desktop: free for personal use, license required for companies? That seems like a risky bet as an indie dev.

That's how it works currently.


Yes, but I'm guessing kdragOn's legal budget is a whole lot smaller than Docker, Inc's, so the perceived risk of stealing the product would be a whole lot smaller.


Most businesses are honest, plus once you get to a certain size, it's all about CYA, so sure, some people might plunder it, but if you provide something a lot of people want, you could make plenty of money from the legitimates or people afraid of getting sued at some point.

Then once the business is viable, the legal budget will be bigger...


Also seems like they put in a shit ton of work


Docker VPNKit, fast VirtioFS, Much lower background CPU usage

Are there some new Linux drivers involved, or is this "just" a better tuned VM?


No new drivers, but I did make some changes to the Linux kernel. It's mostly a better tuned VM and services on both sides, e.g. a custom fast networking stack in place of Docker's VPNKit.

(Also, by "fast VirtioFS", I meant the same VirtioFS implementation tested in the article because it's faster than other solutions — sorry if it wasn't clear.)


Blog post author here, cannot wait to see the solution out in the wild, it will be open-source ? Can you let me try it ?


It won't be open-source, sorry.

> Planning to release this as a paid app in January. Not OSS, but I think the value proposition is pretty good and there will be a free trial. Not sure about pricing yet.

> If anyone is interested, drop me an email (see bio) and I'll let you know when this is ready for testing :)


Is there any way to join the waitlist for the software?


No formal waitlist yet, but drop me an email (see bio) and I'll let you know when there is!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: