Author: johnmark

  • Gluster Spotlight on James Shubin: Puppet-Gluster, Vagrant and GlusterFS Automation

    [youtube http://www.youtube.com/watch?v=SV1_RpZssGk&w=560&h=315]

    ***UPDATE: Due to weather-related flight cancelations and rebooking, we had to push this back to Thursday, January 23, at noon PST/3pm EST/20:00 GMT***

    James Shubin is known in the Gluster community for his work on the Puppet-Gluster module.

    Recently, he’s begun to create powerful cocktails of Puppet and Vagrant to create recipes for automated Gluster deployments. See, eg.

    Building Base Images for Vagrant with a Makefile

    and

    Testing GlusterFS During GlusterFest

    This will be quite a fun spotlight, and very much worth your while. As usual, join the #gluster-meeting channel on the Freenode IRC network to participate in the live Q&A.

    About Gluster Spotlight

    Gluster Spotlight is a weekly Q&A show featuring the most exciting movers and shakers in the Gluster Community. If you don’t catch them live, you can always watch the recordings later.

  • GlusterFest Weekend is Here – Jan 17 – 20

    As I mentioned yesterday, the GlusterFest is nigh. This time, we’ll break out testing into two types:
    • Performance testing
    • Feature testing
    To learn about the GlusterFest and what it is, visit the GlusterFest home at gluster.org/gfest
    Remember that if you file a bug that is verified by the Gluster QE team, you’ll win a t-shirt plus other swag.

    PERFORMANCE TESTING

    We are lucky in that two individuals have stepped up with tools to help with performance testing. One is James Shubin with his Puppet-Gluster module:
    https://forge.gluster.org/puppet-gluster/

    Together with his blog posts on puppet-gluster + vagrant, you should have an easy way to deploy GlusterFS:
    Automatically deploying GlusterFS with Vagrant and Puppet

    Also, Ben England recently released some code for his Smallfile performance testing project, which targets metadata-intensive workloads:

    http://forge.gluster.org/smallfile-performance-testing

    He also wrote up a nice primer on performance testing on the Gluster.org wiki that discusses iozone, smallfile, and how to utilize performance testing in general:
    http://www.gluster.org/community/documentation/index.php/Performance_Testing
    Please follow the instructions on the GlusterFest page (gluster.org/gfest) and report your results there. Some of the test results are quite large, so you will want to report test results on a separate page, either on the Gluster.org wiki or on the paste site of your choosing, such as fpaste.org.
    Please file any bugs and report them on the gluster-devel list, as well as providing links on the GlusterFest page.

    FEATURE TESTING

    In addition to performance, we have new features in 3.5 which needs some further testing. Please follow the instructions on the GlusterFest page and add your results there. Some of the developers were kind enough to include testing scenarios with their feature pages. If you want your feature to be tested but didn’t supply any testing information, please add that now.

    The GlusterFest begins at 00:00 GMT/UTC (today, January 17) and ends at 23:59 GMT/UTC on Monday, January 20.
    Rev your engines and get ready for some testing!
  • GlusterFS 3.5 Beta + GlusterFest Weekend

    The first GlusterFS 3.5 Beta is here! See what features made it in over at the 3.5 planning page. Here are some of the marquee features:

    With this first beta, we’ll have the next weekend GlusterFest! We’ll kick it off on Friday, January 17 at 00:00 GMT, continuing through Monday, January 20 at 23:59 GMT. Set your clocks!

  • Gluster Hangout with Daniel Mons from Cutting Edge

    [youtube http://www.youtube.com/watch?v=Ep4C2XWsG8o&w=560&h=315]

    Dan Mons came across GlusterFS at his job with Cutting Edge, a VFX company. He needed lots of storage space that was available to many different users – and he needed it to be able to expand as he needed. That it was free and ran on commodity systems was a big plus.

    Come join us as we learn from Dan and pepper him with lots of questions. We’ll be at a special time this week because Dan is in Oz – 5pm Pacific US/8pm Eastern US/01:00 GMT

    Follow along on YouTube in the video above and ask questions in #gluster-meeting on the Freenode IRC network (irc.freenode.net or irc.gnu.org, among others).

  • Hangout with Semiosis (Louis Z) Today – Gluster on AWS, Java Filesystem and more

    In about 90 minutes, Louis Zuckerman and I will be “hanging out” and talking about how he came to deploy GlusterFS on AWS, and why he’d developing a Java Filesystem integration with GlusterFS. I’ll post the embedded YouTube link here when we’re about to go live. Hangout starts at 11am EST, 8am PST, 16:00GMT – follow along on YouTube and ask questions in #gluster-meeting on IRC.gnu.org.

     

    [youtube http://www.youtube.com/watch?v=usoY_FPc2EY&w=560&h=315]

  • On Millennials and Special Snowflakes

    I’m really sick and tired of all the boomer and gen X tsk tsk-ing those dreaded me-first millennials. All of these articles, which you’ve no doubt seen by now, follow a similar pattern:

    • Start with a reference to “too much praise” and too much emphasis on self-esteem. Bonus points if the writer mentions “everyone gets a trophy”
    • Then the writer lays down the hammer! And writes as if they’ve stumbled upon some grand discovery! “You’re no special snowflake” indeed.
    • Cue up some old-school expressions of insecurity that the writer mistakes for “tough love.” Back in my day, grown-ups rubbed our faces in our own failure. And we loved it! It was character building!
    • Add in some almost too revealing subtext of bitterness upon entering middle age while accomplishing zilch in the writer’s lifetime. Which, of course, has NOTHING AT ALL to do with the writer’s irrational jealousy of a whole generation of kids. NOTHING AT ALL, I SAY.
    • Add a sprinkling of cherry-picked facts to support the argument. Because I said so, that’s why. ZOMG, millenials will sic their parents on you when they fail!
    • Get off my lawn!

    The most heinous example of this was David McCullough Jr., an English teacher at Wellesley High School in Massachusetts, who stupidly masturbated to his own self-importance at a high school commencement address, wagging his finger and telling them all about the BIG SCARY REAL WORLD and how “they’re not special!” Contrary to what many commentators may have written, this is not some refreshing new phenomenon, and I remember it well – adults who couldn’t get over their own failures trying to cut us down to size to help them cope with their own failures, insecurities and underachievement. We’re afraid that the next generation may show us up, so we better chop them down while there’s still time.

    There’s a lot to be said about how middle class values have evolved over the decades, evolving from working class, blue collar families to white collar workers looking to get ahead. At every single stage, with every hand-off from the preceding generation, the new kids were always told to a.) get an education so they could improve upon the older generation b.) follow their dreams, unlike their elders, who didn’t have that luxury and c.) marry for love, not settle for whoever happens to be around. In the boomer generation, that means improving upon your parents farming or blue collar background. In the “gen x” days, it meant bettering your parents service jobs or blue collar history.

    And now it means… what, exactly? Seriously, if the whole “improve on your parents outcome” has been completely baked into every facet of society, what did we expect out of this current crop of kids? Pretty much everyone with some means has gone to college and worked in the white collar world their entire post-education lives. And now, with a present and future of very limited growth, the world is an extremely competitive place, rife with fear, loathing and self-doubt, which manifests itself in a variety of ways. Parents are hell-bent on making sure their kids “get ahead”, so they enroll their kids in every competitive sport, spend exorbitant amounts of money to send their kids to the best public schools, enroll them in art and music programs, and push them into every extra-curricular thing they can afford. The archetype of the millenials’ parents is not the coddling, always-praising sunshine pumper, it’s the tiger mom. And the implicit message to the kids is, “you had better succeed. You cannot fail – you’re our only hope to maintain our status. And we will do *anything* to protect that hard-fought status.”

    I call outright BS on the special snowflake business. That’s not the problem. They’ve been taught since they were plucked from a crib to go to art class that this is a hyper-competitive world in ways that it never was before. I do not understand how anyone can look at the lives of young adults who came of age in the 90’s and 00’s and come away with the impression that they didn’t face enough consequences of losing. They faced those consequences quite often, thank you very much – from the first time they learned they weren’t in the G&T classes, to the first time they didn’t make a sports team, to the times their teams, in whatever activity, didn’t win. There is now an unprecedented pressure on the middle class, not to mention baked-in anxiety of of falling down the status pole, with many people from below trying to rise up to the “American Dream.” Then add to that the stories shared by parents about that other kid/cousin/neighbor down the street who’s accomplished some amazing thing, evoking pangs of anxiety and jealousy from their kids. To magnify that effect, there’s now social media with its pervasive humble braggers to drive home the point that you’re a loser, baby, and no special snowflake. The pressure on millennials is about performing up to higher standards, achieving perfection, and making the impossible possible.

    There’s an interesting psychological concept that manifests itself in particularly pernicious ways as society becomes more taxed by inequality. People tend to focus on those who are above them in status, which means that they don’t even notice those who are lower in status. The result is that the more successful you are, the more elusive success becomes, due to the goalposts of success always being in motion. You don’t notice those peers you’ve just joined – only those who are at a level above you. So, parents who may have started from modest roots never quite appreciate the distance they’ve traveled, and this class anxiety transfers seamlessly to their progeny. And that anxiety, and how they deal with it, explains many of the complaints you hear about millennials.

    I don’t think millennials think they’re special snowflakes. I think they’re scared shitless that they’re losing. The era of lowered expectations means that everything they’ve been told when they were growing up is a complete lie. There is no attainable success – it’s always elusive, just beyond your grasp. Having established that, forgive them if, frankly, they don’t feel the need to jump through your horseshit hoops because, ultimately, it doesn’t really amount to anything substantial. Forgive them if they’d rather pursue their wild-ass dreams instead of whatever you think they *should* be doing. Whenever I read articles full of free, unsolicited “advice” for millennials, I’m reminded of my med-school friends who told me about the horrors of 36-hour shifts. When I asked them why they continued this practice despite its obvious potential for failure, their response was simple: because their predecessors had to go through it, it was only “fair” that this next crop go through the same self-abuse. Lather, rinse, repeat. Got that? It’s not about better results, it’s about equal suffering. So no, I don’t think millennials are a blight on humanity. In fact, I think they’re our best hope for a sane, future work-life balance.

    Because they, more than most, understand that our current systems of blind obeisance to fascistic organizations should not be a mandatory rite-of-passage that everyone follow. Rather, we should seriously analyze how we got where we are, study the results of our current systems, and if need be, either reform them or start over. Don’t fight the millennials – pay attention to what they have to say.

     

  • The Tyranny of the Clouds

    Or “How I learned to start worrying and never trust the cloud.”

    The Clouderati have been derping for some time now about how we’re all going towards the public cloud and “private cloud” will soon become a distant, painful memory, much like electric generators filled the gap before power grids became the norm. They seem far too glib about that prospect, and frankly, they should know better. When the Clouderati see the inevitability of the public cloud, their minds lead to unicorns and rainbows that are sure to follow. When I think of the inevitability of the public cloud, my mind strays to “The Empire Strikes Back” and who’s going to end up as Han Solo. When the Clouderati extol the virtues of public cloud providers, they prove to be very useful idiots advancing service providers’ aims, sort of the Lando Calrissians of the cloud wars. I, on the other hand, see an empire striking back at end users and developers, taking away our hard-fought gains made from the proliferation of free/open source software. That “the empire” is doing this *with* free/open source software just makes it all the more painful an irony to bear.

    I wrote previously that It Was Never About Innovation, and that article was set up to lead to this one, which is all about the cloud. I can still recall talking to Nicholas Carr about his new book at the time, “The Big Switch“, all about how we were heading towards a future of utility computing, and what that would portend. Nicholas saw the same trends the Clouderati did, except a few years earlier, and came away with a much different impression. Where the Clouderati are bowled over by Technology! and Innovation!, Nicholas saw a harbinger of potential harm and warned of a potential economic calamity as a result. While I also see a potential calamity, it has less to do with economic stagnation and more to do with the loss of both freedom and equality.

    The virtuous cycle I mentioned in the previous article does not exist when it comes to abstracting software over a network, into the cloud, and away from the end user and developer. In the world of cloud computing, there is no level playing field – at least, not at the moment. Customers are at the mercy of service providers and operators, and there are no “four freedoms” to fall back on.

    When several of us co-founded the Open Cloud Initiative (OCI), it was with the intent, as Simon Phipps so eloquently put it, of projecting the four freedoms onto the cloud. There have been attempts to mandate additional terms in licensing that would force service providers to participate in a level playing field. See, for example, the great debates over “closing the web services loophole” as we called it then, during the process to create the successor to the GNU General Public License version 2. Unfortunately, while we didn’t yet realize it, we didn’t have the same leverage as we had when software was something that you installed and maintained on a local machine.

    The Way to the Open Cloud

    Many “open cloud” efforts have come and gone over the years, none of them leading to anything of substance or gaining traction where it matters. Bradley Kuhn helped drive the creation of the Affero GPL version 3, which set out to define what software distribution and conveyance mean in a web-driven world, but the rest of the world has been slow to adopt because, again, service providers have no economic incentive to do so. Where we find ourselves today is a world without a level playing field, which will, in my opinion, stifle creativity and, yes, innovation. It is this desire for “innovation” that drives the service providers to behave as they do, although as you might surmise, I do not think that word means what they think it means. As in many things, service providers want to be the arbiters of said innovation without letting those dreaded freeloaders have much of a say. Worse yet, they create services that push freeloaders into becoming part of the product – not a participant in the process that drives product direction. (I know, I know: yes, users can get together and complain or file bugs, but they cannot mandate anything over the providers)

    Most surprising is that the closed cloud is aided and abetted by well-intentioned, but ultimately harmful actors. If you listen to the Clouderati, public cloud providers are the wonderful innovators in the space, along with heaping helpings of concern trolling over OpenStack’s future prospects. And when customers lose because a cloud company shuts its doors, the clouderati can’t be bothered to bring themselves to care: c’est la vie and let them eat cake. The problem is that too many of the clouderati think that Innovation! is a means to its own ends without thinking of ground rules or a “bill of rights” for the cloud. Innovation! and Technology! must rule all, and therefore the most innovative take all, and anything else is counter-productive or hindering the “free market”. This is what happens when the libertarian-minded carry prejudiced notions of what enabled open source success without understanding what made it possible: the establishment and codification of rights and freedoms. None of the Clouderati are evil, freedom-stealing, or greedy, per se, but their actions serve to enable those who are. Because they think solely in terms of Innovation! and Technology!, they set the stage for some companies to dominate the cloud space without any regard for establishing a level playing field.

    Let us enumerate the essential items for open innovation:

    1. Set of ground rules by which everyone must abide, eg. the four freedoms
    2. Level playing field where every participant is a stakeholder in a collaborative effort
    3. Economic incentives for participation

    These will be vigorously opposed by those who argue that establishing such a list is too restrictive for innovation to happen, because… free market! The irony is that establishing such rules enabled Open Source communities to become the engine that runs the world’s economy. Let us take each and discuss its role in creating the open cloud.

    Ground Rules

    We have already established the irony that the four freedoms led to the creation of software that was used as the infrastructure for creating proprietary cloud services. What if the four freedoms where tweaked for cloud services. As a reminder, here are the four freedoms:

    • The freedom to run the program, for any purpose (freedom 0).
    • The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1).
    • The freedom to redistribute copies so you can help your neighbor (freedom 2).
    • The freedom to distribute copies of your modified versions to others (freedom 3).

    If we rewrote this to apply to cloud services, how much would need to change? I made an attempt at this, and it turns out that only a couple of words need to change:

    • The freedom to run the program or service, for any purpose (freedom 0).
    • The freedom to study how the service works, and change it so it does your computing as you wish (freedom 1).
    • The freedom to implement and redistribute copies so you can help your neighbor (freedom 2).
    • The freedom to implement your modified versions for others (freedom 3).

    Freedom 0 adds “or service” to denote that we’re not just talking about a single program, but a set of programs that act in concert to deliver a service.

    Freedom 1 allows end users and developers to peak under the hood.

    Freedom 2 adds “implement and” to remind us that the software alone is not much use – the data forms a crucial part of any service.

    Freedom 3 also changes “distribute copies of” to “implement” because of the fundamental role that data plays in any service. Distributing copies of software in this case doesn’t help anyone without also adding the capability of implementing the modified service, data and all.

    Establishing these rules will be met, of course, with howls of rancor from the established players in the market, as it should be.

    Level Playing Field

    With the establishment of the service-oriented freedoms, above, we have the foundation for a level playing field with actors from all sides having a stake in each other’s success. Each of the enumerated freedoms serves to establish a managed ecosystem, rather than a winner-take-all pillage and plunder system. This will be countered by the argument that if we hinder the development of innovative companies won’t we a.) hinder economic growth in general and b.) socialism!

    In the first case, there is a very real threat from a winner-take-all system. In its formative stages, when everyone has the economic incentive to innovate (there’s that word again!), everyone wins. Companies create and disrupt each other, and everyone else wins by utilizing the creations of those companies. But there’s a well known consequence of this activity: each actor will try to build in the ability to retain customers at all costs. We have seen this happen in many markets, such as the creation of proprietary, undocumented data formats in the office productivity market. And we have seen it in the cloud, with the creation of proprietary APIs that lock in customers to a particular service offering. This, too, chokes off economic development and, eventually, innovation. At first, this lock in happens via the creation of new products and services which usually offer new features that enable customers to be more productive and agile. Over time, however, once the lock-in is established, customers find that their long-term margins are not in their favor, and moving to another platform proves too costly and time-consuming. If all vendors are equal, this may not be so bad, because vendors have an incentive to lure customers away from their existing providers, and the market becomes populated by vendors competing for customers, acting in their interest. Allow one vendor to establish a larger share than others, and this model breaks down. In a monopoly situation, the incumbent vendor has many levers to lock in their customers, making the transition cost too high to switch to another provider. In cloud computing, this winner-take-all effect is magnified by the massive economies of scale enjoyed by the incumbent providers. Thus, the customer is unable to be as innovative as they could be due to their vendor’s lock-in schemes. If you believe in unfettered Innovation! at all costs, then you must also understand the very real economic consequences of vendor lock-in. By creating a level playing field through the establishment of ground rules that ensure freedom, a sustainable and innovative market is at least feasible. Without that, an unfettered winner-take-all approach will invariably result in the loss of freedom and, consequently, agility and innovation.

    Economic Incentives

    This is the hard one. We have already established that open source ecosystems work because all actors have an incentive to participate, but we have not established whether the same incentives apply here. In the open source software world, developers participate because they had to, because the price of software is always dropping, and customers enjoy open source software too much to give it up for anything else. One thing that may be in our favor is the distinct lack of profits in the cloud computing space, although that changes once you include services built on cloud computing architectures.

    If we focus on infrastructure as a service (IaaS) and platform as a service (PaaS), the primary gateways to creating cloud-based services, then the margins and profits are quite low. This market is, by its nature, open to competition because the race is on to lure as many developers and customers as possible to the respective platform offerings. However, the danger becomes if one particular service provider is able to offer proprietary services that give it leverage over the others, establishing the lock-in levers needed to pound the competition into oblivion.

    In contrast to basic infrastructure, the profit margins of proprietary products built on top of cloud infrastructure has been growing for some time, which incentivizes the IaaS and PaaS vendors to keep stacking proprietary services on top of their basic infrastructure. This results in a situation where increasing numbers of people and businesses have happily donated their most important business processes and workflows to these service providers. If any of them are to grow unhappy with the service, they cannot easily switch, because no competitor would have access to the same data or implementation of that service. In this case, not only is there a high cost associated with moving to another service, there is the distinct loss of utility (and revenue) that the customer would experience. There is a cost that comes from entrusting so much of your business to single points of failure with no known mechanism for migrating to a competitor.

    In this model, there is no incentive for service providers to voluntarily open up their data or services to other service providers. There is, however, an incentive for competing service providers to be more open with their products. One possible solution could be to create an Open Cloud certification that would allow services that abide by the four freedoms in the cloud to differentiate themselves from the rest of the pack. If enough service providers signed on, it would lead to a network effect adding pressure to those providers who don’t abide by the four freedoms. This is similar to the model established by the Free Software Foundation and, although the GNU people would be loathe to admit it, the Open Source Initiative. The OCI’s goal was to ultimately create this, but we have not yet been able to follow through on those efforts.

    Conclusion

    We have a pretty good idea why open source succeeded, but we don’t know if the open cloud will follow the same path. At the moment, end users and developers have little leverage in this game. One possibility would be if end users chose, at massive scale, to use services that adhered to open cloud principles, but we are a long way away from this reality. Ultimately, in order for the open cloud to succeed, there must be economic incentives for all parties involved. Perhaps pricing demands will drive some of the lower rung service providers to adopt more open policies. Perhaps end users will flock to those service providers, starting a new virtuous cycle. We don’t yet know. What we do know is that attempts to create Innovation! will undoubtedly lead to a stacked deck and a lack of leverage for those who rely on these services.

    If we are to resolve this problem, it can’t be about innovation for innovation’s sake – it must be, once again, about freedom.

     

  • THE NUTCRACKOLYPSE

    Gather around, children, as I tell the tale of the… bum bum BUM… NUTCRACKOLYPSE!

    //slid.es/johnmarkwalker/thenutcrackolypse/embed

  • Do Open Source Communities Have a Social Responsibility?

    This post continues my holiday detour into things not necessarily tech related. Forgive me this indulgence – there is at least one more post I’ll make in a similar vein.

    Open Source communities are different. At least, I’ve always felt that they are. Think of the term “community manager.” If you’re a community manager in an open source community your responsibilities include, but are not limited to: product management, project management, enabling your employer’s competition, enabling people’s success without their paying you, marketing strategy and vision, product strategy and vision, people management (aka cat-herding), event management, and even, sometimes, basic IT administration and web development. If you ask a community manager in some other industry, they do anywhere from half of those things to, at most, 3/4. But even the most capable  community manager in a non-open source field will not do at least two of the things mentioned, enabling your competitors and enabling “freeloaders”. (Before anyone says anything – no, enabling non-paying contributors to upload free content that the your employer uses to rake in ad revenue doesn’t count for the latter. That’s called tricking people into contributing free labor to a product you sell.)

    So it would seem that Open Source community management is a different beast, a much more comprehensive set of duties and, dare I say it, a proving ground for executive leadership. There are other differences, too, that make the scope of open source communities different and more expansive. Beginning with the GNU project and the Free Software Foundation, the roots of open source are enmeshed with social responsibility, but do modern open source communities continue to carry the flame of social responsibility?

    One of the things that attracted me to open source communities in the beginning was the sense that by participating in them, I was making the world a better place. And by that, I don’t mean in the Steve Jobs sense, where “making the world a better place” means “anything that fattens my wallet and strips people of their information rights.” I mean actually creating something that adds value to others without expecting any form of monetary remuneration. Others have called this a “gift economy” but I’m not sure that’s exactly correct. I mean, I’ve always been paid for my open source work, which is different from other social advocates who literally make nothing for their efforts. Regardless, there’s a sense that I’m enabling a better world while also drawing a nice paycheck, which certainly beats making the world crappier while drawing an even bigger paycheck.

    Anyway, throughout my open source community career, I’ve seen all sorts of social causes at work: bridging the digital divide, defining information rights and, more recently, gender and ethnic equality in technology. Because of our social activism roots the question becomes, how much responsibility do we have as open source advocates to carry the torch for related causes? Take the Ada Initiative, for example. Does it not behoove us to do our part for gender equality in high tech? How many open source conferences have you been to that were >90% male? Does saying that “well, the code is open, so anyone can participate” really cut it? If we’re really going to address the problem of the digital divide, does it not make sense to more aggressively recruit women and under-represented minorities into the fold?

    If we really want to rid the world or proprietary software, I don’t see how we can do that without adding in people who currently do not actively participate in open source communities. There’s also been a disturbing trend whereby the more commercial communities have begun to separate themselves from the communities with more social activism roots, dividing the hippies from the money-makers. As I noted in my previous post, the hippies were right the whole time about the four freedoms, so perhaps we should listem to them more closely on these other issues? Think about it – if we more aggressively recruit from under-represented portions of society, would that not add a much-needed influx of talent and ambition? Would that not, then, make our communities that much more dynamic and productive? I’ve always held that economics has a long-term liberal bias, and I think this is an opportunity to put that maxim to the test.

    This holiday season, let’s think about the social responsibility of open source communities and its participants. Let’s think about ways we can bring the under-represented into the fold.

  • It Was Never About Innovation

    This is the first in a series of articles about innovation and open computing. Because it’s a holiday time of year in the USA, I’ve decided that these next few articles will be a detour from the usual stuff you’ll find here.

    Ever since a few of us got together to form the Open Cloud Initiative, I’ve looked at cloud computing with awe, but also mistrust. There are many good things that can come of cloud computing initiatives, but there’s also the opportunity (some might say inevitability) of abuse and exploitation.

    Over the last few months, I’ve made a point of giving a talk at various conferences with the title of “It Was Never About Innovation.” The point being that Open Source software proved victorious in the data center, not because developers necessarily wanted to release more software under an open source license or because open source development models are necessarily more innovative. No, as I see it, open source led to more innovation and took over the data center because of the basic ground rules that were laid down from the beginning with the intent of creating an ecosystem that espoused the four freedoms as enumerated by Richard Stallman and the Free Software Foundation. It was those ground rules that leveled the playing field, forcing developers to treat end users as equal partners in the game of software development. You will note that it was open source that took over the data center, not freemium free-as-in-beer software. As I’ve grown fond of saying over the last few months, the hippies had it right the whole time. In this model, innovation wasn’t the end goal, it was just a very interesting by-product.

    I posit that innovation is much like Douglas Adams’ description of flying in “The Hitchhiker’s Guide to the Galaxy,” which you’ll no doubt recall as the art of throwing yourself at the ground and missing. To attempt to fly would be to miss the point – and fail miserably. No, the trick is to distract yourself before you hit the ground so that flying becomes the end result. Innovation is very much like that. To attempt to be innovative is to perhaps miss the entire point of how the creative process happens. Technology office parks, anyone? Incubators? Are these supposed houses of innovation necessarily more innovative than the alternatives?

    My point is that the innovation that’s taking place right now in multiple open source ecosystems is due to the positive feedback loop that was a direct consequence of implementing the four freedoms and mandating that all parties abide by them. It was the implementation of the four freedoms that created a system in which “freeloaders”, those who don’t pay anything for software, could be every bit as important as the developer or even paying customer. If developers didn’t necessarily want to participate in an open ecosystem, which forced participants into abiding by rules that weren’t necessarily in their direct self-interest, why, then, did they willingly participate?

    That was the question I set out to answer way back in 2005, when I wrote “There is no Open Source Community.” The impetus for that paper was when I found myself unable to answer the essential question, “Why do developers willingly release open source software? Was it out of some sense of charity? Of providing for the greater good?” One of the most startling discoveries in my young career, back when I worked on SourceForge.net at VA Software, was that most developers who write open source software don’t really care about the concepts of “open source” or “free software”. At the time, we conducted a survey of developers on SourceForge.net and were surprised to discover that they really didn’t give two tosses about the four freedoms. They weren’t free software advocates, and yet they were still free software participants. But why?

    What I discovered by working through thought experiments and measuring the results of my model versus reality was that developers didn’t write open source software because they wanted to – they wrote it because they had to. There is an economic incentive for developers to participate in open source communities due to three major trends:

    1. The ubiquity of internet access

    2. Possibly as a direct result of #1, the ubiquity of developers writing software, and

    3. Also as a direct result of the previous bullet, the price of any given feature in software is asymptotic to zero over time.

    When the forces of economics put constant downward price pressure on software, developers look for other ways to derive income. Given the choice between simply submitting to economic forces and releasing no-cost software in proprietary form, developers found open source models to be a much better deal. Some of us didn’t necessarily like the mechanics of those models, which included dual licensing and using copyleft as a means of collecting ransom, but it was a model in which developers could thrive. I wrote this back in 2005, all from the developer’s and software vendor’s point of view. For years, I struggled with how to incorporate the end user’s point of view. I simply didn’t find the problem that interesting to contemplate. Of course end users would take to open source software: who doesn’t want to get access to stuff free-of-charge?

    Recently I started asking other questions as I contemplated the state of cloud computing and how it relates to open source economics. For example, if end users have the choice between something free-of-charge but proprietary versus open source software, how and why did open source win the day? If we believe that end users played a role in the model, and I think it’s clear that they did, why did they make this choice? Often I’m told that customers don’t care about open source or freedom, because they just want solutions that work. And yet, we have evidence that customers very much do care about those things. If they didn’t, why the overwhelming demand for software that’s open source? Also, the cost of acquiring software is minimal compared to the cost of maintaining software deployments, so why is the cost-free aspect of open source even a factor? One could argue that the speed and agility of acquiring something free-of-charge leads to ubiquity, but why prefer open source? After all, we’ve been told for many years that end users rarely use the direct access to software to make changes under the hood – they usually end up relying on the software developer for that, just as in the proprietary model. We simply have not understood very well why this process works.

    What I’ve come to believe is that it’s all about agility and, yes, the four freedoms. In fact, those two things are very much related. Think about it: there is no such thing as a single vendor for everything in the modern data center. That’s impossible at the moment (and, one could argue, ever). Data centers have incorporated automation and orchestration of the different layers of software stacks that must interact seamlessly so that the operators can go home at night and not suffer through incessant pager alerts. These layers need to inter-operate at levels of complexity that make lesser operators fall asleep weeping, unsure if they could rebuild all of their services if called upon. One very telling anecdote regarding this phenomenon came from one such operators who casually commented to me that “if our data center went down and we were forced to do a complete reboot, we wouldn’t know how to do it.”

    In this scenario, you have to rely on things that allow you to automate and orchestrate at will, on your timetable, not that of a vendor. Think of all the projects that Netflix, Twitter and Facebook have released that allow them to orchestrate massive amounts of software and data in ways that deliver services without single points of failure. There is no universe in which this could be done with proprietary software. This is where the four freedoms come in. By creating an ecosystem that mandated the four freedoms, end users, consequentially, were able to participate in this ecosystem for the first time as equal partners to the developers. This dramatically changed the dynamics of customer-vendor relationships. In the world of open source software, end users have the freedom to be as agile as they will ever need to be. They can report problems, patch software, release new versions if the other developers don’t step up, and work in a system that allows them to deliver solutions with much faster times to market. The other developers, perhaps pure software vendors or also developer-operators, also benefit by virtue of the fact that willing participants in the form of end users create better software, and thus begins the virtuous cycle.

    To review:

    Developers write version 0.1 of some set of tools → end users evaluate software and decide how valuable it is → if it’s usable, end users either add patches, file bug reports, send feedback or all of the above → developers incorporate feedback, accept or reject patch submissions, rewrite portions of the code → end users evaluate and either use or discard.

    Lather, rinse, repeat. One couldn’t have set out to design a system that was as agile and innovative, which is precisely my point! This system works because the open source ecosystem is a level playing field, and there is an economic incentive for all parties. Developers don’t rule over end users, and end users, by definition, can’t rule the process because they don’t produce the code, but it was their adoption of open source solutions that forced the hands of developers. In this model, developers showed up to fill customer demand. It was this level playing field, which was a direct result of implementing the four freedoms, that led to all the innovation that happens today. And as we have all-too-often been reminded, humans don’t generally set out to create level playing fields, which is why groups of people could never have intended to create this feedback loop. All the various parties would have at various points become too greedy, protecting their own interests, thus the reason it had to begin with the four freedoms.

    And look where we are now – in a world where much of the innovation is just as likely (if not more) to come from “users” as it is from venerable software vendors. This is the world we live in today, where a company like Yahoo developed some data analysis software internally and decided that it might be useful for the rest of the world to work with, thus beginning the Hadoop juggernaut. Rackspace, long known for its hosting and support, not software development, collaborates with NASA and unleashes what became the OpenStack ecosystem. In both cases, the role of traditional software vendors was reduced to, at first, fast followers, not lead innovators or developers. None of this would have been possible without stating, from the beginning, that every software program must honor these freedoms:

    • The freedom to run the program, for any purpose (freedom 0).
    • The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1).
    • The freedom to redistribute copies so you can help your neighbor (freedom 2).
    • The freedom to distribute copies of your modified versions to others (freedom 3).

    This is all fine and dandy, but what does this mean in a cloud computing context? You’ll have to wait for the next installment, coming soon!