3 ms·
We've had the same experience with Vagrant. Vagrant is a very general tool that makes it easy to do some fairly complex things, but that generality adds signifi
by jitl 10y ago
We've had the same experience with Vagrant. Vagrant is a very general tool that makes it easy to do some fairly complex things, but that generality adds significant overhead. I counted THREE different SSH connection systems in Vagrant the last time I was trying to optimize it.
We eventually wrote our own tool that duplicates the smallest possible Vagrant featureset.
We use SSH for control, Unison for real-time file syncing, and Chef for "provisioning" configuration of the remote developer environment. Our tool requires only SSH access to some host -- so we provision an EC2 instance for every engineer, and then connect it to our tool; but we could use local Docker or even a Vagrant-managed VM. We reimplemented Chef Solo provisioning, with 100% backwards compatibility with our existing Vagrant Chef recipes, which was really easy! We leverage SSH's ControlMaster for persistent connections.
Our tool does the same things that we were using Vagrant for, but takes 1/3 of the time for typical tasks. Where Vagrant would take ~6 minutes to provision a host, our tool takes ~2 minutes using the exact same Chef recipes. We managed to shave a full 30 seconds of mystery time off between when `vagrant provision` would start, and when Chef would begin it's run.
I encourage you to think about cloud developer environments in general. We got big wins in dev productivity by moving our devenvs off engineer laptops.
- praneshp 10y agoDo you have any engineers that take public transportation every day? My current company has a dedicated team to maintain a developer VM that runs on our Macs, and that has made my life much better. I don't need internet access to write and test code (except to google/SO, of course). I can also afford to take the slow train (Caltrain is twice as slow if you take the slowest one). If your commuting employee size is low, I guess it's not important enough problem to solve. I (and a few others here) would love to see a blog (or repo) showing off your tool!
- jitl 10y agoWe still support a local Virtualbox/Vagrant VM for the "offline" case, but that's the very environment that we're actively migrating away from. Realistically speaking the thought of an "offline" environment is impossible - our users need regular updates of our repositories, which requires a network connection; and of course SO/Google is a necessity :-). Also, at our scale we're running into the limits of Apple's machines. There's just not enough RAM for all of (Jetbrains Something), (Local VM with tons of services), (some ARM emulator), (40 Chrome tabs), (Slack). We can't provide a good local dev experience going forward. Between MiFi and MOSH (a UDP, mobile optimized SSH "alternative"), I think we can support the transit use case without using a local VM.
- adrianN 10y agoIs it normal to start working before you arrive at the office? Does the commute count to your working hours? If I were to commute by public transport, I wouldn't work for my employer during that time, I'd do something that I enjoy, read a book or work on my own projects.
- humanrebar 10y agoTo each his own, but I would appreciate the option to be professionally productive from anywhere.
- khazhou 10y agoIf you're working on the train that's work. Better to catch up on work email or whatever than waste the commute hours each day. Remember the US is not strict about work hours for salaried employees like EU.
- khazhou 10y agoIf you're working on the train that's work. Better to catch up on work email or whatever than waste the commute hours each day. Remember the US is not strict about work hours for salaried employees like EU.
- praneshp 10y agoI like to have the choice. Sometimes my wife and I try to cook something complex for breakfast, and I take the train 1.5 hours later, which also goes about 25 mins slower. I replace my usual book reading with work, so I can leave around the same time I usually leave in the evening. I also work all the way on the commute home, so I leave early enough to help cook/climb and still be in bed at 10. Also, I enjoy what I do at work, and love the company I work at. I don't really care about where I do that work from, or if I worked 2 hours (a week) over my working hours. Actually I make it a point to read code from other parts of the company over the weekend because I find that more useful than pointless side projects.