On 10/15/12 4:37 PM, Erik Moeller wrote:
On Mon, Oct 15, 2012 at 1:44 AM, S Page spage@wikimedia.org wrote:
In the promised land, developers use vagrant to run local VM instances on laptops that puppet configures to run a production-ish MediaWiki. At Etsy and Facebook, the day a developer walks in she can make changes in her personal VM and push them to production (or so they claim in blog posts and meetups ;-) ).
The new Mozilla Kuma project is a good example for this as well, and unlike the aforementioned ones, you can download the VM yourself. See:
https://github.com/mozilla/kuma/ https://github.com/mozilla/kuma/blob/master/docs/installation-vagrant.rst
Relevant blog post about their Vagrant setup: http://decafbad.com/blog/2011/10/02/putting-clouds-in-boxes
Some design notes: https://wiki.mozilla.org/Webdev:DevBoxVMImages
We have an awesome and unique infrastructure with Labs for testing and staging, but for local development, having a pre-packaged dev environment (probably slightly less ambitious than beta.wmflabs) would indeed seem very useful. How feasible/useful would it be to build on the existing work, e.g. Andrew Bogott's MediaWiki class, to provide a first iteration of such an environment? [1]
Does a single-instance install provide a sufficient test platform for 80% of the likely patches, or does all of the interesting stuff require a full-blown cluster?
If single-system servers are truly useful in most cases, then a prepackaged VM image seems straightforward and handy. Presuming that the devs are willing/able to run a few git commands before they start coding, we could potentially leave puppet and Vagrant out of the equation and just build a one-off image by hand and include strict instructions to fetch and rebase immediately after opening. It looks like that's roughly what Mozilla is doing at the moment.
Of course, depending on how easy Vagrant is it might be quicker to build that image using puppet in the first place... It's not obvious to me that we would ever want actual consumers to have to deal with puppet.
-Andrew