<?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/"
	>

<channel>
	<title>mrz&#039;s noise &#187; Mozilla</title>
	<atom:link href="http://blog.mozilla.com/mrz/category/mozilla/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mozilla.com/mrz</link>
	<description>noise from a mozilla IT/Operations wrangler</description>
	<lastBuildDate>Thu, 22 Oct 2009 23:07:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Geolocation &amp; Zeus ZXTM 6.0</title>
		<link>http://blog.mozilla.com/mrz/2009/10/22/geolocation-zeus-zxtm-6-0/</link>
		<comments>http://blog.mozilla.com/mrz/2009/10/22/geolocation-zeus-zxtm-6-0/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 23:07:29 +0000</pubDate>
		<dc:creator>mrz</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[load balancing]]></category>
		<category><![CDATA[zeus zxtm geo]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/mrz/?p=629</guid>
		<description><![CDATA[Mozilla&#8217;s North American store has been down in maintenance mode (you can read about the why) but not the International Store.  
The old store used to redirect non-North American users to the International Store, but unfortunately that redirect wasn&#8217;t carried over when we took the store offline.  
I was inspired Sunday night to [...]]]></description>
			<content:encoded><![CDATA[<p>Mozilla&#8217;s <a href="http://store.mozilla.org/">North American store</a> has been down in maintenance mode (you can read about the <a href="http://blog.mozilla.com/blog/2009/08/04/mozilla-store-vendor-security-breach/">why</a>) but not the <a href="http://intlstore.mozilla.org/">International Store</a>.  </p>
<p>The old store used to redirect non-North American users to the <a href="http://intlstore.mozilla.org/">International Store</a>, but unfortunately that redirect wasn&#8217;t carried over when we took the store offline.  </p>
<p>I was inspired Sunday night to put together a ZXTM TrafficScript rule based off the <a href="http://knowledgehub.zeus.com/articles/2007/09/18/geolocation">code sample</a> on Zeus&#8217;s knowledgehub (and because of bug <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=521914">521914</a>).</p>
<p>And then on Wednesday Zeus finally released <a href="http://knowledgehub.zeus.com/news/2009/10/20/zeus_traffic_manager_6_0_released">ZXTM 6.0</a> <i>with</i> geolocation support!</p>
<p>What was 40 some lines of code is now like 5.</p>
<p><b>Before:</b></p>
<blockquote>
<pre>
$ipaddr = request.getRemoteIP();

# Integer representation of $ipaddr >> 1
string.regexmatch( $ipaddr, "(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)" );
$ip = ((($1*256+$2)*256+$3)*128+$4/2);

$arr = resource.get( "geoip.dat" );

# initialize indices
$i = 0; $j = string.len( $arr )/6-1;

# $arr[$i] <= $ip < $arr[$j]
# iteratively halve the distance between $i and $j until they are adjacent

while( $j-$i > 1 ) {
   # midpoint between $i and $j
   $k = ($i+$j)/2;

   # compare $ip with $arr[$k]
   if( string.bytesToInt( string.subString( $arr, $k*6, $k*6+3 ) ) > $ip ) {
      $j = $k;
   } else {
      $i = $k;
   }
}

# Now, $arr[$i] <= $ip < $arr[$j] and $j == $i+1
# Look up the 2-character country code (returns '??' if unknown)
$ccode = string.subString( $arr, $i*6+4, $i*6+5 );

if ( ($ccode != "US") &#038;&#038; ($ccode != "CA") ) {
}
else {
   http.redirect("https://intlstore.mozilla.org/");
}
</pre>
</blockquote>
<p><b>After:</b></p>
<blockquote>
<pre>
$ipaddr = request.getRemoteIP();

$country = geo.getCountryCode( $ipaddr );

if ( ($country != "US") &#038;&#038; ($country != "CA") ) {
      http.redirect("https://intlstore.mozilla.org/");
}
​</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/mrz/2009/10/22/geolocation-zeus-zxtm-6-0/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>2 seconds.</title>
		<link>http://blog.mozilla.com/mrz/2009/09/18/2-seconds/</link>
		<comments>http://blog.mozilla.com/mrz/2009/09/18/2-seconds/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 16:26:34 +0000</pubDate>
		<dc:creator>mrz</dc:creator>
				<category><![CDATA[Amsterdam]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/mrz/?p=548</guid>
		<description><![CDATA[2 seconds.
That&#8217;s the amount of time we shaved off average page load times for addons.mozilla.org after last night&#8217;s work.  The Amsterdam Reboot in effect!

It&#8217;s been nearly ten months since we served production traffic at these levels out of Amsterdam.

]]></description>
			<content:encoded><![CDATA[<p>2 seconds.</p>
<p>That&#8217;s the amount of time we shaved off average page load times for addons.mozilla.org after <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=514994">last night&#8217;s work</a>.  <a href="http://blog.mozilla.com/mrz/2009/08/24/the-amsterdam-reboot/">The Amsterdam Reboot</a> in effect!</p>
<p style="text-align: center;"><a href="http://blog.mozilla.com/mrz/files/2009/09/amo-gomez-amszlb.png"><img class="aligncenter size-full wp-image-561" title="amo-gomez-clip" src="http://blog.mozilla.com/mrz/files/2009/09/amo-gomez-clip.png" alt="amo-gomez-clip" width="793" height="112" /></a></p>
<p>It&#8217;s been nearly ten months since we served production traffic at these levels out of Amsterdam.</p>
<p><a href="http://blog.mozilla.com/mrz/files/2009/09/zxtmstatd.png"><img class="aligncenter size-full wp-image-552" title="AMO Traffic" src="http://blog.mozilla.com/mrz/files/2009/09/zxtmstatd.png" alt="AMO Traffic" width="600" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/mrz/2009/09/18/2-seconds/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Amsterdam Reboot</title>
		<link>http://blog.mozilla.com/mrz/2009/08/24/the-amsterdam-reboot/</link>
		<comments>http://blog.mozilla.com/mrz/2009/08/24/the-amsterdam-reboot/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 16:09:43 +0000</pubDate>
		<dc:creator>mrz</dc:creator>
				<category><![CDATA[Amsterdam]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[citrix]]></category>
		<category><![CDATA[netscaler]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/mrz/?p=513</guid>
		<description><![CDATA[Three years ago this coming December I went to Amsterdam and installed our first non-US data center location.
I remember coming back and was up late at night (fighting jetlag) setting up the Netscaler load balancers.  By early January we had a CVS mirror up and running and a week later had staged www.mozilla.com and [...]]]></description>
			<content:encoded><![CDATA[<p>Three years ago this coming December I went to Amsterdam and installed our first non-US data center location.</p>
<p>I remember coming back and was up late at night (fighting jetlag) setting up the Netscaler load balancers.  By early January we had a <a href="https://wiki.mozilla.org/WeeklyUpdates/2007-01-08#IT">CVS mirror</a> up and running and <a href="https://wiki.mozilla.org/WeeklyUpdates/2007-01-22#IT">a week later</a> had staged <a href="http://www.mozilla.com"><code>www.mozilla.com</code></a> and <a href="www.mozilla.org"><code>www.mozilla.org</code></a> in Amsterdam.  By the <a href="https://wiki.mozilla.org/WeeklyUpdates/2007-02-12#IT">middle of February</a> we had shifted European production traffic over to Amsterdam.</p>
<p>By <a href="http://blog.mozilla.com/mrz/2007/05/07/where-in-the-world-is-amo/">May of 2007</a> (oh and <a href="http://blog.mozilla.com/mrz/2007/05/01/how-do-you-get-a-dynamic-website-in-another-country-without-any-servers/">here</a>) we started serving <a href="https://addons.mozilla.org/"><code>addons.mozilla.org</code></a> out of Amsterdam too.</p>
<p>Since then, the San Jose data center has grown from seven racks to twenty-four and nearly 500 servers (for the sake of this post I&#8217;m counting the <a href="http://blog.mozilla.com/mrz/2008/06/12/i-want-to-rack-80-mac-minis/">150 Mac Minis</a> as &#8220;servers&#8221;).</p>
<p>Unfortunately, Amsterdam hasn&#8217;t seen the same sort of server growth and in the past half year or so we&#8217;ve had to pull sites back from Amsterdam and serve them from San Jose only.  When the load balancers there could no longer handle the SSL traffic <a href="http://blog.mozilla.com/mrz/2008/12/04/load-balancer-performance-issues-fxfeedsmozillaorg-versioncheck/">in January</a> we stopped serving <a href="https://addons.mozilla.org/"><code>addons.mozilla.org</code></a> out of Amsterdam too.</p>
<p><strong>The Reboot</strong></p>
<blockquote><p>
On September 2, we&#8217;ll reboot Amsterdam.  Much like <a href="http://en.wikipedia.org/wiki/The_Six_Million_Dollar_Man">The Six Million Dollar Man</a>, &#8220;&#8230;  we can rebuild [it]. We have the technology&#8230; We can make [it] better than [it] was before. Better, stronger, faster.&#8221;</p>
<p>This morning we shipped a half loaded HP c7000 BladeSystems chassis out to Amsterdam.  Next week both Arzhel and Derek will be in Amsterdam to deploy new servers and turn down some of the old legacy hardware.</p>
<p style="text-align: center;"><img class="size-medium wp-image-526 alignnone" title="c7000, ready to go" src="http://blog.mozilla.com/mrz/files/2009/08/c7000-packed-300x225.jpg" alt="c7000, ready to go" width="300" height="225" /></p>
<p>One of the issues with the current Amsterdam deployment is that we can only really serve <i>static</i> sites &#8211; sites that don&#8217;t have a database behind them.  It&#8217;s a bit more complicated to replicate databases to remote locations <i>and</i> keep them in sync with San Jose. </p>
<p>Based on our success with the Zeus ZXTM platform, we&#8217;re deploying a Nehalem based ZXTM cluster.  Much like we <a href="http://blog.mozilla.com/mrz/2007/06/13/where-in-the-world-is-amo-part-v-it%E2%80%99s-live-again/">originally did</a> with <a href="https://addons.mozilla.org/"><code>addons.mozilla.org</code></a>, we&#8217;ll have a platform where we can proxy/cache any Mozilla website and serve it out of Amsterdam.</p>
<p>We&#8217;ll also be deploying a new<a href="http://www.zeus.com/products/zxtmglb/"> global load balancing</a> system that Arzhel&#8217;s spent time staging and getting ready for production.
</p></blockquote>
<p><strong>The Plan</strong></p>
<blockquote><p>
During tomorrow night&#8217;s downtime window we&#8217;ll start the process of temporarily shutting down Amsterdam.  We&#8217;ll pull back all websites to San Jose and stop serving web content out of Amsterdam for about two weeks.</p>
<p>We&#8217;re doing this in advance of the actual deployment to make sure we don&#8217;t hit any surprises.
</p></blockquote>
<p><strong>What won&#8217;t be affected?</strong></p>
<blockquote><p>
There are two VMware ESX servers in Amsterdam that we won&#8217;t be touching.  A quick list of hosts that won&#8217;t be affected by this are:</p>
<ul>
<li><tt>dn-vcs01</tt>
<li><tt>gravel</tt>
<li><tt>geodns02</tt>
<li><tt>l10n-01</tt>
<li><tt>rhino01</tt>
<li><tt>sea-qm-centos5-01</tt>
<li><tt>sea-qm-win2k3-01</tt>
<li><tt>konigsberg</tt>
</ul>
</blockquote>
<p>I&#8217;m excited about this.  I&#8217;ve said before I&#8217;m still a network guy at heart and I really like getting content closer to consumers.  I&#8217;m hoping this Reboot becomes an easily deployable platform for other parts of the globe.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/mrz/2009/08/24/the-amsterdam-reboot/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My Twitter Experiment, @mozdashboard.</title>
		<link>http://blog.mozilla.com/mrz/2009/06/27/my-twitter-experiment-mozdashboard/</link>
		<comments>http://blog.mozilla.com/mrz/2009/06/27/my-twitter-experiment-mozdashboard/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 06:17:59 +0000</pubDate>
		<dc:creator>mrz</dc:creator>
				<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/mrz/?p=499</guid>
		<description><![CDATA[I was recently inspired by morgamic&#8217;s Org Chart coding exercise and that got me thinking about an article I read some months ago about Zeus&#8217; ZXTM triggers.
After a couple hours this week re-learning Perl and learning SOAP I have something that I think is cool - @mozdashboard!
I experimented a bit earlier in this week before [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently inspired by <a href="http://http://morgamic.com/tag/mozilla//">morgamic&#8217;s</a> Org Chart coding exercise and that got me thinking about an <a href="http://knowledgehub.zeus.com/articles/2008/12/15/zxtms_like_to_tweet_too">article I read some months ago about Zeus&#8217; ZXTM triggers</a>.</p>
<p>After a couple hours this week re-learning Perl and learning SOAP I have something that I think is cool<code> - </code><a href="http://twitter.com/mozdashboard"><code>@mozdashboard</code></a>!</p>
<p>I experimented a bit earlier in this week before Zandr gave me an idea of what I was really looking for with this.  This version keeps state using <a href="http://search.cpan.org/~wadg/Config-IniFiles-2.38/IniFiles.pm">Config::IniFiles</a> (yeah, I said it and it was surely an easy way out) and tweets when it detects new highs.</p>
<p><code>zxtmtwitter.pl</code> tracks the following sites:</p>
<ol>
<li><a href="https://addons.mozilla.org/"><code>addons.mozilla.org</code></a></li>
<li><code>versioncheck.addons.mozilla.org</code></li>
<li><code>fxfeeds.mozilla.com</code></li>
</ol>
<p>It&#8217;ll tweet if it detects a new bandwidth high (either inbound or outbound) or a new simultaneous current connection count.</p>
<p>The program&#8217;s not without some faults &#8211; I&#8217;m not accounting for any counter wraps and I&#8217;m not happy with some of the hackery to poll each ZXTM node (I can&#8217;t find a way to poll one and get the cluster aggregates).</p>
<p>Code and .ini below the fold.</p>
<p><span id="more-499"></span></p>
<p><span style="text-decoration: underline;">Config File (<code>zxtm.ini</code>):</span></p>
<pre>[addons.mozilla.org]
vserver=addons-ssl
maxconnections=37327
bytesOut=39293647822458
bytesIn=4266246130636
timestamp=1246168046
maxbpsOut=82
maxbpsIn=8

[versioncheck.amo]
vserver=versioncheck.addons.mozilla.org
maxconnections=18556
bytesOut=6227643301317
bytesIn=4356691185954
timestamp=1246168043
maxbpsOut=11
maxbpsIn=8

[fxfeeds.mozilla.com]
vserver=fxfeeds
maxconnections=145780
bytesOut=7943190385192
bytesIn=6738548312076
timestamp=1246168041
maxbpsOut=17
maxbpsIn=14</pre>
<p><span style="text-decoration: underline;">Perl code (<code>zxtmtwitter.pl</code>):</span></p>
<pre>#!/usr/bin/perl

use warnings;
use strict;
use Config::IniFiles;
use SOAP::Lite 0.60;

my $DEBUG = 0;

## twitter
     my $tweetusr="mozdashboard";
     my $tweetpwd="myPassword";
     my $updateURL="http://twitter.com/statuses/update.xml";
##

## ZXTM
     my $admin_server = 'https://myUser:myPassword';

my $conn1 = SOAP::Lite -&gt; uri('http://soap.zeus.com/zxtm/1.0/System/Stats/') -&gt; proxy("$admin_server\@zlb01:9090/soap");
my $conn2 = SOAP::Lite -&gt; uri('http://soap.zeus.com/zxtm/1.0/System/Stats/') -&gt; proxy("$admin_server\@zlb02:9090/soap");
my $conn3 = SOAP::Lite -&gt; uri('http://soap.zeus.com/zxtm/1.0/System/Stats/') -&gt; proxy("$admin_server\@zlb03:9090/soap");
my $conn4 = SOAP::Lite -&gt; uri('http://soap.zeus.com/zxtm/1.0/System/Stats/') -&gt; proxy("$admin_server\@zlb04:9090/soap");
my $conn5 = SOAP::Lite -&gt; uri('http://soap.zeus.com/zxtm/1.0/System/Stats/') -&gt; proxy("$admin_server\@zlb05:9090/soap");

my %ini;
tie %ini, 'Config::IniFiles', ( -file =&gt; "zxtm.ini" );

# loop through each section
foreach( keys %ini ) {
     my @vserverArray;
     my $timeStamp = time();

     print "Found section [ $_ ], " if $DEBUG;

     my $vserver = $ini{$_}{"vserver"};
     print "vserver == $vserver\n" if $DEBUG;

     my $old_Max = $ini{$_}{"maxconnections"};
     my $old_BytesOut = $ini{$_}{"bytesOut"};
     my $old_BytesIn = $ini{$_}{"bytesIn"};
     my $old_MaxBpsOut = $ini{$_}{"maxbpsOut"};
     my $old_MaxBpsIn = $ini{$_}{"maxbpsIn"};
     my $old_Timestamp = $ini{$_}{"timestamp"};

     undef @vserverArray;
     push @vserverArray, $vserver;

     my $max = &amp;getMaxConn([@vserverArray]);
     my $BytesOut = &amp;getBytesOut([@vserverArray]);
     my $BytesIn = &amp;getBytesIn([@vserverArray]);

     print "\tmaxConn = $max ($old_Max)\n " if $DEBUG;

     my $timeDiff = $timeStamp - $old_Timestamp;

     # The number eight keeps rendering as a smiley face.
     # I replaced eight with (4*2) so it doesn't look stupid.
     my $bpsOut = int((($BytesOut - $old_BytesOut) * (4*2)) / $timeDiff / 1024 / 1024);
     my $bpsIn = int((($BytesIn - $old_BytesIn) * (4*2)) / $timeDiff / 1024 / 1024);
     print "\t$bpsOut Mbps out ($old_MaxBpsOut), $bpsIn Mbps in ($old_MaxBpsIn)\n" if $DEBUG;

     # store new values
     $ini{$_}{"bytesOut"} = $BytesOut;
     $ini{$_}{"bytesIn"} = $BytesIn;
     $ini{$_}{"timestamp"} = $timeStamp;

     if ($max &gt; $old_Max) {
          &amp;tweet("$_ had a new Current Connections high @ $max (prev $old_Max)!");
          $ini{$_}{"maxconnections"} = $max;
     }

     if ($bpsOut &gt; $old_MaxBpsOut) {
          &amp;tweet ("$_ had a new Output Bandwidth High @ $bpsOut Mbps (prev $old_MaxBpsOut)!");
          $ini{$_}{"maxbpsOut"} = $bpsOut;
     }
     if ($bpsIn &gt; $old_MaxBpsIn) {
          &amp;tweet("$_ had a new Inbound Bandwidth High @ $bpsIn Mbps (prev $old_MaxBpsIn)!");
          $ini{$_}{"maxbpsIn"} = $bpsIn;
     }

     # update .ini
     tied( %ini )-&gt;WriteConfig( "zxtm.ini" ) ||     die "Could not write settings to new file.";

     print "\n" if $DEBUG;

     # add a line break for readability
     print "\n" if $DEBUG;

}

sub getMaxConn {
     my @vs = @_;
     my $total;
     my $res;

     $res = $conn1-&gt;getVirtualserverMaxConn(@vs); $total += $res-&gt;result-&gt;[0];
     $res = $conn2-&gt;getVirtualserverMaxConn(@vs); $total += $res-&gt;result-&gt;[0];
     $res = $conn3-&gt;getVirtualserverMaxConn(@vs); $total += $res-&gt;result-&gt;[0];
     $res = $conn4-&gt;getVirtualserverMaxConn(@vs); $total += $res-&gt;result-&gt;[0];
     $res = $conn5-&gt;getVirtualserverMaxConn(@vs); $total += $res-&gt;result-&gt;[0];

     $total;
}

sub getBytesOut {
     my @vs = @_;
     my $total;
     my $res;

     $res = $conn1-&gt;getVirtualserverBytesOut(@vs); $total += $res-&gt;result-&gt;[0];
     $res = $conn2-&gt;getVirtualserverBytesOut(@vs); $total += $res-&gt;result-&gt;[0];
     $res = $conn3-&gt;getVirtualserverBytesOut(@vs); $total += $res-&gt;result-&gt;[0];
     $res = $conn4-&gt;getVirtualserverBytesOut(@vs); $total += $res-&gt;result-&gt;[0];
     $res = $conn5-&gt;getVirtualserverBytesOut(@vs); $total += $res-&gt;result-&gt;[0];

     $total;

}

sub getBytesIn {
     my @vs = @_;
     my $total;
     my $res;

     $res = $conn1-&gt;getVirtualserverBytesIn(@vs); $total += $res-&gt;result-&gt;[0];
     $res = $conn2-&gt;getVirtualserverBytesIn(@vs); $total += $res-&gt;result-&gt;[0];
     $res = $conn3-&gt;getVirtualserverBytesIn(@vs); $total += $res-&gt;result-&gt;[0];
     $res = $conn4-&gt;getVirtualserverBytesIn(@vs); $total += $res-&gt;result-&gt;[0];
     $res = $conn5-&gt;getVirtualserverBytesIn(@vs); $total += $res-&gt;result-&gt;[0];

     $total;
}

sub tweet {
     my $message = shift;
     print "\ttweet: $message\n" if $DEBUG;

     my $browser = LWP::UserAgent-&gt;new;
     $browser-&gt;agent('ZXTM Eventing System');
     $browser-&gt;credentials(
          'twitter.com:80',
          'Twitter API',
          $tweetusr =&gt; $tweetpwd
);

     my $response = $browser-&gt;post( $updateURL, [ status =&gt; $message ] );

     #print $response-&gt;status_line;
     #print $response-&gt;content;

}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/mrz/2009/06/27/my-twitter-experiment-mozdashboard/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Knock on wood.</title>
		<link>http://blog.mozilla.com/mrz/2009/06/12/knock-on-wood/</link>
		<comments>http://blog.mozilla.com/mrz/2009/06/12/knock-on-wood/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 17:32:22 +0000</pubDate>
		<dc:creator>mrz</dc:creator>
				<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/mrz/?p=497</guid>
		<description><![CDATA[
10:27 < mrz> are we -sure- we're in the middle of a 3.0.11 release?
10:27 < reed> yes, #mirrors is lively
10:27 < mrz> i don't see anything melting down

]]></description>
			<content:encoded><![CDATA[<pre>
10:27 < mrz> are we -sure- we're in the middle of a 3.0.11 release?
10:27 < reed> yes, #mirrors is lively
10:27 < mrz> i don't see anything melting down
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/mrz/2009/06/12/knock-on-wood/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IT/Ops, now supporting more timezones!</title>
		<link>http://blog.mozilla.com/mrz/2009/06/01/itops-now-supporting-more-timezones/</link>
		<comments>http://blog.mozilla.com/mrz/2009/06/01/itops-now-supporting-more-timezones/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 19:47:06 +0000</pubDate>
		<dc:creator>mrz</dc:creator>
				<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/mrz/?p=494</guid>
		<description><![CDATA[Although Mozilla&#8217;s IT/Ops Team supports a worldwide user base, we&#8217;re all located in North America.  That&#8217;s increasingly become a challenge as we have more employees, l10n folk and users living outside of North America.
So it&#8217;s with a lot of excitement that I get to electronically introduce Shyam, who joins IT/Ops today.  Shyam lives [...]]]></description>
			<content:encoded><![CDATA[<p>Although Mozilla&#8217;s IT/Ops Team supports a worldwide user base, we&#8217;re all located in North America.  That&#8217;s increasingly become a challenge as we have more employees, l10n folk and users living outside of North America.</p>
<p>So it&#8217;s with a lot of excitement that I get to electronically introduce Shyam, who joins IT/Ops today.  Shyam lives and breathes in Singapore and is our first non-US based IT/Ops member.  He will make supporting our worldwide users easier and especially help support Europe/Asia in more real-time.</p>
<p>If you happen to live nearby, hopefully you&#8217;ll get a chance to meet him.  For all those remote, I&#8217;m sure you&#8217;ll find him online at all the usual IT/Ops hangouts.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/mrz/2009/06/01/itops-now-supporting-more-timezones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mozilla, Firefox, &#8220;fixing computers&#8221; &amp; a room full of kindergartners</title>
		<link>http://blog.mozilla.com/mrz/2009/05/20/mozilla-firefox-fixing-computers-a-room-full-of-kindergartners/</link>
		<comments>http://blog.mozilla.com/mrz/2009/05/20/mozilla-firefox-fixing-computers-a-room-full-of-kindergartners/#comments</comments>
		<pubDate>Thu, 21 May 2009 03:58:59 +0000</pubDate>
		<dc:creator>mrz</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Non Work]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/mrz/?p=468</guid>
		<description><![CDATA[My son has a vague concept of what I do at work.  He knows I work at &#8220;Firefox&#8221;, knows the dino and knows I &#8220;fix computers&#8221;.
He knows that if he wants to get online he has to double-click on the Firefox icon and then on the Kidzui icon:
He asked me if I could come [...]]]></description>
			<content:encoded><![CDATA[<p>My son has a vague concept of what I do at work.  He knows I work at &#8220;Firefox&#8221;, knows the <a href="http://en.wikipedia.org/wiki/File:Mozilla_Mascot.svg">dino</a> and knows I &#8220;fix computers&#8221;.</p>
<p>He knows that if he wants to get online he has to double-click on the Firefox icon and then on the <a href="http://www.kidzui.com/">Kidzui</a> icon:<a href="http://blog.mozilla.com/mrz/files/2009/05/kidzui-toolbar.png"><img src="http://blog.mozilla.com/mrz/files/2009/05/kidzui-toolbar.png" alt="kidzui-toolbar" /></a></p>
<p>He asked me if I could come to his school and show people how I &#8220;fix computers&#8221;.</p>
<p>I started off by asking if anyone recognized the logo on the back of my shirt.  Even to a room full of 5 year olds, the Firefox logo was instantly recognizable &#8211; there wasn&#8217;t anyone who <i>didn&#8217;t know</i> what it was.  I talked briefly about what Mozilla did (&#8221;we make a web browser&#8221;) and that I help fix computers when they break.  </p>
<p>I thought about showing them Mitchell&#8217;s <a href="http://blog.lizardwrangler.com/2008/07/29/the-mozilla-tree/">Mozilla Tree</a> but probably couldn&#8217;t have done as well as Mitchell could have! </p>
<p>Then I pulled out my laptop and showed them Firefox (Minefield really).  I was in the middle of showing them Firefox and how what my son does when he wants to get on the Internet&#8230; and Minefield crashed.  Which was a great segue into &#8220;lets go look at these computers I brought and how I fix them!&#8221;</p>
<p>I brought three old Celeron &#8220;servers&#8221; (you can hardly call a Celeron a server) with lids off and we spent the next 20 minutes taking apart the machines.  We took out the computer&#8217;s brain and the fan to keep it cool (they didn&#8217;t believe me that you could cook food on the CPU when the computer was &#8220;thinking hard&#8221;).  We took out the two memory sticks and the hard drive and the IDE cable.  </p>
<p>These are things most parents in their right mind wouldn&#8217;t do with their home computer and these kids really enjoyed physically touching these parts and asking questions.
</p>
<p>Mary Colvig helped me gather up a bunch of Firefox bags and my two kids and I had stuffed stickers into each one.  Kids went crazy over the <a href="http://www.foxkeh.com/">Foxkeh</a> stickers and there was a collective &#8220;awwww!&#8221; when I showed them the <a href="https://developer.mozilla.org/en/Promote_MDC">&#8220;don&#8217;t hurt the web&#8221;</a> stickers!</p>
<p>Anyways, good times.  I enjoyed talking about Mozilla in a very different setting than I&#8217;m used to.</p>

<a href='http://blog.mozilla.com/mrz/2009/05/20/mozilla-firefox-fixing-computers-a-room-full-of-kindergartners/dsc_0027/' title='Who knows this logo?'><img width="150" height="150" src="http://blog.mozilla.com/mrz/files/2009/05/dsc_0027-150x150.jpg" class="attachment-thumbnail" alt="Who knows this logo?" title="Who knows this logo?" /></a>
<a href='http://blog.mozilla.com/mrz/2009/05/20/mozilla-firefox-fixing-computers-a-room-full-of-kindergartners/dsc_0029/' title='Minefield crashed with Kidzui'><img width="150" height="150" src="http://blog.mozilla.com/mrz/files/2009/05/dsc_0029-150x150.jpg" class="attachment-thumbnail" alt="Minefield crashed with Kidzui" title="Minefield crashed with Kidzui" /></a>
<a href='http://blog.mozilla.com/mrz/2009/05/20/mozilla-firefox-fixing-computers-a-room-full-of-kindergartners/dsc_0032/' title='Inside a computer'><img width="150" height="150" src="http://blog.mozilla.com/mrz/files/2009/05/dsc_0032-150x150.jpg" class="attachment-thumbnail" alt="Inside a computer" title="Inside a computer" /></a>
<a href='http://blog.mozilla.com/mrz/2009/05/20/mozilla-firefox-fixing-computers-a-room-full-of-kindergartners/dsc_0034/' title='And this is a hard drive'><img width="150" height="150" src="http://blog.mozilla.com/mrz/files/2009/05/dsc_0034-150x150.jpg" class="attachment-thumbnail" alt="And this is a hard drive" title="And this is a hard drive" /></a>

<p>I&#8217;m going to go work on my new role in community outreach now&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/mrz/2009/05/20/mozilla-firefox-fixing-computers-a-room-full-of-kindergartners/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>How can IT reduce Firefox adoption/retention barriers?  (Part II)</title>
		<link>http://blog.mozilla.com/mrz/2009/05/18/how-can-it-reduce-firefox-adoptionretention-barriers-part-ii/</link>
		<comments>http://blog.mozilla.com/mrz/2009/05/18/how-can-it-reduce-firefox-adoptionretention-barriers-part-ii/#comments</comments>
		<pubDate>Tue, 19 May 2009 06:00:43 +0000</pubDate>
		<dc:creator>mrz</dc:creator>
				<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/mrz/?p=445</guid>
		<description><![CDATA[Nearly a month and a half ago I posted my first post on trying to figure out how IT can reduce adoption/retention barriers.
Over the past month we&#8217;ve worked out a different path than I originally thought we&#8217;d take.  Instead of targeting the Uninstall survey, I&#8217;ve been focusing my energies on point to explore #2:
2. How [...]]]></description>
			<content:encoded><![CDATA[<p>Nearly a month and a half ago I posted my first post on trying to figure out <a href="http://blog.mozilla.com/mrz/2009/03/24/how-can-it-can-reduce-firefox-adoptionretention-barriers/">how IT can reduce adoption/retention barriers</a>.</p>
<p>Over the past month we&#8217;ve worked out a different path than I originally thought we&#8217;d take.  Instead of targeting the <a href="https://survey.mozilla.com/">Uninstall survey</a>, I&#8217;ve been focusing my energies on <i>point to explore #2</i>:</p>
<blockquote><p>2. How easily and quickly it is to get Firefox support using <code><a href="http://support.mozilla.com/">support.mozilla.com</a></code> (is it too slow to be useful?)</p>
</blockquote>
<p>I&#8217;ve been working closely with with <a href="http://djst.org/blog">David Tenser</a>, <a href="http://blog.mozilla.com/metrics/">Ken Kovash</a>, and <a href="http://blog.mozilla.com/seth/">Seth Bindernagel</a> (and all the l10n folks) to add a <a href="http://www.Kamplye.com/">Kamplye</a> survey to <a href="http://support.mozilla.com"><code>support.mozilla.com</code> (SUMO)</a>.  IT&#8217;s going to tag along with some survey questions David wanted to do.  We hope to have something in place for June 1 (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=489685" title="Kampyle survey, implementation">bug 489685</a>).</p>
<p>I decided to target two major geographic regions (South America &#038; Asia-Pacific) and have gotten help from our l10n community in translating the survey.  You can follow our progress in <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=493096" title="Translate Mozilla IT Survey for pt-BR, es-AR, es-CL, ms, ta-IN, ta-LK, th, ja, hi-IN, id">bug 493096</a>.</p>
<p>I&#8217;m including a sample mock-up below.  I&#8217;m interested in any feedback you might have.</p>
<p><a href="http://blog.mozilla.com/mrz/files/2009/05/kampyle-sumo11.png"><img src="http://blog.mozilla.com/mrz/files/2009/05/kampyle-sumo11.png" alt="Kampyle / SUMO Survey Mock Up" title="Kampyle / SUMO Survey Mock Up" width="434" height="450" class="aligncenter size-full wp-image-452" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/mrz/2009/05/18/how-can-it-reduce-firefox-adoptionretention-barriers-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How can IT reduce Firefox adoption/retention barriers?</title>
		<link>http://blog.mozilla.com/mrz/2009/03/24/how-can-it-can-reduce-firefox-adoptionretention-barriers/</link>
		<comments>http://blog.mozilla.com/mrz/2009/03/24/how-can-it-can-reduce-firefox-adoptionretention-barriers/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 17:51:38 +0000</pubDate>
		<dc:creator>mrz</dc:creator>
				<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/mrz/?p=435</guid>
		<description><![CDATA[Why don&#8217;t you use Firefox and can IT change that?
At the beginning of the quarter I set an ambitious goal of trying to look at ways IT/Ops can reduce Firefox adoption/retention barriers.
I kept rotating on the best way to frame this question and in the process probably kept over thinking it. Mentally I tied this [...]]]></description>
			<content:encoded><![CDATA[<p><em>Why don&#8217;t you use Firefox and can IT change that?</em></p>
<p>At the beginning of the quarter I set an ambitious goal of trying to look at ways IT/Ops can reduce Firefox adoption/retention barriers.</p>
<p>I kept rotating on the best way to frame this question and in the process probably kept over thinking it. Mentally I tied this goal into looking at under-served geographic regions like South America (Brazil) and Asia-Pacific.  I&#8217;m trying to answer these questions:</p>
<ol>
<li>How can IT help drive adoption/retention in Asia-Pacific or South America?</li>
<li>What sort of local IT resources does it take to move the needle?</li>
<li>If I put a data center in Brazil or Singapore, does it help?  Does it move the needle?  Do users care? (What&#8217;s my ROI?)</li>
</ol>
<p>In other words, is there some function of Mozilla&#8217;s network or server infrastructure that prevents users in <i>far away geographies</i> from using Firefox?</p>
<p>I&#8217;ve been working with Asa Dotzler, Ken Kovash, Seth Bindernagel and Staś Małolepszy to try to figure out the right questions to ask and how to get them asked.</p>
<p>We came up with several points to explore:</p>
<ol>
<li>Web page load time for Mozilla properties (<code><a href="http://www.mozilla.com/">www.mozilla.com</a></code>/<code><a href="http://www.mozilla.org/">www.mozilla.org</a></code>) &amp; other &#8220;participatory sites&#8221; (<code><a href="http://planet.mozilla.org">planet.mozilla.org</a></code>, <a href="http://bugzilla.mozilla.org"><code>bugzilla.mozilla.org</code></a>, <code><a href="http://developer.mozilla.org">developer.mozilla.org</a></code>, <code><a href="http://labs.mozilla.com/">labs.mozilla.com</a></code>&#8230;)</li>
<li>How easily and quickly it is to get Firefox support using <code><a href="http://support.mozilla.com">support.mozilla.com</a></code> (is it too slow to be useful?)</li>
<li>Interactive browsing on <a href="http://addons.mozilla.org"><code>addons.mozilla.org</code></a> (is this site too slow to use?)</li>
<li>Performance of AMO updates to extensions inside the Addons manager.</li>
</ol>
<p>I had come up with three survey methods:</p>
<ol>
<li><a href="http://blog.mozilla.com/metrics/2009/02/27/improving-the-experience-of-installing-firefox/">Installer survey</a></li>
<li> <a href="https://survey.mozilla.com/">Uninstall survey</a></li>
<li> Community surveys</li>
</ol>
<p>The <a href="http://blog.mozilla.com/metrics/2009/02/27/improving-the-experience-of-installing-firefox/">Installer survey</a> is interesting but I&#8217;m not convinced that helps answer my questions.  At the point of that survey, the user hasn&#8217;t really used Firefox and any of those websites.  So I scratched it.</p>
<p>My goal for Phase 1 is to target the Uninstall survey and relate the responses to the users geography.</p>
<p>Looking for suggestions &#8211; followups in comments or email.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/mrz/2009/03/24/how-can-it-can-reduce-firefox-adoptionretention-barriers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Fx 3.0.7 release &amp; this morning&#8217;s network performance issues</title>
		<link>http://blog.mozilla.com/mrz/2009/03/05/fx-307-release-this-mornings-network-performance-issues/</link>
		<comments>http://blog.mozilla.com/mrz/2009/03/05/fx-307-release-this-mornings-network-performance-issues/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 01:17:47 +0000</pubDate>
		<dc:creator>mrz</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/mrz/?p=413</guid>
		<description><![CDATA[In computers systems (and with others) there are often bottlenecks and removing those often reveals new ones.  Today&#8217;s an example of just that.
During a normal release we have tools we can use to adjust the rate at which we offer updates.  We use this to reduce load on the back end systems or [...]]]></description>
			<content:encoded><![CDATA[<p>In computers systems (and with others) there are often <a href="http://en.wikipedia.org/wiki/Bottleneck_%28engineering%29">bottlenecks</a> and removing those often reveals new ones.  Today&#8217;s an example of just that.</p>
<p>During a normal release we have tools we can use to adjust the rate at which we offer updates.  We use this to reduce load on the back end systems or to help reduce load on the download mirrors.</p>
<p>Our preference is to do a release completely unthrottled so users get timely updates.</p>
<p>During the Firefox 3.0.6 release we had a number of system problems that prevented us from releasing updates unthrottled.  These were all detailed in the <a href="https://wiki.mozilla.org/Releases/Firefox_3.0.6/Post_Mortem#IT">Post Mortem</a>.</p>
<p>To the Operations Team&#8217;s credit (and I&#8217;m <u>serious</u> here), most of those issues were removed prior to yesterday&#8217;s Firefox 3.0.7 release and by 9am this morning we were cranking along &#8211; no throttling.</p>
<p>Unfortunately the Mirror Network started showing pressure and instead of throttling back on the release, we opted to augment the Mirror Network with our own download servers in San Jose.</p>
<p>That pushed our aggregate bandwidth out of San Jose to nearly 3Gbps:</p>
<p><a href="http://blog.mozilla.com/mrz/files/2009/03/globalbw10am.png"><img class="alignnone size-full wp-image-414" title="Global Bandwidth over 2Gbps" src="http://blog.mozilla.com/mrz/files/2009/03/globalbw10am.png" alt="Global Bandwidth over 2Gbps" width="603" height="286" /></a><a href="http://blog.mozilla.com/mrz/files/2009/03/globalbw10am.png"></a></p>
<p>At around this time offsite monitors starting alerting about a sharp increase in page load times to various Mozilla website properties.  Took a bit to track down but the <a href="http://blog.mozilla.com/it/2009/02/17/mozilla-scheduled-downtime-02172009-7pm-11pm-pst-0300-0700-02182009-utc/">newly turned up</a> Level 3 peer was saturated:</p>
<p><a href="http://blog.mozilla.com/mrz/files/2009/03/l3-flat.png"><img class="alignnone size-full wp-image-415" title="Level3" src="http://blog.mozilla.com/mrz/files/2009/03/l3-flat.png" alt="Level3" width="603" height="286" /></a></p>
<p>Any outbound traffic whose best route was out through Level3 was impacted.  We fixed this temporarily by turning down Level3.</p>
<p><i>(I should note that our design requirements for upstream transit is at least two connections per provider so we can push 2Gbps.  Level 3 is no exception, however, the second connection has been offline because Derek was seeing a lot of packet loss across the optical connection which coincidentally got resolved today.)</i></p>
<p>These problems are solvable and we&#8217;ve had plans to put tools in place to balance load during situations like this.  Unfortunately, today&#8217;s issues came up a lot quicker than we had planned.</p>
<p>A couple things we&#8217;ll be looking at before the next release:</p>
<ol>
<li>Evaluating <a href="http://www.internap.com/internet-services/internet-access/network-performance/fcp/">Internap&#8217;s FCP</a> to dynamically shift traffic based on cost and performance metrics. (And as luck would have it, this showed up this afternoon!)</li>
<li>Looking to see how we can better balance outbound traffic outside of using FCP.</li>
<li>Adding capacity to our Mirror Network (can <a href="http://www.mozilla.org/mirroring.html">you help</a>?).</li>
<li>Evaluating options around upgrading from several 1GE upstream connections to 10GE connections.</li>
</ol>
<p>This is a great problem to have, to be sure, and a far cry from the panic three  years ago of <i>&#8220;OMG we&#8217;re about to push 100Mbps!&#8221;</i>.  </p>
<p>I&#8217;m really interested in how others have gone about solving problems like this.  Leave me comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/mrz/2009/03/05/fx-307-release-this-mornings-network-performance-issues/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
