Hacker News new | ask | show | jobs
by tonglil 4205 days ago
- Vagrant is a given, wonderful.

- Packer is for syncing VirtualBox, AWS AMIs, and what not for quick and stable starting points, also wonderful.

- Consul is great for monitoring and running a services oriented architecture, haven't pushed it to its full potential though.

- Serf: n/a, haven't tried yet.

- Terraform: n/a.

We are still using Ansible as the provisioner.

Overall, good ecosystem, would recommend.

3 comments

> - Vagrant is a given, wonderful.

It's really useful, but on my MBP I've found using it abysmally slow (VirtualBox backend, website code shared using NFS, DB and everything else stored in VirtualBox VM and not shared folders) - page load times taking upwards of 20s (sometimes even a minute) when running direct on my MBP would be under 0.3s.

Never figured out the issue, in spite of extensive research and tweaking. Replace VirtualBox with VMWare Fusion? But without a trial available of the Vagrant addon, bit of an expensive gamble.

Apparently syncing file changes between the VM and host via rsync leads to a lot better performance than using NFS. Worth a shot at least:

https://www.vagrantup.com/blog/feature-preview-vagrant-1-5-r... http://www.midwesternmac.com/blogs/jeff-geerling/nfs-rsync-a...

I have the same Vagrant setup you do (nfs-shared app directory, everything else inside the vagrant box), and while I see overheads of 1.5-2x, I've never seen anything like the 60x overheads you're describing here. Something seems off in your configuration. Perhaps you're memory-limited and the vagrant box is thrashing your swap file every time you make a request?
My personal experience is that the VMware provider is much snappier - and more stable too. The provider is what, $80 US? Not sure I'd call that an expensive gamble b
try SMB instead of NFS
We've been using Terraform extensively for our production deployment (a typical AWS setup with public/private subnets, load balancers, autoscaling groups, the works), and it works for the most part. There's still a hefty amount of bugs and many things will not function the way you expect, though usually you can work around them. Also the configuration language (HCL) is rough around the edges and the variable interpolation gotchas can be very frustrating.
Consul is built on top of Serf (the protocol at least), so given you are already using Consul, Serf wouldn't add anything for you.