Live data from Hacker News

Mutagen – Cloud-based development using your local tools

mutagen.io

21–30 of 58 posts

Re: Mutagen – Cloud-based development using your local tools

#21
I’ve been using Mutagen with Docker for about 3-4 months to work around an (at the time) performance problem with bound volumes. I understand the new experimental FS option in Docker might solve this, but I haven’t tested or migrated my setup yet.

Basically, I’m working on a bare metal kernel in C/C++ on ARM, which only has tooling on Windows or Linux. As I work on a Mac system, I setup a Docker container that makes this trivial for me, including GDB debugging of QEMU on the host machine.

Mutagen was easy to get going, well documented, and has worked perfectly for this. I’m able to make my edits in my Mac IDE, then literally by the time I’ve switched to compilation, the edits are synced to the container, and vice-versa for the build product.

Prior to Mutagen, I was getting 8-10x longer build times since Docker file synchronization was slowing things down. Mutagen syncs slower than Docker, but faster than I can work, so all is well.

Re: Mutagen – Cloud-based development using your local tools

#22

I've been testing Mutagen's file sync through DDEV on a Drupal project and it's pretty nice! The project is way more snappy than using NFS mounts on the Mac (which was already WAY faster than bind mounts), and DDEV has file ignores set up correctly so the project's media files aren't synced and disk usage isn't doubled.

Yeah, Randy's done a great job with the integration - it seems to work seamlessly for most users as far as I can tell. I'm really excited to get Mutagen v0.14 and beyond into DDEV, because support for fanotify[0] is being added and it's going to make Mutagen's Linux filesystem watching unbelievably faster for container-based development. [0]: https://man7.org/linux/man-pages/man7/fanotify.7.html

I'm switching from using docker-compose + docker-sync[0] to using mutagen-compose and am recommending my coworkers across Windows, Intel Mac, and Apple Silicon Mac all do the same. For me mutagen-compose is solving the same performance file mount performance problems I was using docker-sync to solve, but mutagen is doing it much more reliably. I would have to restart the docker-sync (and sometimes the docker daemon) multiple times a day. So far mutagen "just works".

[0]: https://github.com/EugenMayer/docker-sync

Re: Mutagen – Cloud-based development using your local tools

#23
We use Mutagen for Garden's hot reloading mechanism. (Garden is a dev tool for K8s and hot reloading enables users to sync changes directly to a prod like dev environment as opposed to doing a rebuild and re-deploy).

It really is a fantastic piece of technology and completely transformed the whole experience (we were using good 'ol rsync before). In particular it works seamlessly across platforms.

If anyone's interested in how we use it, it's here: https://github.com/garden-io/garden/blob/master/core/src/plu...

Re: Mutagen – Cloud-based development using your local tools

#24

Earlier quoted context omitted.

Yeah, Randy's done a great job with the integration - it seems to work seamlessly for most users as far as I can tell. I'm really excited to get Mutagen v0.14 and beyond into DDEV, because support for fanotify[0] is being added and it's going to make Mutagen's Linux filesystem watching unbelievably faster for container-based development. [0]: https://man7.org/linux/man-pages/man7/fanotify.7.html

I'm switching from using docker-compose + docker-sync[0] to using mutagen-compose and am recommending my coworkers across Windows, Intel Mac, and Apple Silicon Mac all do the same. For me mutagen-compose is solving the same performance file mount performance problems I was using docker-sync to solve, but mutagen is doing it much more reliably. I would have to restart the docker-sync (and sometimes the docker daemon)…

Glad to hear that it works for you. Don't hesitate to reach out on the Mutagen issue tracker or Slack channel if you run into any issues or questions - I'm always happy to help.

Re: Mutagen – Cloud-based development using your local tools

#27
post #12

I’m sure this feels like an accomplishment but in practice it provides nothing over git/source control as usual, and any number of reliable open or free hosted file sharing options. What specifically is missing in the current ecosystem of electron state moving technologies that this solves? Why this instead of git and a Wireguard based mesh of devices (to offer my current setup as an example; there are others).

Speed. This works so fast that it improves the efficiency of local development with containers.

No post body was provided.

Re: Mutagen – Cloud-based development using your local tools

#28

I'd love to hear more about anyone who has managed to use mutagen as a docker-compose replacement. I have so far been a bit let down by mutagen in that it doesn't really seem to be living up the promises of really being easier than using docker directly. Its file synchronization concepts also don't always seem to keep up with file watchers and hot reload I've been looking at something like Lando[0] as a result, and I…

Hey, sorry to hear that Mutagen didn't pan out for you. I'd be curious to hear if you've tried the Mutagen Compose[0] project or some other mechanism for Compose integration. I'm still iterating on the best approach for integrating Mutagen with various Docker workflows, so I'm always looking for feedback and experience reports. [0]: https://mutagen.io/documentation/orchestration/compose

I'll take a second look at this to see if maybe we could optimize some bits in how we are using mutagen currently.

Is there any thought - given this is a development tool - to exposing container aliases as commands? Kinda like with lando, where you can `lando composer install` or `lando yarn turbo` or something like that. One of the other issues I have with these container setups in general is that for anything that has a heavy CLI component or interactivity there's no good abstraction around interacting with the CLI.

Re: Mutagen – Cloud-based development using your local tools

#29

Earlier quoted context omitted.

Hey, sorry to hear that Mutagen didn't pan out for you. I'd be curious to hear if you've tried the Mutagen Compose[0] project or some other mechanism for Compose integration. I'm still iterating on the best approach for integrating Mutagen with various Docker workflows, so I'm always looking for feedback and experience reports. [0]: https://mutagen.io/documentation/orchestration/compose

I'll take a second look at this to see if maybe we could optimize some bits in how we are using mutagen currently. Is there any thought - given this is a development tool - to exposing container aliases as commands? Kinda like with lando, where you can `lando composer install` or `lando yarn turbo` or something like that. One of the other issues I have with these container setups in general is that for anything that…

Feel free to reach out on Slack or GitHub issues or by email if there's anything I can help with.

I think framework-specific stuff like that is better handled by higher-level tooling, typically something that's just embedding Mutagen. DDEV, for example, adds that type of functionality for PHP-based projects, while embedding Mutagen underneath.

The goal with Mutagen itself is (ideally) to be invisible - only providing synchronization and forwarding. Even Mutagen Compose (being just tweaked version of Docker Compose) probably falls too low in the stack to know anything about the specific frameworks being used atop it.

That being said, I think this is something that Compose wants to address, and that Mutagen Compose could inherit once it's added to the Compose Spec and implemented into Docker Compose. Things like profile specifications in Compose files are designed to encapsulate these types of operations (among other things).

Re: Mutagen – Cloud-based development using your local tools

#30
post #7

Does the compiler run on my workstation or in the cloud? I read through the docs but didn't find anything about this.

There's no compiler here - it's a tool for bidirectionally synchronizing files (specifically code, assets, build products, etc.) and forwarding network traffic to and from remote systems. The idea behind Mutagen is to use your local tools (e.g. editor, IDE, browser, etc.) to work on remote hardware (where "remote" can mean anything you like, e.g. your local system, a Docker container (local or remote), a Raspberry Pi…

It sounds like sshfs on steroids?
Post reply on HN