Announcing Ubuntu Ensemble, mediawiki community feedback requested

Clint Byrum clint at
Fri Jun 10 10:53:45 UTC 2011

Excerpts from Platonides's message of Thu Jun 09 14:51:37 -0700 2011:
> Ahmed Kamal wrote:
> > Hi everyone,
> Thanks for contacting with us, Ahmed.
> > This is Ahmed, I work for Ubuntu helping the cloud community. Ubuntu has
> > been working on some hot technology, that aims to be "apt-get for the
> > cloud"! Basically Install and manage large scale cloud deployments of
> > web applications (and others) with the equivalent ease of "apt-get
> > install". The reason I'm posting this here, is because the very first
> > use-case for this technology (called Ensemble) has been MediaWiki (yaay)!
> >
> > To get a feel for Ensemble, here is how you'd deploy a 4 machine
> > Mediawiki installation
> > DB ->  MediaWiki ->   memcached ->  HAproxy Loadbalancer
> > ----->8---------
> > # Deploy machines
> > ensemble deploy mysql wiki-db
> > ensemble deploy mediawiki demo-wiki
> > ensemble deploy memcached wiki-cache
> > ensemble deploy haproxy wiki-balancer
> > # Connect them together!
> > ensemble add-relation wiki-db demo-wiki:db
> > ensemble add-relation wiki-cache demo-wiki
> > ensemble add-relation wiki-balancer:reverseproxy demo-wiki:website
> > ----->8---------
> > Slashdotted? Want to scale out? You'd need something like
> > ensemble add-unit wiki-cache
> > ensemble add-unit demo-wiki
> >
> > Yes, it's that easy!
> Well, you still need to know that you need 4 machines and what is each 
> of them.

Ensemble is still a bit rigid about the machines. Right now a service
must be all one EC2 node type. Eventually that will be more configurable
at runtime so you can crank up big machines for bigger load spikes.

> I first got confused thinking that they were packages on a single machine.
> So, when you add a second demo-wiki, how is the second mediawiki 
> configured? A simple copy ? How are further changes synced?

There are a set of "hooks" that get run in response to changes in the
Ensemble environment. Effectively everything that was done to the first
demo-wiki machine is repeated on new units.

> What about optional packages? If you are installing for a large scale 
> cloud deployment of mediawiki you probably also want php-apc, or 
> wikidiff2 extension.

As Ahmed said, the tunables are still a WIP, but coming very soon. If
there's some reason not to use those things (memory sensitivity,
I/O limitations?) then they can be tuned in the service level, with
something like

ensemble set demo-wiki use-apc=yes

Otherwise it should just be added to the 'install' hook.

> I see you are creating your own LocalSettings.php, but the way you are 
> installing it is really ugly. I advance you that it will break in the 
> new installer of MediaWiki 1.17 You will have an install.php cli script 
> there, though.

I wrote that and have never been really happy with the way it happened,
and had even put it on a mental TODO list to talk to you guys about
smoothing out the install for an automated deployment. It looks like
the install.php handles this perfectly.

Once 1.17 is out of beta we'll work with the Debian maintainers to get
it packaged ASAP.

> (i have to admit, it is really the fault of ubuntu package that it 
> doesn't create the database or thatit leaves the tables broken on  update)
> I recommend you to plan and test with 1.17 and tell us if you need some 
> additional feature. It still could enter in the release, if it's simple 
> enough.

Since there is an install.php CLI script, that sounds like all we'll
need to make the formula much cleaner going forward.

Thanks so much for taking a look!

More information about the Ensemble mailing list