<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Seeing the fnords</title>
	<atom:link href="http://fnords.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://fnords.wordpress.com</link>
	<description>Truth lies between the code lines</description>
	<lastBuildDate>Wed, 19 Jun 2013 07:40:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='fnords.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/ed55ad3e09abc598d7db7fb82996fc1a?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Seeing the fnords</title>
		<link>http://fnords.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://fnords.wordpress.com/osd.xml" title="Seeing the fnords" />
	<atom:link rel='hub' href='http://fnords.wordpress.com/?pushpress=hub'/>
		<item>
		<title>The need for releases</title>
		<link>http://fnords.wordpress.com/2013/04/11/the-need-for-releases/</link>
		<comments>http://fnords.wordpress.com/2013/04/11/the-need-for-releases/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 14:32:21 +0000</pubDate>
		<dc:creator>Thierry Carrez</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Openstack]]></category>

		<guid isPermaLink="false">http://fnords.wordpress.com/?p=1035</guid>
		<description><![CDATA[The beginning of a new release cycle is as good as any moment to question why we actually go through the hassle of producing OpenStack releases. Twice per year, on a precise date we announce 6 months in advance, we bless and publish source code tarballs of the various integrated projects in OpenStack. Every week [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=1035&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The beginning of a new release cycle is as good as any moment to question why we actually go through the hassle of producing OpenStack releases. <a href="https://wiki.openstack.org/wiki/Release_Cycle" target="_blank">Twice per year</a>, on a precise date we announce 6 months in advance, we bless and publish source code tarballs of the various integrated projects in OpenStack. Every week we have a <a href="https://wiki.openstack.org/wiki/Meetings/ProjectMeeting" target="_blank">meeting</a> that tracks our progress toward this common goal. Why ?</p>
<h3>Releases vs. Continuous deployment</h3>
<p>The question is particularly valid if you take into account the type of software that we produce. We don&#8217;t really expect cloud infrastructure providers to religiously download our source code tarballs every 6 months and run from that. For the largest installations, running much closer to the master branch and continuously deploy the latest changes is a really sound strategy. We invested a lot of effort in our gating systems and QA automated testing to make sure the master branch is always runnable. We&#8217;ll discuss at the <a href="http://www.openstack.org/summit/portland-2013/" target="_blank">OpenStack Summit</a> next week how to improve CD support in OpenStack. We backport bugfixes to the <a href="https://wiki.openstack.org/wiki/StableBranch" target="_blank">stable branches</a> post-release. So why do we continue to single out a few commits and publish them as &#8220;the release&#8221; ?</p>
<h3>The need for cycles</h3>
<p>The value is not really in <em>releases</em>. It is in <em>release cycles</em>.</p>
<p>Producing OpenStack involves the work of a large number of people. While most of those people are paid to participate in OpenStack development, as far as the OpenStack project goes, we don&#8217;t manage them. We can&#8217;t ask them to work on a specific area, or to respect a given deadline, or to spend that extra hour to finalize something. The main trick we use to align everyone and make us all part of the same community is to have a cycle. We have regular milestones that we ask contributors to target their features to. We have a <a href="https://wiki.openstack.org/wiki/FeatureFreeze" target="_blank">feature freeze</a> to encourage people to switch their mindset to bugfixing. We have weekly meetings to track progress, communicate where we are and motivate us to go that extra mile. The common rhythm is what makes us all play in the same team. The &#8220;release&#8221; itself is just the natural conclusion of that common effort.</p>
<h3>A reference point in time</h3>
<p>Singling out a point in time has a number of other benefits. It&#8217;s easier to work on documentation if you group your features into a coherent set (we actually considered shortening our cycles in the past, and the main blocker was our capacity to produce good documentation often enough). It&#8217;s easier to communicate about OpenStack progress and new features if you do it periodically rather than continuously. It&#8217;s easier to have <a href="https://wiki.openstack.org/wiki/Summit" target="_blank">Design Summits</a> every 6 months if you create a common brainstorm / implementation / integration cycle. The releases also serve as reference points for API deprecation rules, for stable release maintenance, for security backports.</p>
<p>If you&#8217;re purely focused on the software consumption part, it&#8217;s easy to underestimate the value of release cycles. They actually are one of the main reasons for the pace of development and success of OpenStack so far.</p>
<h3>The path forward</h3>
<p>We need release <em>cycles</em>&#8230; do we need release <em>deliverables</em> ? Do we actually need to bless and publish a set of source code tarballs ? My personal view on that is: if there is no additional cost in producing releases, why not continue to do them ? With the release tooling we have today, blessing and publishing a few tarballs is as simple as pushing a tag, running a script and sending an email. And I like how this formally concludes the development cycle to start the stable maintenance period.</p>
<p>But what about Continuous Deployment ? Well, the fact that we produce releases shouldn&#8217;t at all affect our ability to continuously deploy OpenStack. The master branch should always be in good shape, and we definitely should have the necessary features in place to fully support CD. We can have both. So we should have both.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/1035/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/1035/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=1035&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://fnords.wordpress.com/2013/04/11/the-need-for-releases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/080c91926d20cf646ad6a6fef8b34e82?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tcarrez</media:title>
		</media:content>
	</item>
		<item>
		<title>Grizzly, the day after</title>
		<link>http://fnords.wordpress.com/2013/04/05/grizzly-the-day-after/</link>
		<comments>http://fnords.wordpress.com/2013/04/05/grizzly-the-day-after/#comments</comments>
		<pubDate>Fri, 05 Apr 2013 13:08:00 +0000</pubDate>
		<dc:creator>Thierry Carrez</dc:creator>
				<category><![CDATA[Open source]]></category>
		<category><![CDATA[Openstack]]></category>

		<guid isPermaLink="false">http://fnords.wordpress.com/?p=1010</guid>
		<description><![CDATA[The OpenStack Grizzly release of yesterday officially closes the Grizzly development cycle. But while I try to celebrate and relax, I can&#8217;t help from feeling worried and depressed on the hours following the release, as we discover bugs that we could have (should have ?) caught before release. It&#8217;s a kind of postpartum depression for [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=1010&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The OpenStack Grizzly release of yesterday officially closes the Grizzly development cycle. But while I try to celebrate and relax, I can&#8217;t help from feeling worried and depressed on the hours following the release, as we discover bugs that we could have (should have ?) caught before release. It&#8217;s a kind of postpartum depression for release managers; please consider this post as part of my therapy.</p>
<h3>Good</h3>
<p>We&#8217;d naturally like to release when the software is &#8220;ready&#8221;, &#8220;good&#8221;, or &#8220;bug-free&#8221;. Reality is, with software of the complexity of OpenStack, onto which we constantly add new features, there will always be bugs. So, rather than releasing when the software is bug-free, we &#8220;release&#8221; when waiting more would not really change the quality of the result. We release when it&#8217;s time.</p>
<p>In OpenStack, we invest a lot in automated testing, and each proposed commit goes through an extensive set of unit and integration tests. But with so many combinations of deployment options, there are still dark corners that will only be explored by users as they apply the new code to their specific use case. We encourage users to try new code <em>before</em> release, by publishing and making noise about milestones, release candidates&#8230; But there will always be a significant number of users who will not try new code until the point in time we call &#8220;release&#8221;. So there will always be significant bugs that are discovered (and fixed) after release day.</p>
<h3>The best point in time</h3>
<p>What we need to do is pick the right moment to &#8220;release&#8221;: when all known release-critical issues are fixed. When the benefits of waiting more are not worth the drawbacks of distracting developers from working on the next development cycle, or of abandoning the benefits of a predictable time-based common release.</p>
<p>That&#8217;s the role of the <a href="https://wiki.openstack.org/wiki/Release_Cycle" target="_blank">Release Candidates</a> that we produce in the weeks before the release day. When we fixed all known release-critical bugs, we create an RC. If we find new ones before the release day, we fix them and regenerate a new release candidate. On release day, we consider the current release candidates as &#8220;final&#8221; and publish them.</p>
<p>The trick, then, is to pick the right length for this feature-frozen period leading to release, one that gives enough time for each of the projects in OpenStack to reach this the first release candidate (meaning, &#8220;all known release-critical bugs fixed&#8221;), and publish this RC1 to early testers. For Grizzly, it looked like this:</p>
<p><a href="http://fnords.files.wordpress.com/2013/04/roadtorc.png"><img class="alignnone size-full wp-image-1011" alt="roadtorc" src="http://fnords.files.wordpress.com/2013/04/roadtorc.png?w=595&#038;h=343" width="595" height="343" /></a></p>
<p>This graph shows the number of release-critical bugs in various projects over time. We can see that the length of the pre-release period is about right: waiting more would not have resulted in a lot more bugs to be fixed. We basically needed to release to get more users to test and report the next bugs.</p>
<h3>The Grizzly is still alive</h3>
<p>The other thing we need to have is a process to continue to fix bugs after the &#8220;release&#8221;. We document the most obvious regressions in the constantly-updated <a href="https://wiki.openstack.org/wiki/ReleaseNotes/Grizzly" target="_blank">Release Notes</a>. And we handle the Grizzly bugs using the stable release update process.</p>
<p>After release, we maintain a branch where important bugfixes are backported and from which we&#8217;ll publish point releases. This <strong>stable/grizzly</strong> branch is maintained by the OpenStack stable maintenance team. If you see a bugfix that should definitely be backported, you can tag the corresponding bug in Launchpad with the <em>grizzly-backport-potential</em> tag to bring it to the team&#8217;s attention. For more information on the stable branches, I invite you to read this <a href="https://wiki.openstack.org/wiki/StableBranch" target="_blank">wiki page</a>.</p>
<h3>Being pumped up again</h3>
<p>The post-release depression usually lasts a few days, until I realize that not so many bugs were reported. The quality of the new release is actually always an order of magnitude better than the previous releases, due to 6-month worth of improvements in our amazing continuous integration system ! We actually did an incredible job, and it will only get better !</p>
<p>The final stage of recovery is when our fantastic community gets all together at the OpenStack Summit. 4 days to witness and celebrate our success. 4 days to recharge the motivation batteries, brainstorm and discuss what we&#8217;ll do over the next 6 months. We are living awesome times. See you there.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/1010/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/1010/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=1010&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://fnords.wordpress.com/2013/04/05/grizzly-the-day-after/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/080c91926d20cf646ad6a6fef8b34e82?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tcarrez</media:title>
		</media:content>

		<media:content url="http://fnords.files.wordpress.com/2013/04/roadtorc.png" medium="image">
			<media:title type="html">roadtorc</media:title>
		</media:content>
	</item>
		<item>
		<title>UDS is dead, long live ODS</title>
		<link>http://fnords.wordpress.com/2013/03/04/uds-is-dead-long-live-ods/</link>
		<comments>http://fnords.wordpress.com/2013/03/04/uds-is-dead-long-live-ods/#comments</comments>
		<pubDate>Mon, 04 Mar 2013 16:44:58 +0000</pubDate>
		<dc:creator>Thierry Carrez</dc:creator>
				<category><![CDATA[Open source]]></category>
		<category><![CDATA[Openstack]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://fnords.wordpress.com/?p=995</guid>
		<description><![CDATA[Back from a (almost) entirely-offline week vacation, a lot of news were waiting for me. A full book was written. OpenStack projects graduated. An Ubuntu rolling release model was considered. But what grabbed my attention was the announcement of UDS moving to a virtual event. And every 3 months. And over two days. And next [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=995&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Back from a (almost) entirely-offline week vacation, a lot of news were waiting for me. A <a href="http://openstack.booktype.pro/openstack-operations-guide/_draft/_v/1.0/why-we-wrote-this-book/" target="_blank">full book</a> was written. OpenStack projects <a href="http://eavesdrop.openstack.org/meetings/tc/2013/tc.2013-02-26-20.03.html" target="_blank">graduated</a>. An Ubuntu <a href="https://lists.ubuntu.com/archives/ubuntu-devel/2013-February/036537.html" target="_blank">rolling release model</a> was considered. But what grabbed my attention was the announcement of <a href="https://lists.ubuntu.com/archives/ubuntu-devel/2013-February/036502.html" target="_blank">UDS moving to a virtual event</a>. And every 3 months. And over two days. And next week.</p>
<p>As someone who attended all UDSes (but one) since Prague in May 2008, as a Canonical employee then as an upstream developer, that was quite a shock. We all have fond memories and anecdotes of stuff that happened during those Ubuntu developer summits.</p>
<h3>What those summits do</h3>
<p>For those who never attended one, UDS (and the OpenStack <em>Design Summits</em> that were modeled after them) achieve a lot of goals for a community of open source developers:</p>
<ol>
<li>Celebrate recent release, motivate all your developer community for the next 6 months</li>
<li>Brainstorm early ideas on complex topics, identify key stakeholders to include in further design discussion</li>
<li>Present an implementation plan for a proposed feature and get feedback from the rest of the community before starting to work on it</li>
<li>Reduce duplication of effort by getting everyone working on the same type of issues in the same room and around the same beers for a few days</li>
<li>Meet in informal settings people you usually only interact with online, to get to know them and reduce friction that can build up after too many heated threads</li>
</ol>
<p>This all sounds very valuable. So why did Canonical decide to suppress UDSes as we knew them, while they were arguably part of their successful community development model ?</p>
<h3>Who killed UDS</h3>
<p>The reason is that UDS is a very costly event, and it was becoming more and more useless. A lot of Ubuntu development happens within Canonical those days, and UDS sessions gradually shifted from being brainstorming sessions between equal community members to being a formal communication of upcoming features/plans to gather immediate feedback (point [3] above). There were not so many brainstorming design sessions anymore (point [2] above, very difficult to do in a virtual setting), with design happening more and more <a href="http://www.markshuttleworth.com/archives/1200" target="_blank">behind Canonical curtains</a>. There is less need to reduce duplication of effort (point [4] above), with less non-Canonical people starting to implement new things.</p>
<p>Therefore it makes sense to replace it with a less-costly, purely-virtual communication exercise that still perfectly fills point [3], with the added benefits of running it more often (updating everyone else on status more often), and improving accessibility for remote participants. If you add to the mix a move to rolling releases, it almost makes perfect sense. The problem is, they also get rid of points [1] and [5]. This will result in a even less motivated developer community, with more tension between Canonical employees and non-Canonical community members.</p>
<p>I&#8217;m not convinced that&#8217;s the right move. I for one will certainly regret them. But I think I understand the move in light of Canonical&#8217;s recent strategy.</p>
<h3>What about OpenStack Design Summits ?</h3>
<p>Some people have been asking me if OpenStack should move to a similar model. My answer is <em>definitely not</em>.</p>
<p>When Rick Clark imported the UDS model from Ubuntu to OpenStack, it was to fulfill one of the <a href="https://wiki.openstack.org/wiki/Open" target="_blank">4 Opens</a> we pledged: <em>Open Design</em>. In OpenStack Design Summits, we openly debate how features should be designed, and empower the developers in the room to make those design decisions. Point [2] above is therefore essential. In OpenStack we also have a lot of different development groups working in parallel, and making sure we don&#8217;t duplicate effort is key to limit friction and make the best use of our resources. So we can&#8217;t just pass on point [4]. With more than 200 different developers authoring changes every month, the OpenStack development community is way past <a href="http://en.wikipedia.org/wiki/Dunbar%27s_number" target="_blank">Dunbar&#8217;s number</a>. Thread after thread, some resentment can build up over time between opposed developers. Get them to informally talk in person over a coffee or a beer, and most issues will be settled. Point [5] therefore lets us keep a healthy developer community. And finally, with about 20k changes committed per year, OpenStack developers are pretty busy. Having a week to celebrate and recharge motivation batteries every 6 months doesn&#8217;t sound like a bad thing. So we&#8217;d like to keep point [1].</p>
<p>So for OpenStack it definitely makes sense to keep our Design Summits the way they are. Running them as a track within the OpenStack Summit allows us to fund them, since there is so much momentum around OpenStack and so many people interested in attending those. We need to keep improving the remote participation options to include developers that unfortunately cannot join us. We need to keep doing it in different locations over the world to foster local participation. But meeting in person every 6 months is an integral part of our success, and we&#8217;ll keep doing it.</p>
<p>Next stop is in Portland, from April 15 to April 18. <a href="http://www.openstack.org/summit/" target="_blank">Join us</a> !</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/995/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=995&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://fnords.wordpress.com/2013/03/04/uds-is-dead-long-live-ods/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/080c91926d20cf646ad6a6fef8b34e82?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tcarrez</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenStack at FOSDEM &#8217;13</title>
		<link>http://fnords.wordpress.com/2013/01/11/openstack-at-fosdem-13/</link>
		<comments>http://fnords.wordpress.com/2013/01/11/openstack-at-fosdem-13/#comments</comments>
		<pubDate>Fri, 11 Jan 2013 13:34:12 +0000</pubDate>
		<dc:creator>Thierry Carrez</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Openstack]]></category>

		<guid isPermaLink="false">http://fnords.wordpress.com/?p=989</guid>
		<description><![CDATA[In 3 weeks, free and open source software developers will converge to Brussels for 2+ days of talks, discussions and beer. FOSDEM is still the largest gathering for our community in Europe, and it will be a pleasure to meet again with longtime friends. Note that FOSDEM attendance is free as in beer, and requires [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=989&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In 3 weeks, free and open source software developers will converge to Brussels for 2+ days of talks, discussions and beer. <a href="https://fosdem.org/2013/" target="_blank">FOSDEM</a> is still the largest gathering for our community in Europe, and it will be a pleasure to meet again with longtime friends. Note that FOSDEM attendance is free as in beer, and requires no registration.</p>
<p>OpenStack will be present with a number of talks in the <a href="https://fosdem.org/2013/schedule/track/cloud/" target="_blank">Cloud devroom</a> in the <em>Chavanne</em> auditorium on Sunday, February 3rd:</p>
<ul>
<li>At 9:30, I&#8217;ll open the devroom with <a href="https://fosdem.org/2013/schedule/event/state_of_openstack/" target="_blank"><strong>State of the OpenStack Union, 2013</strong></a>. A talk about what happened in the OpenStack development community since last year presentation at FOSDEM.</li>
<li>At 10:00, don&#8217;t miss Mark McLoughlin&#8217;s talk: <strong><a href="https://fosdem.org/2013/schedule/event/openstack_app_arch/" target="_blank">OpenStack: 21st Century App Architecture and Cloud Operations</a>.</strong> He will expose how OpenStack is built with the same resilience and automation principles as highly-scalable cloud applications.</li>
<li>At 15:00, Rob Clark will detail his <a href="https://fosdem.org/2013/schedule/event/security_priorities/" target="_blank"><strong>Security Priorities for Cloud Developers</strong></a>: the main security challenges OpenStack faces and what we should do about them.</li>
<li>At 15:30, Tomas Sedovic will introduce <a href="https://fosdem.org/2013/schedule/event/openstack_heat/" target="_blank"><strong>Orchestrating complex deployments on OpenStack using Heat</strong></a>. The Heat project is in OpenStack incubation currently so this is a great opportunity to learn more about it.</li>
<li>Finally to close the day at 16:30, Nick Barcet, Eoghan Glynn and Julien Danjou will storm the stage and introduce the other OpenStack project currently in incubation: <a href="https://fosdem.org/2013/schedule/event/openstack_ceilometer/" target="_blank"><strong>Measuring OpenStack: the Ceilometer Project</strong></a>.</li>
</ul>
<p>There will also be OpenStack mentions in various other talks during the day: Martyn Taylor should demonstrate OpenStack Horizon in conjunction with <a href="https://fosdem.org/2013/schedule/event/image_management/" target="_blank">Aeolus Image Factory</a> at 13:30, and Vangelis Koukis will present <a href="https://fosdem.org/2013/schedule/event/synnefo/" target="_blank">Synnefo</a>, which provides OpenStack APIs, at 14:00.</p>
<p>Finally, I&#8217;ll also be giving a talk, directed to Python developers, about the OpenStack job market sometimes Sunday in the <a href="https://fosdem.org/2013/schedule/track/python/" target="_blank">Python devroom</a> (room <em>K.3.401</em>): <strong>Get a Python job, work on OpenStack</strong>.</p>
<p>I hope you will join us in the hopefully-not-dead-frozen-this-time and beautiful Brussels !</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/989/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/989/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=989&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://fnords.wordpress.com/2013/01/11/openstack-at-fosdem-13/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/080c91926d20cf646ad6a6fef8b34e82?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tcarrez</media:title>
		</media:content>
	</item>
		<item>
		<title>What to expect from Grizzly-1 milestone</title>
		<link>http://fnords.wordpress.com/2012/11/23/what-to-expect-from-grizzly-1-milestone/</link>
		<comments>http://fnords.wordpress.com/2012/11/23/what-to-expect-from-grizzly-1-milestone/#comments</comments>
		<pubDate>Fri, 23 Nov 2012 14:14:29 +0000</pubDate>
		<dc:creator>Thierry Carrez</dc:creator>
				<category><![CDATA[Openstack]]></category>

		<guid isPermaLink="false">http://fnords.wordpress.com/?p=983</guid>
		<description><![CDATA[The first milestone of the OpenStack Grizzly development cycle is just out. What should you expect from it ? What significant new features were added ? The first milestones in our 6-month development cycles are traditionally not very featureful. That&#8217;s because we are just out of the previous release, and still working heavily on bugs [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=983&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The first milestone of the OpenStack Grizzly development cycle is <a href="http://lists.openstack.org/pipermail/openstack-announce/2012-November/000054.html" target="_blank">just out</a>. What should you expect from it ? What significant new features were added ?</p>
<p>The first milestones in our <a href="http://wiki.openstack.org/ReleaseCycle" target="_blank">6-month development cycles</a> are traditionally not very featureful. That&#8217;s because we are just out of the previous release, and still working heavily on bugs (this milestone packs 399 bugfixes !). It&#8217;s been only one month since we had our <a href="http://wiki.openstack.org/Summit" target="_blank">Design Summit</a>, so by the time we formalize its outcome into blueprints and roadmaps, we are just getting started with feature implementation. Nevertheless, it collects a lot of new features and bugfixes that landed in our master branches since mid-September, when we froze features in preparation for the Folsom release.</p>
<p><strong>Keystone</strong> is arguably where the most significant changes landed, with a <a href="https://blueprints.launchpad.net/keystone/+spec/implement-v3-core-api" target="_blank">tech preview of the new API version</a> (v3), with <a href="https://blueprints.launchpad.net/keystone/+spec/rbac-keystone-api" target="_blank">policy and RBAC access</a> enabled. A new <a href="https://blueprints.launchpad.net/keystone/+spec/ad-ldap-identity-backend" target="_blank">ActiveDirectory/LDAP identity backend</a> was also introduced, while the auth_token middleware is <a href="https://blueprints.launchpad.net/keystone/+spec/authtoken-to-keystoneclient-repo" target="_blank">now shipped</a> with the Python Keystone client.</p>
<p>In addition to fixing <a href="https://launchpad.net/nova/grizzly/grizzly-1" target="_blank">185 bugs</a>, the <strong>Nova</strong> crew <a href="https://blueprints.launchpad.net/nova/+spec/delete-nova-volume" target="_blank">removed nova-volume</a> code entirely (code was kept in Folsom for compatibility reasons, but was marked deprecated). Virtualization drivers <a href="https://blueprints.launchpad.net/nova/+spec/no-db-virt" target="_blank">no longer directly access the database</a>, as a first step towards completely <a href="https://blueprints.launchpad.net/nova/+spec/no-db-compute" target="_blank">isolating compute nodes from the database</a>. Snapshots are now <a href="https://blueprints.launchpad.net/nova/+spec/snapshots-for-everyone" target="_blank">supported on raw and LVM disks</a>, in addition to qcow2. On the hypervisors side, the Hyper-V driver grew <a href="https://blueprints.launchpad.net/nova/+spec/hyper-v-config-drive-v2" target="_blank">ConfigDrive v2 support</a>, while the XenServer one can now <a href="https://blueprints.launchpad.net/nova/+spec/xenserver-bittorrent-images" target="_blank">use BitTorrent </a>as an image delivery mechanism.</p>
<p>The <strong>Glance</strong> client is <a href="https://blueprints.launchpad.net/glance/+spec/separate-client" target="_blank">no longer copied</a> within Glance server (you can still find it with the Python client library), and the Glance <a href="https://blueprints.launchpad.net/glance/+spec/glance-simple-db-parity" target="_blank">SimpleDB driver reaches feature parity</a> with the SQLAlchemy based one. A number of cleanups were implemented in <strong>Cinder</strong>, including in <a href="https://blueprints.launchpad.net/cinder/+spec/driver-cleanup" target="_blank">volume drivers code layout</a> and <a href="https://blueprints.launchpad.net/cinder/+spec/cinder-apiv2" target="_blank">API versioning handling</a>.  Support for <a href="https://blueprints.launchpad.net/cinder/+spec/xenapi-storage-manager-nfs" target="_blank">XenAPI storage manager for NFS</a> is back, while the API grew a call to <a href="https://blueprints.launchpad.net/cinder/+spec/list-bootable-volumes" target="_blank">list bootable volumes</a> and a <a href="https://blueprints.launchpad.net/cinder/+spec/cinder-hosts-extension" target="_blank">hosts extension</a> to allow service status querying.</p>
<p>The <strong>Quantum</strong> crew was also quite busy. The <a href="https://blueprints.launchpad.net/quantum/+spec/ryu-plugin-update-for-ryu" target="_blank">Ryu plugin was updated</a> and now features <a href="https://blueprints.launchpad.net/quantum/+spec/ryu-tunnel-support" target="_blank">tunnel support</a>. The preparatory work to <a href="https://blueprints.launchpad.net/quantum/+spec/quantum-service-framework" target="_blank">add advanced services</a> was landed, as well as support for <a href="https://blueprints.launchpad.net/quantum/+spec/high-available-quantum-queues-in-rabbitmq" target="_blank">highly-available RabbitMQ queues</a>. Feature parity gap with nova-network was reduced by the introduction of a <a href="https://blueprints.launchpad.net/quantum/+spec/quantum-security-groups" target="_blank">Security Groups API</a>.</p>
<p><strong>Horizon</strong> saw a lot of changes under the hood, including <a href="https://blueprints.launchpad.net/horizon/+spec/unify-config" target="_blank">unified configuration</a>. It now supports <a href="https://blueprints.launchpad.net/horizon/+spec/flavor-extra-specs" target="_blank">Nova flavor extra specs</a>. As a first step towards providing cloud admins with more targeted information, a <a href="https://blueprints.launchpad.net/horizon/+spec/system-info-panel" target="_blank">system info panel</a> was added. <strong>Oslo</strong> (formerly known as openstack-common) also saw a number of improvements. The config module (cfg) was <a href="https://blueprints.launchpad.net/oslo/+spec/cfg-argparse" target="_blank">ported to argparse</a>. Common <a href="https://blueprints.launchpad.net/oslo/+spec/service-infrastructure" target="_blank">service management code</a> was pushed to the Oslo incubator, as well as a generic <a href="https://blueprints.launchpad.net/oslo/+spec/new-policy-language" target="_blank">policy engine</a>.</p>
<p>That&#8217;s only a fraction of what will appear in the final release of Grizzly, scheduled for April 2013. A lot of work was started in the last weeks but will only land in the next milestone. To get a glimpse of what&#8217;s coming up, you can follow the <a href="http://wiki.openstack.org/releasestatus/" target="_blank">Grizzly release status page</a> !</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/983/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/983/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=983&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://fnords.wordpress.com/2012/11/23/what-to-expect-from-grizzly-1-milestone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/080c91926d20cf646ad6a6fef8b34e82?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tcarrez</media:title>
		</media:content>
	</item>
		<item>
		<title>Why OpenStack doesn&#8217;t need a Linus Torvalds</title>
		<link>http://fnords.wordpress.com/2012/10/25/why-openstack-doesnt-need-a-linus-torvalds/</link>
		<comments>http://fnords.wordpress.com/2012/10/25/why-openstack-doesnt-need-a-linus-torvalds/#comments</comments>
		<pubDate>Thu, 25 Oct 2012 12:46:38 +0000</pubDate>
		<dc:creator>Thierry Carrez</dc:creator>
				<category><![CDATA[Open source]]></category>
		<category><![CDATA[Openstack]]></category>

		<guid isPermaLink="false">http://fnords.wordpress.com/?p=971</guid>
		<description><![CDATA[As comparing OpenStack with Linux becomes an increasingly popular exercise, it&#8217;s only natural that people and press articles start to ask where the Linus of OpenStack is, or who the Linus of OpenStack should be. This assumes that technical leaders could somehow be appointed in OpenStack. This assumes that the single dictator model is somehow [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=971&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>As comparing OpenStack with Linux becomes an <a href="http://www.devx.com/blog/is-openstack-the-linux-of-cloud.html" target="_blank">increasingly popular exercise</a>, it&#8217;s only natural that people and press articles start to ask where the Linus of OpenStack is, or <a href="http://www.networkworld.com/news/2012/102412-openstack-linus-263659.html?hpg1=bn" target="_blank">who the Linus of OpenStack</a> should be. This assumes that technical leaders could somehow be appointed in OpenStack. This assumes that the single dictator model is somehow reproducible or even desirable. And this assumes that the current technical leadership in OpenStack is somehow lacking. I think all those three assumptions are wrong.</p>
<p>Like Linux, OpenStack is an Open Innovation project: an independent, common technical playground that is not owned by a single company and where contributors form a meritocracy. Assuming you can somehow appoint leaders in such a setting shows a great ignorance of how those projects actually work. Leaders in an open innovation project don&#8217;t derive their authority from their title. They derive their authority from the respect that the other contributors have for them. If they lose this respect, their leadership will be disputed and you&#8217;ll face the risk of a fork. <strong>Project leaders are not appointed, they are grown.</strong> Linus wasn&#8217;t appointed, and he didn&#8217;t decide one day that he should lead Linux. He grew as the natural leader for this community over time.</p>
<p>Maybe people asking for a Linus of OpenStack like the idea of a single dictator sitting at the top. But that setup is <strong>not easily reproduced</strong>. Three conditions need to be met: you have to be the founder (or first developer) of the project, your project has to grow sufficiently slowly so that you can gather the undisputed respect of incoming new contributors, and you have to keep your hands deep in technical matters over time (to retain that respect). Linus checked all those boxes. In OpenStack, there were a number of developers involved in it from the start, and the project grew really fast, so a group of leaders emerged, rather than a single undisputed figure.</p>
<p>I&#8217;d also argue that the &#8220;single leader&#8221; model is <strong>not really desirable</strong>. OpenStack is not a single project, it&#8217;s a collection of projects. It&#8217;s difficult to find a respected expert in all areas, especially as we grew by including new projects within the OpenStack collection. In addition to that, Linux as a project still struggles with its <a href="http://en.wikipedia.org/wiki/Bus_factor" target="_blank">bus factor</a> of 1 and how it would survive Linus. Organizing your technical leadership in a way that makes it easier for leadership to transition to new figures makes a stronger and more durable community.</p>
<p>Finally, asking for a Linus of OpenStack is somehow implying that the current technical leadership is insufficient, which is at best ignorant, at worse insulting. Linus fills two roles within Linux: the <em>technical lead</em> role (final decision on technical matters, the buck stops here) and the <em>release management</em> role (coordinating the release development cycles and producing releases). OpenStack has project technical leads (&#8220;PTLs&#8221;) to fill the first role, and a (separate) release manager to fill the second. In addition to that, to solve cross-project issues, we have a <a href="https://www.openstack.org/foundation/technical-committee/" target="_blank">Technical Committee</a> (which happens to include the PTLs and release manager).</p>
<p>If you are under the impression that this multi-headed technical leadership might result in non-opiniated choices, think twice. The new governance model establishing the Technical Committee and the full authority of it over all technical matters in OpenStack is only a month old, previously the project (and its governance model) was still owned by a single company. The PTLs and Technical Committee members are highly independent and have the interests of the OpenStack project as their top priority. Most of them actually changed employers over the last year and continued to work on the project.</p>
<p>I think what the press and the pundits actually want is a more visible public figure, that would make stronger design choices, if possible with nice punch lines that would make <a href="http://en.wikiquote.org/wiki/Linus_Torvalds" target="_blank">good quotes</a>. It&#8217;s true that the explosive growth of the project did not leave a lot of time so far for technical leaders of OpenStack to engage with the press. It&#8217;s true that the OpenStack leadership tends to use friendly words and prefer consensus where possible, which may not result in memorable quotes. But confusing that with weakness is really a mistake. Technical leadership in OpenStack is just fine the way it is, thank you for asking.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/971/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/971/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=971&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://fnords.wordpress.com/2012/10/25/why-openstack-doesnt-need-a-linus-torvalds/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/080c91926d20cf646ad6a6fef8b34e82?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tcarrez</media:title>
		</media:content>
	</item>
		<item>
		<title>The value of Open Development</title>
		<link>http://fnords.wordpress.com/2012/10/23/the-value-of-open-development/</link>
		<comments>http://fnords.wordpress.com/2012/10/23/the-value-of-open-development/#comments</comments>
		<pubDate>Tue, 23 Oct 2012 15:57:08 +0000</pubDate>
		<dc:creator>Thierry Carrez</dc:creator>
				<category><![CDATA[Open source]]></category>
		<category><![CDATA[Openstack]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://fnords.wordpress.com/?p=963</guid>
		<description><![CDATA[Mark&#8217;s recent blogpost on Raring community skunkworks got me thinking. I agree it would be unfair to spin this story as Canonical/Ubuntu switching to closed development. I also agree that (as the damage control messaging was quick to point out) inviting some members of the community to participate in closed development projects is actually a [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=963&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Mark&#8217;s recent blogpost on <a href="http://www.markshuttleworth.com/archives/1200" target="_blank">Raring community skunkworks</a> got me thinking. I agree it would be unfair to spin this story as Canonical/Ubuntu switching to closed development. I also agree that (as the damage control messaging was <a href="http://www.markshuttleworth.com/archives/1207" target="_blank">quick to point out</a>) inviting some members of the community to participate in closed development projects is actually a step towards more openness rather than a step backwards.</p>
<p>That said, it certainly is making the &#8220;closed development&#8221; option more official and organized, which is not a step in the right direction in my opinion. It reinforces it as a perfectly valid option, while I would really like it to be an exception for corner cases. So at this point, it may be useful to insist a bit on the benefits of open development, and why dropping them might not be that good of an idea.</p>
<p><em>Open Development</em> is a transparent way of developing software, where source code, bugs, patches, code reviews, design discussions, meetings happen in the open and are accessible by everyone. &#8220;Open Source&#8221; is a prerequisite of open development, but you can certainly do open source without doing open development: that&#8217;s what I call <em>the Android model</em> and what others call <em>Open behind walls</em> model. You can go further than open development by also doing &#8220;Open Design&#8221;: letting an open community of equals discuss and define the future features your project will implement, rather than restricting that privilege to a closed group of &#8220;core developers&#8221;.</p>
<p>Open Development allows you to &#8220;release early, release often&#8221; and get the testing, QA, feedback of (all) your users. This is actually a good thing, not a bad thing. That feedback will help you catch corner cases, consider issues that you didn&#8217;t predict, get outside patches. More importantly, Open Development helps lowering the <em>barrier of entry</em> for contributors to your project. It blurs the line between consumers and producers of the software (no more &#8220;<em>us</em> vs. <em>them</em>&#8221; mentality), resulting in a much more engaged community. Inviting select individuals to have early access to features before they are unveiled sounds more like a proprietary model beta testing program to me. It won&#8217;t give you the amount of direct feedback and variety of contributors that open development gives you. Is the trade-off worth it ?</p>
<p>How much as I dislike the Android model, I understand that the ability for Google to give <em>some</em> select OEMs a bit of advance has <em>some</em> value. Reading Mark&#8217;s post though, it seems that the main benefits for Ubuntu are in avoiding early exposure of immature code and get more splash PR effect at release time. I personally think that short-term, the drop in QA due to reduced feedback will offset those benefits, and long-term, the resulting drop in community engagement will also make this a bad trade-off.</p>
<p>In OpenStack, we founded the project on <a href="http://wiki.openstack.org/Open" target="_blank">the Four Opens</a>: Open Source, Open Development, Open Design and Open Community. This early decision is what made OpenStack so successful as a community, not the &#8220;cloud&#8221; hype. Open Development made us very friendly to new developers wanting to participate, and once they experienced Open Design (as exemplified in our Design Summits) they were sold and turned into advocates of our model and our project within their employing companies. Open Development was really instrumental to OpenStack growth and adoption.</p>
<p>In summary, I think Open Development is good because you end up producing better software with a larger and more engaged community of contributors, and if you want to drop that advantage, you better have a very good reason.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/963/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/963/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=963&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://fnords.wordpress.com/2012/10/23/the-value-of-open-development/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/080c91926d20cf646ad6a6fef8b34e82?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tcarrez</media:title>
		</media:content>
	</item>
		<item>
		<title>Grizzly Design Summit schedule posted</title>
		<link>http://fnords.wordpress.com/2012/10/10/grizzly-design-summit-schedule-posted/</link>
		<comments>http://fnords.wordpress.com/2012/10/10/grizzly-design-summit-schedule-posted/#comments</comments>
		<pubDate>Wed, 10 Oct 2012 14:03:57 +0000</pubDate>
		<dc:creator>Thierry Carrez</dc:creator>
				<category><![CDATA[Openstack]]></category>

		<guid isPermaLink="false">http://fnords.wordpress.com/?p=957</guid>
		<description><![CDATA[Next week our community will gather in always-sunny San Diego for the OpenStack Summit. Our usual Design Summit is now a part of the general event: the Grizzly Design Summit sessions will run over the 4 days of the event ! We start Monday at 9am and finish Thursday at 5:40pm. The schedule is now [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=957&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Next week our community will gather in always-sunny San Diego for the <a href="http://www.openstack.org/summit/san-diego-2012/" target="_blank">OpenStack Summit</a>. Our usual <a href="http://wiki.openstack.org/Summit" target="_blank">Design Summit</a> is now a part of the general event: the <a href="http://wiki.openstack.org/Summit/Grizzly" target="_blank">Grizzly Design Summit</a> sessions will run over the 4 days of the event ! We start Monday at 9am and finish Thursday at 5:40pm. The schedule is now up at:</p>
<blockquote><p><a title="Design Summit schedule" href="http://openstacksummitfall2012.sched.org/overview/type/design+summit">http://openstacksummitfall2012.sched.org/overview/type/design+summit</a></p></blockquote>
<p>This link will only show you the <em>Design Summit</em> sessions. Click <a href="http://openstacksummitfall2012.sched.org/" target="_blank">here</a> for the complete schedule. Minor scheduling changes may still happen over the next days as people realize they are double-booked, but otherwise it&#8217;s pretty final now.</p>
<p>For newcomers, please note that the <em>Design Summit</em> is different from classic conferences or the other tracks of the OpenStack Summit. There are <strong>no formal presentations or speakers</strong>. The sessions at the <em>Design Summit</em> are open discussions between contributors on a specific development topic for the upcoming development cycle, moderated by a session lead. It is possible to prepare a few slides to introduce the current status and kick-off the discussion, but these should never be formal speaker-to-audience presentations.</p>
<p>I&#8217;ll be running the <a href="http://openstacksummitfall2012.sched.org/overview/type/design+summit/Process" target="_blank"><strong>Process</strong> topic</a>, which covers the development process and core infrastructure discussions. It runs Wednesday afternoon and all Thursday, and we have a pretty awesome set of stuff to discuss. Hope to see you there!</p>
<p>If you want to talk about something that is not covered elsewhere in the Summit, please note that we&#8217;ll have an <strong>Unconference</strong> room, open from Tuesday to Thursday. You can grab a 40-min slot there to present anything related to OpenStack! In addition to that, we&#8217;ll also have 5-min <strong>Lightning talks</strong> after lunch on Monday-Wednesday&#8230; where you can talk about anything you want. There will be a board posted on the Summit floor, first come, first serve <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>More details about the Grizzly Design Summit can be found <a href="http://wiki.openstack.org/Summit/Grizzly" target="_blank">on the wiki</a>. See you all soon!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/957/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/957/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=957&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://fnords.wordpress.com/2012/10/10/grizzly-design-summit-schedule-posted/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/080c91926d20cf646ad6a6fef8b34e82?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tcarrez</media:title>
		</media:content>
	</item>
		<item>
		<title>Folsom is just around the corner</title>
		<link>http://fnords.wordpress.com/2012/09/26/folsom-is-just-around-the-corner/</link>
		<comments>http://fnords.wordpress.com/2012/09/26/folsom-is-just-around-the-corner/#comments</comments>
		<pubDate>Wed, 26 Sep 2012 14:02:20 +0000</pubDate>
		<dc:creator>Thierry Carrez</dc:creator>
				<category><![CDATA[Openstack]]></category>

		<guid isPermaLink="false">http://fnords.wordpress.com/?p=951</guid>
		<description><![CDATA[It&#8217;s been a long time since my last blog post&#8230; I guess that cycle was busier for me than I expected, due to my involvement in the Foundation technical Committee setup. Anyway, we are now at the end of the 6-month Folsom journey for OpenStack core projects, a ride which involved more than 330 contributors, [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=951&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s been a long time since my last blog post&#8230; I guess that cycle was busier for me than I expected, due to my involvement in the Foundation technical Committee setup.</p>
<p>Anyway, we are now at the end of the 6-month Folsom journey for OpenStack core projects, a ride which involved more than <strong>330 contributors</strong>, implementing <strong>185 features</strong> and <strong>fixing more than 1400 bugs</strong> in core projects alone !</p>
<p>At release day -1 we have OpenStack 2012.2 (&#8220;Folsom&#8221;) release candidates published for all the components:</p>
<ul>
<li>OpenStack Compute (Nova), at <a href="https://launchpad.net/nova/folsom/folsom-rc3" target="_blank">RC3</a></li>
<li>OpenStack Networking (Quantum), at <a href="https://launchpad.net/quantum/folsom/folsom-rc3" target="_blank">RC3</a></li>
<li>OpenStack Identity (Keystone), at <a href="https://launchpad.net/keystone/folsom/folsom-rc2" target="_blank">RC2</a></li>
<li>OpenStack Dashboard (Horizon), at <a href="https://launchpad.net/horizon/folsom/folsom-rc2" target="_blank">RC2</a></li>
<li>OpenStack Block Storage (Cinder), at <a href="https://launchpad.net/cinder/folsom/folsom-rc3" target="_blank">RC3</a></li>
<li>OpenStack Storage (Swift) at version <a href="https://launchpad.net/swift/folsom/1.7.4" target="_blank">1.7.4</a></li>
</ul>
<p>We are expecting OpenStack Image Service (Glance) <a href="https://launchpad.net/glance/+milestone/folsom-rc3" target="_blank">RC3</a> later today !</p>
<p>Unless a critical, last-minute regression is found today in these proposed tarballs, they should form the official OpenStack 2012.2 release tomorrow ! Please take them for a last regression test ride, and don&#8217;t hesitate to ping us on IRC (#openstack-dev @ Freenode) or file bugs (tagged <em>folsom-rc-potential</em>) if you think you can convince us to reroll.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/951/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/951/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=951&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://fnords.wordpress.com/2012/09/26/folsom-is-just-around-the-corner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/080c91926d20cf646ad6a6fef8b34e82?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tcarrez</media:title>
		</media:content>
	</item>
		<item>
		<title>New nova-rootwrap landing in folsom-2</title>
		<link>http://fnords.wordpress.com/2012/07/02/new-nova-rootwrap-landing-in-folsom-2/</link>
		<comments>http://fnords.wordpress.com/2012/07/02/new-nova-rootwrap-landing-in-folsom-2/#comments</comments>
		<pubDate>Mon, 02 Jul 2012 11:52:30 +0000</pubDate>
		<dc:creator>Thierry Carrez</dc:creator>
				<category><![CDATA[Openstack]]></category>

		<guid isPermaLink="false">http://fnords.wordpress.com/?p=945</guid>
		<description><![CDATA[This Thursday we will publish our second milestone of the Folsom cycle for Nova. It will include a number of new features, including the one I worked on: a new, more configurable and extensible nova-rootwrap implementation. Here is what you should know about it, depending on whether you&#8217;re a Nova user, packager or developer ! [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=945&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p id="Architecture">This Thursday we will publish our second milestone of the Folsom cycle for Nova. It will include <a href="https://launchpad.net/nova/+milestone/folsom-2" target="_blank">a number of new features</a>, including the one I worked on: a new, more configurable and extensible nova-rootwrap implementation. Here is what you should know about it, depending on whether you&#8217;re a Nova user, packager or developer !</p>
<h4>Architecture</h4>
<h5 id="Purpose">Purpose</h5>
<p>The goal of the root wrapper is to allow the <em>nova</em> unprivileged user to run a number of actions as the <em>root</em> user, in the safest manner possible. Historically, Nova used a specific <em>sudoers</em> file listing every command that the <em>nova</em> user was allowed to run, and just used <strong>sudo</strong> to run that command as <em>root</em>. However this was difficult to maintain (the <em>sudoers</em> file was in packaging), and did not allow for complex filtering of parameters (advanced filters). The rootwrap was <a href="http://fnords.wordpress.com/2011/11/23/improving-nova-privilege-escalation-model-part-1/">designed</a> to solve those issues.</p>
<h5 id="How_rootwrap_works">How rootwrap works</h5>
<p>Instead of just calling <strong>sudo make me a sandwich</strong>, Nova calls <strong>sudo nova-rootwrap /etc/nova/rootwrap.conf make me a sandwich</strong>. A generic <em>sudoers</em> entry lets the <em>nova</em> user run <strong>nova-rootwrap</strong> as <em>root</em>. nova-rootwrap looks for filter definition directories in its configuration file, and loads <strong>command filters</strong> from them. Then it checks if the command requested by Nova matches one of those filters, in which case it executes the command (as <em>root</em>). If no filter matches, it denies the request.</p>
<h5 id="Security_model">Security model</h5>
<p>The escalation path is fully controlled by the <em>root</em> user. A <em>sudoers</em> entry (owned by <em>root</em>) allows <em>nova</em> to run (as <em>root</em>) a specific rootwrap executable, and only with a specific configuration file (which should be owned by <em>root</em>). nova-rootwrap imports the Python modules it needs from a cleaned (and system-default) PYTHONPATH. The configuration file (also <em>root</em>-owned) points to <em>root</em>-owned filter definition directories, which contain <em>root</em>-owned filters definition files. This chain ensures that the <em>nova</em> user itself is not in control of the configuration or modules used by the nova-rootwrap executable.</p>
<h4 id="Rootwrap_for_users">Rootwrap for users: Nova configuration</h4>
<p>Nova must be configured to use nova-rootwrap as its <em>root_helper</em>. You need to set the following in <strong>nova.conf</strong>:</p>
<pre>root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf</pre>
<p>The configuration file (and executable) used here must match the one defined in the <em>sudoers</em> entry (see below), otherwise the commands will be rejected !</p>
<h4 id="Rootwrap_for_packagers">Rootwrap for packagers</h4>
<h5 id="Sudoers_entry">Sudoers entry</h5>
<p>Packagers need to make sure that Nova nodes contain a <em>sudoers</em> entry that lets the <em>nova</em> user run nova-rootwrap as <em>root</em>, pointing to the <em>root</em>-owned rootwrap.conf configuration file and allowing any parameter after that:</p>
<pre>nova ALL = (root) NOPASSWD: /usr/bin/nova-rootwrap /etc/nova/rootwrap.conf *</pre>
<h5 id="Filters_path">Filters path</h5>
<p>Nova looks for a <em>filters_path</em> in <strong>rootwrap.conf</strong>, which contains the directories it should load filter definition files from. It is recommended that Nova-provided filters files are loaded from <strong>/usr/share/nova/rootwrap</strong> and extra user filters files are loaded from <strong>/etc/nova/rootwrap.d</strong>.</p>
<pre>[DEFAULT]
filters_path=/etc/nova/rootwrap.d,/usr/share/nova/rootwrap</pre>
<p>Directories defined on this line should all exist, be owned and writeable only by the <em>root</em> user.</p>
<h5 id="Filter_definitions">Filter definitions</h5>
<p>Finally, packaging needs to install, for each node, the filters definition file that corresponds to it. You should <strong>not</strong> install any other filters file on that node, otherwise you would allow extra unneeded commands to be run by <em>nova</em> as <em>root</em>.</p>
<p>The filter file corresponding to the node must be installed in one of the <em>filters_path</em> directories (preferably /usr/share/nova/rootwrap). For example, on compute nodes, you should only have /usr/share/nova/rootwrap/compute.filters. The file should be owned and writeable only by the <em>root</em> user.</p>
<p>All filter definition files can be found in Nova source code under etc/nova/rootwrap.d.</p>
<h4 id="Rootwrap_for_plug-in_writers">Rootwrap for plug-in writers: adding new run-as-root commands</h4>
<p>Plug-in writers may need to have the <em>nova</em> user run additional commands as <em>root</em>. They should use nova.utils.execute(run_as_root=True) to achieve that. They should create their own filter definition file and install it (owned and writeable only by the <em>root</em> user !) into one of the <em>filters_path</em> directories (preferably /etc/nova/rootwrap.d). For example the foobar plugin could define its extra filters in a /etc/nova/rootwrap.d/foobar.filters file.</p>
<p>The format of the filter file is defined <a href="http://wiki.openstack.org/Nova/Rootwrap#Reference" target="_blank">here</a>.</p>
<h4 id="Rootwrap_for_core_developers">Rootwrap for core developers</h4>
<h5 id="Adding_new_run-as-root_commands-1">Adding new run-as-root commands</h5>
<p>Core developers may need to have the <em>nova</em> user run additional commands as <em>root</em>. They should use nova.utils.execute(run_as_root=True) to achieve that, and add a filter for the command they need in the corresponding etc/nova/rootwrap.d/ .filters file in Nova&#8217;s source code. For example, to add a command that needs to be tun by network nodes, they should modify the etc/nova/rootwrap.d/network.filters file.</p>
<p>The format of the filter file is defined <a href="http://wiki.openstack.org/Nova/Rootwrap#Reference" target="_blank">here</a>.</p>
<h5 id="Adding_your_own_filter_types">Adding your own filter types</h5>
<p>The default filter type, CommandFilter, is pretty basic. It only checks that the command name matches, it does not perform advanced checks on the command arguments. A number of other more command-specific filter types are available, see <a href="http://wiki.openstack.org/Nova/Rootwrap#Reference" target="_blank">here</a>.</p>
<p>That said, you can easily define new filter types to further control what exact command you actually allow the <em>nova</em> user to run as <em>root</em>. See nova/rootwrap/filters.py for details.</p>
<p>This documentation, together with a reference section detailing the file formats, is available <a href="http://wiki.openstack.org/Nova/Rootwrap" target="_blank">on the wiki</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/945/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/945/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&#038;blog=6252617&#038;post=945&#038;subd=fnords&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://fnords.wordpress.com/2012/07/02/new-nova-rootwrap-landing-in-folsom-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/080c91926d20cf646ad6a6fef8b34e82?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tcarrez</media:title>
		</media:content>
	</item>
	</channel>
</rss>
