After reading http://groveronline.com/2013/06/fedora-for-servers/ and the comments on lwn ( https://lwn.net/Articles/552800/ ) I thought I would share some thoughts on this.

First, I agree with Andy that this is a good way to use Fedora instances. With so many ways to spin up quickly a instance that does just exactly what you need it to these days, this should work great for a number of use cases. Lennart points out that containers is a even quicker/more minimal way to do things for some use cases ( https://plus.google.com/115547683951727699051/posts/G1DTXebUGGN ). Tie this to a CM like ansible and it’s easy to fire up and test your app in the next Fedora and move to it when you are ready, or even in an updated Fedora of the same version you are currently running.

Some of the comments on the lwn article in particular reiterate a strange divide that I see in the open source world. This group of folks wants a platform where they can exactly specify every version of everything they use and never have to change those versions based on external factors. To this group spinning up a Fedora instance to run their app on isn’t that appealing because Fedora the distribution only offers usually single versions of packages (or perhaps some compat packages for backward compatibility in some cases), so they have to manage their own versions/updates/setup. For them the platform itself should be only whats needed so they can bring up their own stack of tools. Thats a perfectly valid use case, and perhaps one Fedora should target some more.

That said, I’m still not sure I understand why there are so many folks who wish to design/build/maintain applications that way. Is this a fallout from many projects/people using “agile” development? Perhaps it shows my age, but what ever happened to designing an application such that it used interfaces other things it needed exposed and working with those other projects to make sure those interfaces were still stable over time or porting to new ones was possible/not too difficult? Why wouldn’t you want to leverage the distributions packaged versions of projects you depend on? Sure, you have your app working on Fedora 18 and then in Fedora 19 libfoo is libfoo2, so you keep using Fedora 18 until you have ported your app to use libfoo2 and then spin up Fedora 19 test instances and test until you are sure your app is working right. If libfoo2 dropped some functionality you needed, could you not ask them to readd it or add some new way to do the same thing?

The trade offs here seem poor to me, but of course everyone will do things the way they feel is best for their use case. I have a feeling that applications developed with a ‘ship my exact versions’ will more and more start seeing the issues in this model as time goes on, but we will see.