<feed xmlns="http://www.w3.org/2005/Atom"><title>Clouds &amp; Unicorns</title><id>https://phabricator.wikimedia.org/phame/blog/feed/5/</id><link rel="self" type="application/atom+xml" href="https://phabricator.wikimedia.org/phame/blog/feed/5/" /><updated>2025-04-18T12:04:24+00:00</updated><subtitle>The latest news and announcements for [[ https://wikitech.wikimedia.org/wiki/Help:Cloud_Services_Introduction | Wikimedia Cloud Services ]] products and related ecosystem.

== See also ==
* [[ https://tools.wmflabs.org/sal/tools | Toolforge admin log ]]
* #cloud-services-team 
</subtitle><entry><title>New names for everyone!</title><link href="/phame/live/5/post/191/new_names_for_everyone/" /><id>https://phabricator.wikimedia.org/phame/post/view/191/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2020-02-18T21:14:38+00:00</published><updated>2020-07-11T12:45:59+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The Cloud Services team is in the process of updating and standardizing the use of DNS names throughout Cloud VPS projects and infrastructure, including the Toolforge project.  A lot of this has to do with reducing our reliance on <a href="https://wikitech.wikimedia.org/wiki/Help:Labs_labs_labs" class="remarkup-link remarkup-link-ext" rel="noreferrer">the badly-overloaded term</a> &#039;Labs&#039; in favor of the &#039;Cloud&#039; naming scheme.  The whole story can be found on <a href="https://wikitech.wikimedia.org/wiki/Wikimedia_Cloud_Services_team/EnhancementProposals/DNS_domain_usage" class="remarkup-link remarkup-link-ext" rel="noreferrer">this Wikitech proposal page</a>.  These changes will be trickling out over the coming weeks or months, but one change you might notice already.</p>

<p><strong>New private domain for VPS instances</strong></p>

<p>For several years virtual machines have been created with two internal DNS entries:  <em>&lt;hostname&gt;.eqiad.wmflabs</em> and <em>&lt;hostname&gt;.&lt;project&gt;.eqiad.wmflabs</em>.  As of today, hosts can also be found in a third place: <em>&lt;hostname&gt;.&lt;project&gt;.eqiad1.wikimedia.cloud</em>.  There&#039;s no current timeline to phase out the old names, but the new names are now the preferred/official internal names.  Reverse DNS lookups on a instance&#039;s IP address will return the new name, and many other internal cloud services (for example Puppet) will start using the new names for newly-created VMs.</p>

<p>Eventually the non-standard <em>.wmflabs</em> top level domain will be phased out, so you should start retraining your fingers and updating your .ssh/config today.</p></div></content></entry><entry><title>Cloud-vps Puppetmasters Moved to VMs, thanks to Krenair</title><link href="/phame/live/5/post/176/cloud-vps_puppetmasters_moved_to_vms_thanks_to_krenair/" /><id>https://phabricator.wikimedia.org/phame/post/view/176/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2019-09-18T21:54:50+00:00</published><updated>2019-09-25T10:58:51+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Last week, we completed a piece of <a href="https://phabricator.wikimedia.org/T171188" class="remarkup-link" rel="noreferrer">long-neglected work</a> relating to Puppet, the tool that manages the configuration of every virtual machine in our cloud. Historically, each VM has received its configuration from a physical, production server (the &#039;puppetmaster&#039;). This meant that there was a constant chatter of traffic back and forth between each VM and unrelated networks and hardware sitting in Wikimedia production. Now, the puppetmasters are located on VMs, so all of that chatter is internal to Cloud Services.</p>

<p>Generally, we like to think of the cloud as an isolated sandbox, a safe place for volunteering and experimentation. Any tight links between the cloud and production require extra vigilance; as we sever those <a href="https://phabricator.wikimedia.org/T207536" class="remarkup-link" rel="noreferrer">links</a> we can worry a bit less about issues (security and otherwise) bleeding back and forth between the cloud and the public wikis.</p>

<p>A notable thing about this move is that nearly all the work was done by a technical volunteer, <a href="https://phabricator.wikimedia.org/p/Krenair/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_0"><span class="phui-tag-core phui-tag-color-person">@Krenair</span></a>.  Krenair updated the code that runs the in-cloud puppetmasters, built out the server cluster, and designed the migration flow that transferred control over from the old controllers. It was his hard work (done on top of his unrelated day job) that moved this task from long-neglected to a box with a check mark.</p>

<p>Quite a few Cloud Services projects are partially (or, in some cases, completely) maintained and managed by technical volunteers. Not only does this allow us to run infrastructure well beyond the capacity of our small team, it&#039;s also a clear success in the mission of the Technical Engagement team (of which Cloud Services is a part). We work to build technical capacity in the community, and when volunteers start doing our job for us, we know we&#039;ve succeeded. Almost all levels of access are available to trusted volunteers, and getting permission to hack on the WMCS infrastructure is <a href="https://wikitech.wikimedia.org/wiki/Help:Access_policies" class="remarkup-link remarkup-link-ext" rel="noreferrer">not as hard as you might think</a>.  Come and <a href="https://www.mediawiki.org/wiki/New_Developers" class="remarkup-link remarkup-link-ext" rel="noreferrer">join us</a>![4]</p></div></content></entry><entry><title>Nova-network is gone!</title><link href="/phame/live/5/post/159/nova-network_is_gone/" /><id>https://phabricator.wikimedia.org/phame/post/view/159/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2019-05-02T21:05:59+00:00</published><updated>2019-05-14T10:39:16+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>A couple of week ago we finally moved the last lingering VMs in our <a href="https://en.wikipedia.org/wiki/OpenStack" class="remarkup-link remarkup-link-ext" rel="noreferrer">OpenStack</a> platform from the nova-network region to the Neutron region (<a href="/J120" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_1"><span class="phui-tag-core phui-tag-color-object">Blog Post: Neutron is here!</span></a>).  The bulk of the work had been done a month earlier, so the final nails in nova-network&#039;s coffin felt a bit anticlimactic -- nevertheless, this is a big step that represents a huge amount of work on the part of both staff and volunteers.</p>

<p>VPS and Toolforge users have been extraordinarily patient with all of the downtime, deprecations, and hand-tuning that this change required.  The lack of grumbles did not go unnoticed -- it&#039;s great to work with such a supportive group of users. Thank you!</p>

<p>Our reliance on the long-obsolete nova-network service was blocking many, many things.  Now that it&#039;s gone, we can...</p>

<ul class="remarkup-list remarkup-list-with-checkmarks">
<li class="remarkup-list-item remarkup-checked-item"><input type="checkbox" checked="checked" disabled="disabled" /> Officially discontinue support for Ubuntu Trusty throughout the WMF&#039;s infrastructure. (some of the last Trusty servers were supporting nova-network)</li>
<li class="remarkup-list-item remarkup-checked-item"><input type="checkbox" checked="checked" disabled="disabled" /> Shut down and decommission half a dozen long-obsolete servers.</li>
<li class="remarkup-list-item remarkup-checked-item"><input type="checkbox" checked="checked" disabled="disabled" /> Rip out hundreds of lines of special-case puppet code that supported the old nova-network OpenStack region.</li>
<li class="remarkup-list-item remarkup-unchecked-item"><input type="checkbox" disabled="disabled" /> Upgrade our OpenStack Nova services past version Mitaka. (<a href="https://en.wikipedia.org/wiki/OpenStack#Release_history" class="remarkup-link remarkup-link-ext" rel="noreferrer">Mitaka</a> was the last release that supported nova-network; there have been SIX upstream releases since Mitaka)</li>
<li class="remarkup-list-item remarkup-unchecked-item"><input type="checkbox" disabled="disabled" /> Upgrade Horizon.wikimedia.org to run newer versions with fancier panels. (Previously we were stuck running the last version that supported nova-network)</li>
<li class="remarkup-list-item remarkup-unchecked-item"><input type="checkbox" disabled="disabled" /> Switch to a less buggy Designate/DNS model that should result in fewer VM creation failures and fewer DNS record leaks.</li>
<li class="remarkup-list-item remarkup-unchecked-item"><input type="checkbox" disabled="disabled" /> Possibly spend some time on other <a href="https://phabricator.wikimedia.org/project/profile/832/" class="remarkup-link" rel="noreferrer">WMCS features</a> that aren&#039;t 100% dedicated to repaying technical debt.</li>
</ul>

<p>Most of those changes will be invisible to the end-users, but will make for much happier operations staff!</p></div></content></entry><entry><title>Toolforge: Trusty deprecation and grid engine migration</title><link href="/phame/live/5/post/134/toolforge_trusty_deprecation_and_grid_engine_migration/" /><id>https://phabricator.wikimedia.org/phame/post/view/134/</id><author><name>bd808 (Bryan Davis)</name></author><published>2019-01-12T00:51:53+00:00</published><updated>2019-01-14T16:25:06+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Ubuntu Trusty was released in April 2014, and support for it (including security updates) will cease in April 2019. We need to shut down all Trusty hosts before the end of support date to ensure that Toolforge remains a secure platform. This migration will take several months because many people still use the Trusty hosts and our users are working on tools in their spare time.</p>

<h3 class="remarkup-header">Initial timeline</h3>

<p>Subject to change, <a href="https://wikitech.wikimedia.org/wiki/News/Toolforge_Trusty_deprecation#Timeline" class="remarkup-link remarkup-link-ext" rel="noreferrer">see Wikitech for living timeline</a>.</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">2019-01-11: Availability of Debian Stretch grid announced to community</li>
<li class="remarkup-list-item">Week of 2019-02-04: Weekly reminders via email to tool maintainers for tools still running on Trusty</li>
<li class="remarkup-list-item">Week of 2019-03-04:<ul class="remarkup-list">
<li class="remarkup-list-item">Daily reminders via email to tool maintainers for tools still running on Trusty</li>
<li class="remarkup-list-item">Switch <em>login.tools.wmflabs.org</em> to point to Stretch bastion</li>
</ul></li>
<li class="remarkup-list-item">Week of 2019-03-18: Evaluate migration status and formulate plan for final shutdown of Trusty grid</li>
<li class="remarkup-list-item">Week of 2019-03-25: Shutdown Trusty grid</li>
</ul>

<h3 class="remarkup-header">What is changing?</h3>

<ul class="remarkup-list">
<li class="remarkup-list-item">New job grid running Son of Grid Engine on Debian Stretch instances</li>
<li class="remarkup-list-item">New limits on concurrent job execution and job submission by a single tool</li>
<li class="remarkup-list-item">New bastion hosts running Debian Stretch with connectivity to the new job grid</li>
<li class="remarkup-list-item">New versions of PHP, Python2, Python3, and other language runtimes</li>
<li class="remarkup-list-item">New versions of various support libraries</li>
</ul>

<h3 class="remarkup-header">What should I do?</h3>

<p>Some of you will remember the <a href="https://wikitech.wikimedia.org/wiki/News/Tools_Precise_deprecation" class="remarkup-link remarkup-link-ext" rel="noreferrer">Ubuntu Precise deprecation from 2016-2017</a>. This time the process is similar, but slightly different. We were unable to build a single grid engine cluster that mixed both the old Trusty hosts and the new Debian Stretch hosts. That means that moving your jobs from one grid to the the other is a bit more complicated than it was the last time.</p>

<p>The <a href="/tag/cloud-services-team/" class="phui-tag-view phui-tag-type-shade phui-tag-violet phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_3"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-users" data-meta="0_2" aria-hidden="true"></span>cloud-services-team</span></a> has created the <a href="https://wikitech.wikimedia.org/wiki/News/Toolforge_Trusty_deprecation" class="remarkup-link remarkup-link-ext" rel="noreferrer">News/Toolforge Trusty deprecation</a> page on <a href="/tag/wikitech.wikimedia.org/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_5"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_4" aria-hidden="true"></span>wikitech.wikimedia.org</span></a> to document basic steps needed to move webservices, cron jobs, and continuous jobs from the old Trusty grid to the new Stretch grid. That page also provides more details on the language runtime and library version changes and will provide answers to common problems people encounter as we find them. If the answer to your problem isn&#039;t on the wiki, ask for help in <a href="https://webchat.freenode.net/?channels=wikimedia-cloud" class="remarkup-link remarkup-link-ext" rel="noreferrer">the #wikimedia-cloud IRC channel</a>  or <a href="https://phabricator.wikimedia.org/maniphest/task/edit/form/1/?title=Stretch+grid+problem%3A+(your+description)&amp;owner=&amp;description=While+migrating+(my+tool)+to+the+Stretch+job+grid+I+ran+into+this+problem%3A&amp;projects=toolforge%2C+cloud-services-team&amp;priority=triage" class="remarkup-link" rel="noreferrer">file a bug in Phabricator</a>.</p>

<h3 class="remarkup-header">See also</h3>

<ul class="remarkup-list">
<li class="remarkup-list-item"><a href="https://wikitech.wikimedia.org/wiki/News/Toolforge_Trusty_deprecation" class="remarkup-link remarkup-link-ext" rel="noreferrer">News/Toolforge Trusty deprecation</a> on Wikitech for full details including links to tools that will help us monitor the migration of jobs to the new grid and help with common problems</li>
</ul></div></content></entry><entry><title>Migrating tools.wmflabs.org to HTTPS</title><link href="/phame/live/5/post/132/migrating_tools.wmflabs.org_to_https/" /><id>https://phabricator.wikimedia.org/phame/post/view/132/</id><author><name>bd808 (Bryan Davis)</name></author><published>2019-01-03T21:06:48+00:00</published><updated>2020-07-17T17:18:57+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Starting 2019-01-03, <a href="https://en.wikipedia.org/wiki/HTTP#Request_methods" class="remarkup-link remarkup-link-ext" rel="noreferrer">GET</a> and <a href="https://en.wikipedia.org/wiki/HTTP#Request_methods" class="remarkup-link remarkup-link-ext" rel="noreferrer">HEAD</a> requests to <a href="http://tools.wmflabs.org" class="remarkup-link remarkup-link-ext" rel="noreferrer">http://tools.wmflabs.org</a> will receive a <a href="https://en.wikipedia.org/wiki/HTTP_301" class="remarkup-link remarkup-link-ext" rel="noreferrer">301 redirect</a> to <a href="https://tools.wmflabs.org" class="remarkup-link remarkup-link-ext" rel="noreferrer">https://tools.wmflabs.org</a>. This change should be transparent to most visitors. Some webservices may need to be updated to use explicit <tt class="remarkup-monospaced">https://</tt> or <a href="https://en.wikipedia.org/wiki/URL#prurl" class="remarkup-link remarkup-link-ext" rel="noreferrer">protocol relative</a> URLs for stylesheets, images, JavaScript, and other content that is rendered as part of the pages they serve to their visitors.</p>

<p>Three and a half years ago <a href="https://phabricator.wikimedia.org/p/yuvipanda/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_7"><span class="phui-tag-core phui-tag-color-person">@yuvipanda</span></a> created <a href="/T102367" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_6"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T102367: Migrate tools.wmflabs.org to https only (and set HSTS)</span></span></a> about making this change. Fifteen months ago a change was made to the &#039;<a href="https://tools.wmflabs.org/admin/tool/admin" class="remarkup-link remarkup-link-ext" rel="noreferrer">admin</a>&#039; tool that serves the landing page for tools.wmflabs.org so that it performs an http to https redirect and sets a <a href="https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security" class="remarkup-link remarkup-link-ext" rel="noreferrer">Strict-Transport-Security: max-age:86400</a> header in its response. This header instructs modern web browsers to remember to use https instead of http when talking to tools.wmflabs.org for the next 24 hours. Since that change there have been no known reports of tools breaking.</p>

<p>The new step we are taking now is to make this same redirect and set the same header for <strong>all</strong> visits to tools.wmflabs.org where it is safe to redirect the visitor. As mentioned in the lead paragraph, there may be some tools that this will break due to the use of hard coded <tt class="remarkup-monospaced">http://...</tt> URLs in the pages they serve. Because of the HSTS header covering tools.wmflabs.org, this breakage should be limited to resources that are loaded from external domains.</p>

<p>Fixing tools should be relatively simple. Hardcoded URLs can be updated to be either protocol relative (<tt class="remarkup-monospaced">http://example.org</tt> ➜ <tt class="remarkup-monospaced">//example.org</tt>) or explicitly use the https protocol (<tt class="remarkup-monospaced">http://example.org</tt> ➜ <tt class="remarkup-monospaced">https://example.org</tt>). The proxy server also sends an <tt class="remarkup-monospaced">X-Forwarded-Proto: https</tt> header to the tool&#039;s webservice which can be detected and used to switch to generating https links. Many common web application frameworks have support for this already:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item"><a href="https://docs.djangoproject.com/en/2.1/ref/settings/#secure-proxy-ssl-header" class="remarkup-link remarkup-link-ext" rel="noreferrer">Django&#039;s SECURE_PROXY_SSL_HEADER setting</a></li>
<li class="remarkup-list-item"><a href="http://werkzeug.pocoo.org/docs/0.14/contrib/fixers/#werkzeug.contrib.fixers.ProxyFix" class="remarkup-link remarkup-link-ext" rel="noreferrer">Flask&#039;s ProxyFix middleware</a></li>
<li class="remarkup-list-item"><a href="https://symfony.com/doc/2.2/components/http_foundation/trusting_proxies.html" class="remarkup-link remarkup-link-ext" rel="noreferrer">Symfony&#039;s Request::setTrustedProxies</a></li>
</ul>

<p>If you need some help figuring out how to fix your own tool&#039;s output, or to report a tool that needs to be updated, join us in the <a href="https://webchat.freenode.net/?channels=wikimedia-cloud" class="remarkup-link remarkup-link-ext" rel="noreferrer">#wikimedia-cloud</a> IRC channel.</p></div></content></entry><entry><title>Neutron is here!</title><link href="/phame/live/5/post/120/neutron_is_here/" /><id>https://phabricator.wikimedia.org/phame/post/view/120/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2018-09-27T15:18:22+00:00</published><updated>2018-09-27T15:18:22+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>As promised in an earlier post (<a href="/J112" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_8"><span class="phui-tag-core phui-tag-color-object">Blog Post: Neutron is (finally) coming</span></a>), we&#039;ve started moving a few projects on our <a href="/tag/cloud-vps/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_11"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_10" aria-hidden="true"></span>Cloud-VPS</span></a> service into a new <a href="https://en.wikipedia.org/wiki/OpenStack" class="remarkup-link remarkup-link-ext" rel="noreferrer">OpenStack</a> region that is using <a href="https://en.wikipedia.org/wiki/OpenStack#Networking_.28Neutron.29" class="remarkup-link remarkup-link-ext" rel="noreferrer">Neutron</a> for its <a href="https://en.wikipedia.org/wiki/Software-defined_networking" class="remarkup-link remarkup-link-ext" rel="noreferrer">software-defined networking</a> layer. It&#039;s going pretty well! The new region, &#039;eqiad1&#039;, is currently very small, and growth is currently blocked by hardware issues (see <a href="https://phabricator.wikimedia.org/T199125" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_9"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T199125</span></span></a> for details) but we hope to resolve that issue soon.</p>

<p>Once we have some more hardware allocated to the eqiad1 region we will start migrating projects in earnest.  Here&#039;s what that will look like for each  project as it is migrated:</p>

<ol class="remarkup-list">
<li class="remarkup-list-item">A warning email about impending migrations will be sent to the <a href="https://lists.wikimedia.org/mailman/listinfo/cloud-announce" class="remarkup-link remarkup-link-ext" rel="noreferrer">cloud-announce mailing list</a> at least 7 days before migration.</li>
<li class="remarkup-list-item">On the day of the migration: Instance creation for each migrating project will be disabled in the legacy &#039;eqiad&#039; region.  This means that Horizon will still show instances in eqiad, but creation of new instances will be disabled there.</li>
<li class="remarkup-list-item">The current project quotas will be copied over from eqiad to eqiad1.</li>
<li class="remarkup-list-item">Security groups will be copied from eqiad to eqiad1, and some rules (those that refer to <tt class="remarkup-monospaced">10.0.0.0/8</tt> or &#039;all VMs everywhere&#039;) will be duplicated to include the new IP range in eqiad1.</li>
<li class="remarkup-list-item">Then, the following will happen to each instance:<ol class="remarkup-list">
<li class="remarkup-list-item">The instance will be shut down</li>
<li class="remarkup-list-item">A new shadow instance will be created in eqiad1 with the same name but a new IP address or addresses.</li>
<li class="remarkup-list-item">The contents of the eqiad instance will be copied into the new instance.  <strong>This step could take several hours, depending on the size of the instance.</strong></li>
<li class="remarkup-list-item">Any DNS records or proxies that pointed to the old instance will be updated to point at the new instance.</li>
<li class="remarkup-list-item">The new instance will be started up, and then rebooted once for good measure.</li>
<li class="remarkup-list-item">Once the new instance is confirmed up and reachable, the old instance will be deleted.</li>
</ol></li>
<li class="remarkup-list-item"><strong>You will want to check some things afterwards</strong>.  In particular:<ol class="remarkup-list">
<li class="remarkup-list-item">Verify that any external-facing services supported by your project are still working.  If they need to be started, start them.  If something drastic is happening, notify WMCS staff on IRC (<tt class="remarkup-monospaced">#wikimedia-cloud</tt>)</li>
<li class="remarkup-list-item">In some cases you may need to restart services if they&#039;re unable to restart themselves after a system reboot.  For example, Wikimedia-Vagrant seems to usually have this problem.</li>
</ol></li>
</ol>

<p>If you would like an early jump on migration, we have space to move a few projects now.  In particular, if you would like access to the eqiad1 region so that you can start building out new servers there, please open a quota request here: <a href="https://phabricator.wikimedia.org/project/profile/2880/" class="remarkup-link" rel="noreferrer">https://phabricator.wikimedia.org/project/profile/2880/</a></p>

<p>The migration process for Toolforge will be utterly different -- in the meantime people who only use Toolforge can disregard all of this for the time being.</p></div></content></entry><entry><title>Neutron is (finally) coming</title><link href="/phame/live/5/post/112/neutron_is_finally_coming/" /><id>https://phabricator.wikimedia.org/phame/post/view/112/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2018-08-22T21:00:16+00:00</published><updated>2018-09-01T17:10:29+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h3 class="remarkup-header">The History</h3>

<p>When Wikimedia Labs (the umbrella-project now known as &#039;Cloud VPS&#039;) first opened to the public in 2012 it was built around OpenStack Nova version &#039;Diablo&#039;.[1]  Nova included a simple network component (&quot;nova-network&quot;) which works pretty well -- it assigns addresses to new VMs, creates network bridges so that they can talk to the outside internet, and manages dynamic firewalls that control which VMs can talk to each other and how.</p>

<p>Just as we were settling into nova-network (along with other early OpenStack adopters), the core developers were already moving on.  A new project (originally named &#039;Quantum&#039; but eventually renamed &#039;Neutron&#039;) would provide stand-alone APIs, independent from the Nova APIs, to construct all manners of software-defined networks.  With every release Neutron became more elaborate and more reliable, and became the standard for networking in new OpenStack clouds.</p>

<p>For early adopters like us, there was a problem.  The long-promised migration path for existing nova-network users never materialized, and nova-network got stuck in a kind of support limbo: in version after version it was announced that it would be deprecated in the <em>next</em> release, but nova-network users always pushed back to delay the deprecation until an upgrade path was ready.  Finally, in late 2016 nova-network was finally dropped from support, but still with no well-agreed-on upgrade path.</p>

<p>So, after years of foot-dragging, we need to migrate (<a href="https://phabricator.wikimedia.org/T167293" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_13"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T167293</span></span></a>) our network layer to Neutron.  It&#039;s going to be painful!</p>

<h3 class="remarkup-header">The Plan</h3>

<p>Since there is not an in-place upgrade path, Chase and Arturo have built a new, parallel nova region using Neutron that is named &#039;eqiad1-r&#039;.  It shares the same identity, image, and DNS service as the existing region, but instances in the eqiad1-r region live on different hosts and are in a different VLAN with different IPs.  I (Andrew) will be pulling projects, one at a time, out of the existing &#039;eqiad&#039; region and copying everything into &#039;eqiad1-r&#039;.  Each instance will be shut down in eqiad, copied to eqiad1-r, and started up again.  The main disruption here is that once moved, the new VMs will have a new IP address and will probably be unable to communicate with VMs in the old region; for this reason, project migration will mean substantial, multi-hour downtime for the entire VPS project.</p>

<p>Here are a few things that will be disrupted by IP reassignment:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">Internal instance DNS  (e.g. <tt class="remarkup-monospaced">&lt;instance&gt;.&lt;project&gt;.eqiad.wmflabs</tt>)</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">External floating-IP DNS  (e.g. <tt class="remarkup-monospaced">&lt;website&gt;.&lt;project&gt;.wmflabs.org</tt>)</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Dynamic web proxies  (e.g. <tt class="remarkup-monospaced">http://&lt;website&gt;.wmflabs.org&gt;</tt>)</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Nova security group rules</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Anything at all internal to a project that refers to another instance by IP address</li>
</ul>

<p>I&#039;m in the process of writing scripted transformations for almost all of the above.  Ideally when a VM moves, the DNS and proxy entries will be updated automatically so that all user-facing services will resume as before the migration.  <strong>The one thing I cannot fix is literal IP references within a project; if you have any of those, now would be a good time to replace those with DNS lookups</strong>, or at the very least, brace yourself for a lot of hurried clean-up.</p>

<p>Once we&#039;ve run through a few trial migrations, I&#039;ll start scheduling upgrade windows and coordinating with project admins.  We&#039;ll probably migrate Toolforge last -- there are even more issues involved with that move which I won&#039;t describe here.</p>

<p>This is another technical-debt/cleanup exercise that doesn&#039;t really get us anything new in the short-run.  Moving to Neutron clears the path for an eventual adoption of IPv6, and Neutron has the potential to support new, isolated testing environments with custom network setups.  <strong>Most importantly however, this will get us back on track with OpenStack upgrades so that we can keep getting upstream security fixes and new features</strong>.  Expect to hear more about those upgrades once the dust settles from this migration.</p>

<h3 class="remarkup-header">The Timeline</h3>

<p>Honestly, I don&#039;t know what the timeline is yet.  There are several projects that are wholly managed by Cloud Services or WMF staff, and those projects will be used as the initial test subjects.  Once we have an idea of how well this works and how long it takes, we&#039;ll start scheduling other projects for migration in batches.  Keep an eye on the cloud-announce mailing list for related announcements.</p>

<h3 class="remarkup-header">How you can help</h3>

<ul class="remarkup-list">
<li class="remarkup-list-item">Fix any literal IP references within your project(s). Replace them with DNS lookups.  If they can&#039;t be replaced with lookups, make a list of everywhere that they appear and get ready to edit all those places come migration day</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Delete VMs that you aren&#039;t using.  Release floating IPs that you aren&#039;t using.  Delete Proxies that aren&#039;t doing anything.  The fewer things there are to migrate, the easier this will be.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Subscribe to <a href="https://lists.wikimedia.org/mailman/listinfo/cloud-announce" class="remarkup-link remarkup-link-ext" rel="noreferrer">https://lists.wikimedia.org/mailman/listinfo/cloud-announce</a> and actually read the postings.  Project admins that don&#039;t read their emails may find their projects migrated by surprise.</li>
</ul>

<p>Thank you!</p>

<p><div class="phabricator-remarkup-embed-layout-left"><a href="https://phab.wmfusercontent.org/file/data/kmfvvfg52rrbcwfzyksm/PHID-FILE-ax5oplhkquaszywxubss/Neutron.png" class="phabricator-remarkup-embed-image" data-sigil="lightboxable" data-meta="0_12"><img src="https://phab.wmfusercontent.org/file/data/zqjudsh26gqu3yyx7xig/PHID-FILE-fft32xyx4klhuym4vx5v/preview-Neutron.png" width="157.78188539741" height="220" alt="Neutron.png (541×388 px, 306 KB)" /></a></div></p>

<p>[1] OpenStack releases are alphabetical, two per year.  The current development version is Rocky (released late 2018); WMCS is currently running version Mitaka (released early 2016) and Neutron was first released as part of version Folsom (late 2012).  So this has been a long time coming.</p></div></content></entry><entry><title>2017 Toolforge survey results</title><link href="/phame/live/5/post/110/2017_toolforge_survey_results/" /><id>https://phabricator.wikimedia.org/phame/post/view/110/</id><author><name>bd808 (Bryan Davis)</name></author><published>2018-06-29T20:54:34+00:00</published><updated>2018-07-22T14:16:22+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Between 2017-11-20 and 2017-12-01, the Wikimedia Foundation ran a direct response user survey of registered <a href="/tag/toolforge/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_15"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_14" aria-hidden="true"></span>Toolforge</span></a> users. <em>141</em> email recipients participated in the survey which represents <em>11%</em> of those who were contacted.</p>

<h3 class="remarkup-header">Demographic questions</h3>

<p>Based on responses to demographic questions, the average [1] respondent:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">Has used Toolforge for 1-3 years</li>
<li class="remarkup-list-item">Developed 1-3 tools &amp; actively maintains 1-2 tools</li>
<li class="remarkup-list-item">Spends an hour or less a week maintaining their tools</li>
<li class="remarkup-list-item">Programs using Python and/or PHP</li>
<li class="remarkup-list-item">Does 80% or more of their development work locally</li>
<li class="remarkup-list-item">Uses source control</li>
<li class="remarkup-list-item">Was not a developer or maintainer on Toolserver</li>
</ul>

<p>[1]: &quot;Average&quot; here means a range of responses covering 50% or more of responses to the question. This summarization is coarse, but useful as a broad generalization. Detailed demographic response data is <a href="https://meta.wikimedia.org/wiki/Research:Annual_Toolforge_Survey/2017" class="remarkup-link remarkup-link-ext" rel="noreferrer">available on wiki</a>.</p>

<h3 class="remarkup-header">Qualitative questions</h3>

<ul class="remarkup-list">
<li class="remarkup-list-item">90% agree that services have high reliability (up time). Up from 87% last year.</li>
<li class="remarkup-list-item">78% agree that it is easy to write code and have it running on Toolforge. Up from 71% last year.</li>
<li class="remarkup-list-item">59% agree that they feel they are supported by the Toolforge team when they contact them via <a href="https://lists.wikimedia.org/mailman/listinfo/cloud" class="remarkup-link remarkup-link-ext" rel="noreferrer">cloud mailing list</a>, <a href="https://webchat.freenode.net/?channels=#wikimedia-cloud" class="remarkup-link remarkup-link-ext" rel="noreferrer">#wikimedia-cloud IRC channel</a>, or <a href="https://phabricator.wikimedia.org/" class="remarkup-link" rel="noreferrer">Phabricator</a>. This is down dramatically from 71% last year, but interestingly this question was left unanswered by 36% of respondents.</li>
<li class="remarkup-list-item">59% agree that they receive useful information via cloud-announce / cloud mailing lists. Up from 46% last year.</li>
<li class="remarkup-list-item">52% agree that documentation is easy to find. This is up from 46% last year and the first time crossing the 50% point. We still have a long way to go here though!</li>
<li class="remarkup-list-item">96% find the support they receive when using Toolforge as good or better than the support they received when using Toolserver. Up from 89% last year.</li>
<li class="remarkup-list-item">50% agree that Toolforge documentation is comprehensive. No change from last year.</li>
<li class="remarkup-list-item">53% agree that Toolforge documentation is clear. Up from 48% last year.</li>
</ul>

<h3 class="remarkup-header">Free form responses</h3>

<p>The survey included several free form response sections. Survey participants were told that we would only publicly share their responses or survey results in aggregate or anonymized form. The free form responses include comments broadly falling into these categories:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">Documentation (58 comments)</li>
<li class="remarkup-list-item">Platform (48 comments)</li>
<li class="remarkup-list-item">Workflow (48 comments)</li>
<li class="remarkup-list-item">Community (17 comments)</li>
<li class="remarkup-list-item">Support (6 comments)</li>
</ul>

<h4 class="remarkup-header">Documentation</h4>

<p>Comments on documentation included both positive recognition of work that has been done to improve our docs and areas that are still in need of additional work. Areas with multiple mentions include need for increased discoverability of current information, better getting started information, and more in depth coverage of topics such as wiki replica usage, Kubernetes, and job grid usage.</p>

<p>There were also comments asking for a <a href="https://wikitech.wikimedia.org/wiki/Help:Toolforge#Setting_up_code_review_and_version_control" class="remarkup-link remarkup-link-ext" rel="noreferrer">self-service version control system</a> and <a href="https://wikitech.wikimedia.org/wiki/Help:Toolforge/Developing#Pywikibot" class="remarkup-link remarkup-link-ext" rel="noreferrer">pre-installed pywikibot software</a>. Both of these are offered currently in Toolforge, so these comments were classified as missing or difficult to find documentation.</p>

<h4 class="remarkup-header">Platform</h4>

<p>Comments about the Toolforge platform have been subcategorized as follows:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item"><strong>Software (26 comments)</strong><ul class="remarkup-list">
<li class="remarkup-list-item">The majority of software comments were related to a desire for newer language runtime versions (PHP, Java, nodejs, Python) and more flexibility in the Kubernetes environment.</li>
</ul></li>
<li class="remarkup-list-item"><strong>Database (10 comments)</strong><ul class="remarkup-list">
<li class="remarkup-list-item">Database comments include praise for the new Wiki Replica servers and multiple requests for a return of user managed tables colocated with the replica databases.</li>
</ul></li>
<li class="remarkup-list-item"><strong>Reliability (10 comments)</strong><ul class="remarkup-list">
<li class="remarkup-list-item">Reliability comments included praise for good uptime, complaints of poor uptime, and requests to improve limits on shared bastion systems.</li>
</ul></li>
<li class="remarkup-list-item"><strong>Hardware (2 comments)</strong><ul class="remarkup-list">
<li class="remarkup-list-item">(sample too small to summarize)</li>
</ul></li>
</ul>

<h4 class="remarkup-header">Workflow</h4>

<ul class="remarkup-list">
<li class="remarkup-list-item"><strong>Deploy (12 comments)</strong><ul class="remarkup-list">
<li class="remarkup-list-item">The major theme here was automation for software deployment including requests for full continuous delivery pipelines.</li>
</ul></li>
<li class="remarkup-list-item"><strong>Debugging (10 comments)</strong><ul class="remarkup-list">
<li class="remarkup-list-item">People asked for better debugging tools and a way to create a more full featured local development environment.</li>
</ul></li>
<li class="remarkup-list-item"><strong>Monitoring (10 comments)</strong><ul class="remarkup-list">
<li class="remarkup-list-item">Monitoring comments included a desire for alerting based on tracked metrics and tracking of (more) metrics for each tool.</li>
</ul></li>
<li class="remarkup-list-item"><strong>Setup (10 comments)</strong><ul class="remarkup-list">
<li class="remarkup-list-item">Comments included praise for <a href="https://toolsadmin.wikimedia.org/" class="remarkup-link remarkup-link-ext" rel="noreferrer">https://toolsadmin.wikimedia.org/</a> improvements and other work done in last year.</li>
</ul></li>
<li class="remarkup-list-item"><strong>Files (6 comments)</strong><ul class="remarkup-list">
<li class="remarkup-list-item">Improved workflows for remote editing and file transfer are desired.</li>
</ul></li>
</ul>

<h4 class="remarkup-header">Community</h4>

<p>Comments classified as community related broadly called for more collaboration between tool maintainers and better adherence to practices that make accessing source code and reporting bugs easier.</p>

<h4 class="remarkup-header">Support</h4>

<p>Support related comments praised current efforts, but also pointed to confusion about where to ask questions (irc, email, phabricator).</p></div></content></entry><entry><title>Cloud Services team Q3 FY17/18 highlights</title><link href="/phame/live/5/post/91/cloud_services_team_q3_fy17_18_highlights/" /><id>https://phabricator.wikimedia.org/phame/post/view/91/</id><author><name>bd808 (Bryan Davis)</name></author><published>2018-04-09T03:44:24+00:00</published><updated>2018-04-09T19:23:24+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The Foundation fiscal quarter running from January 2018 through March 2018 was a busy one for the Cloud Services team:</p>

<p><a href="https://phabricator.wikimedia.org/p/Harej/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_19"><span class="phui-tag-core phui-tag-color-person">@Harej</span></a> joined us as an Associate Product Manager on a six month contract. James is working on defining a product roadmap for &quot;Toolhub&quot;. This project is an effort inspired by <a href="/T115650" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_16"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T115650: Create an authoritative and well promoted catalog of Wikimedia tools</span></span></a>. You can follow his progress via the <a href="/tag/toolhub/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_18"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_17" aria-hidden="true"></span>Toolhub</span></a> Phabricator project and <a href="https://meta.wikimedia.org/wiki/Toolhub" class="remarkup-link remarkup-link-ext" rel="noreferrer">the project&#039;s pages on Meta</a>.</p>

<p><a href="https://phabricator.wikimedia.org/p/Bstorm/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_20"><span class="phui-tag-core phui-tag-color-person"><span class="phui-tag-dot phui-tag-color-grey"></span>@Bstorm</span></a> was hired as an Operations Engineer. She joined us just before the Foundation&#039;s annual all hands event and got a crash course in the names and faces of about 300 co-workers. Brooke has a lot of prior experience in both systems administration and software development, and is coming up to speed quickly with the Cloud Services environment. Her recent projects include improvements to the <a href="https://tools.wmflabs.org/cdnjs/" class="remarkup-link remarkup-link-ext" rel="noreferrer">Toolforge CDNJS mirror</a> and enhancements for the automation tools we use to update the <a href="https://wikitech.wikimedia.org/wiki/Wiki_Replicas" class="remarkup-link remarkup-link-ext" rel="noreferrer">Wiki Replicas</a> indexes and views.</p>

<p>Our third new team member in January was <a href="https://phabricator.wikimedia.org/p/Chicocvenancio/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_21"><span class="phui-tag-core phui-tag-color-person">@Chicocvenancio</span></a>. A long time Wikimedian and Toolforge user, Chico is working as a Technical Support contractor. If you stop by the <a href="https://webchat.freenode.net/?channels=wikimedia-cloud" class="remarkup-link remarkup-link-ext" rel="noreferrer">#wikimedia-cloud</a> irc channel and ask for <tt class="remarkup-monospaced">!help</tt> Chico is likely to be one of the folks who tries to help you out.</p>

<p><a href="https://phabricator.wikimedia.org/p/srodlund/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_22"><span class="phui-tag-core phui-tag-color-person"><span class="phui-tag-dot phui-tag-color-grey"></span>@srodlund</span></a> also officially became part of the team as a technical writer. Sarah had been working with us on an ad hoc basis for months, but in January we came to an agreement for her to spend 50% of her paid Foundation time working on technical writing projects. Sarah has many years of experience as both a technical writer and as a writing instructor. We are excited to have her leading our efforts to create a community of technical writing contributors for the many Wikimedia projects.</p>

<p>The team was also busy working on the &#039;normal&#039; projects which, when things go well, are seldom noticed. <a href="https://wikitech.wikimedia.org/" class="remarkup-link remarkup-link-ext" rel="noreferrer">Wikitech</a>, <a href="https://horizon.wikimedia.org/" class="remarkup-link remarkup-link-ext" rel="noreferrer">Horizon</a>, and the <a href="https://toolsadmin.wikimedia.org/" class="remarkup-link remarkup-link-ext" rel="noreferrer">Toolforge admin console</a> have been moved to new physical servers thanks to <a href="https://phabricator.wikimedia.org/p/Andrew/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_23"><span class="phui-tag-core phui-tag-color-person">@Andrew</span></a>. You can read more about the details in <a href="https://phabricator.wikimedia.org/phame/post/view/87/running_red-queen-style/" class="remarkup-link" rel="noreferrer">Running red-queen-style</a>. <a href="https://phabricator.wikimedia.org/p/aborrero/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_24"><span class="phui-tag-core phui-tag-color-person"><span class="phui-tag-dot phui-tag-color-grey"></span>@aborrero</span></a> has been working on making software security updates easier to manage. <a href="https://phabricator.wikimedia.org/p/chasemp/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_25"><span class="phui-tag-core phui-tag-color-person"><span class="phui-tag-dot phui-tag-color-grey"></span>@chasemp</span></a> is progressing on our OpenStack Neutron migration project. The public facing parts of <a href="https://dumps.wikimedia.org/" class="remarkup-link remarkup-link-ext" rel="noreferrer">Dumps</a> have been moved to new servers thanks to a collaboration by <a href="https://phabricator.wikimedia.org/p/madhuvishy/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_26"><span class="phui-tag-core phui-tag-color-person"><span class="phui-tag-dot phui-tag-color-grey"></span>@madhuvishy</span></a> and <a href="https://phabricator.wikimedia.org/p/ArielGlenn/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_27"><span class="phui-tag-core phui-tag-color-person">@ArielGlenn</span></a>.</p>

<p>In Toolforge news, long time volunteer <a href="https://phabricator.wikimedia.org/p/zhuyifei1999/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_28"><span class="phui-tag-core phui-tag-color-person">@zhuyifei1999</span></a> was granted Toolforge administrator rights. YiFei has been providing great technical support advice to our community and code contributions for Toolforge and related services for many months. The adminship gives him greater abilities to troubleshoot and correct problems for Toolforge tool maintainers.</p></div></content></entry><entry><title>Running red-queen-style</title><link href="/phame/live/5/post/87/running_red-queen-style/" /><id>https://phabricator.wikimedia.org/phame/post/view/87/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2018-03-09T23:42:32+00:00</published><updated>2018-03-20T14:49:34+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I&#039;ve spent the last few months building new web servers to support some of the basic WMCS web services:  Wikitech, Horizon, and Toolsadmin.  The new Wikitech service is already up and running; on Wednesday I hope to flip the last switch and move all public Horizon and Toolsadmin traffic to the new servers as well.</p>

<p>If everything goes as planned, users will barely notice this change at all.</p>

<p>This is a lot of what our team does -- running as fast as we can just to stay in place.  Software doesn&#039;t last forever -- it takes a lot of effort just to hold things together.  Here are some of the problems that this rebuild is solving:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item"><a href="https://phabricator.wikimedia.org/T186288" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_29"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T186288</span></span></a>: <strong>Operating System obsolescence</strong>. Years ago, the Wikimedia Foundation Operations team resolved to move all of our infrastructure from Ubuntu to Debian Linux.  Ubuntu Trusty will stop receiving security upgrades in about a year, so we have to stop using it by then. All three services (Wikitech, Horizon, Toolsadmin) were running on Ubuntu servers; Wikitech was the last of the Foundation&#039;s MediaWiki hosts to run on Ubuntu, so its upgrade should allow for all kinds of special cases to be ignored in the future.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item"><a href="https://phabricator.wikimedia.org/T98813" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_30"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T98813</span></span></a>: <strong>Keeping up with PHP and HHVM</strong>.  In addition to being the last wiki on Trusty, Wikitech was also the last wiki on  PHP 5.  Every other wiki is using HHVM and, with the death of the old Wikitech, we can finally stop supporting PHP 5 internally.  Better yet, this plays a part in unblocking the entire MediaWiki ecosystem (<a href="https://phabricator.wikimedia.org/T172165" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_31"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T172165</span></span></a>) as newer versions of MediaWiki standardize on HHVM or PHP 7.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item"><a href="https://phabricator.wikimedia.org/T168559" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_32"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T168559</span></span></a>: <strong>Escaping failing hardware</strong>.  The old Wikitech site was hosted on a machine named &#039;Silver&#039;.  Hardware wears out, and Silver is pretty old.  The last few times I&#039;ve rebooted it, it&#039;s required a bit of nudging to bring it back up.  If it powered down today, it would probably come back, but it might not.  As of today&#039;s switchover, that scenario won&#039;t result in weeks of Wikitech downtime.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item"><a href="https://phabricator.wikimedia.org/T169099" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_33"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T169099</span></span></a>: <strong>Tracking OpenStack upgrades</strong>.  OpenStack (the software project that includes Horizon and most of our virtual machine infrastructure) releases a new version every six months.  Ubuntu packages up every version with all of its dependencies, and provides a clear upgrade path between versions.  Debian, for the most part, does not.  The new release of Horizon is no longer deployed through an upstream package at all, but instead is a pure Python deploy starting with the raw Horizon source and requirements list, rolled into Wheels and deployed into an isolated virtual environment.  It&#039;s unclear exactly how we&#039;ll transition our other OpenStack components away from Ubuntu, but this Horizon deploy provides a potential model for deploying any OpenStack project, any version, on any OS.  Having done this I&#039;m much less worried about our reliance on often-fickle upstream packagers.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item"><a href="https://phabricator.wikimedia.org/T187506" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_34"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T187506</span></span></a>: <strong>High availability</strong>.  The old versions of these web services were hosted on single servers.  Any maintenance or hardware downtime meant that the websites were gone for the duration.  Now we have a pair of servers with a shared cache, behind a load-balancer.  If either of the servers dies (or, more likely, we need to reboot one for kernel updates) the website will remain up and responsive.</li>
</ul>

<p>Of course, having just moved wikitech to HHVM, the main Wikimedia cluster is being upgraded from HHVM to PHP 7, and Wikitech will soon follow suit.  The websites look the same, but the race never ends.</p></div></content></entry><entry><title>Ubuntu Trusty now deprecated for new WMCS instances</title><link href="/phame/live/5/post/82/ubuntu_trusty_now_deprecated_for_new_wmcs_instances/" /><id>https://phabricator.wikimedia.org/phame/post/view/82/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2017-11-20T18:32:52+00:00</published><updated>2018-02-08T21:17:13+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Long ago, the Wikimedia Operations team made the decision to phase out use of Ubuntu servers in favor of Debian.  It&#039;s a long, slow process that is still ongoing, but in production Trusty is running on an ever-shrinking minority of our servers.</p>

<p>As Trusty becomes more of an odd duck in production, it grows harder to support in Cloud Services as well.  Right now we have no planned timeline for phasing out Trusty instances (there are 238 of them!) but in anticipation of that phase-out we&#039;ve now disabled creation of new Trusty VMs.</p>

<p>This is an extremely minor technical change (the base image is still there, just marked as &#039;private&#039; in OpenStack Glance).  Existing Trusty VMs are unaffected by this change, as are present ToolForge workflows.</p>

<p>Even though any new Trusty images represent additional technical debt, The WMCS team anticipates that there will still be occasional, niche requirements for Trusty (for example when testing behavior of those few remaining production Trusty instances, or to support software that&#039;s not yet packaged on Debian).  These requests will be handled via phabricator requests and a bit of commandline magic.</p></div></content></entry><entry><title>Automated OpenStack Testing, now with charts and graphs</title><link href="/phame/live/5/post/76/automated_openstack_testing_now_with_charts_and_graphs/" /><id>https://phabricator.wikimedia.org/phame/post/view/76/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2017-09-29T21:26:48+00:00</published><updated>2017-11-08T12:28:37+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>One of our quarterly goals was &quot;Define a metric to track OpenStack system availability&quot;.  Despite the weak phrasing, we elected to not only pick something to measure but also to actually measure it.</p>

<p>I originally proposed this goal based on the notion that VPS creation seems to break pretty often, but that I have no idea how often, or for how long.  The good news is that several months ago Chase wrote a <a href="https://phabricator.wikimedia.org/source/operations-puppet/browse/production/modules/openstack2/files/nova/fullstack/nova_fullstack_test.py" class="remarkup-link" rel="noreferrer">&#039;fullstack&#039; testing tool</a> that creates a VM, checks to see if comes up, makes sure that DNS and puppet work, and finally deletes the new VM.  That tool is now running in an (ideally) uninterrupted loop, reporting successes and failures to graphite so that we can gather up long-term statistics about when things are working.</p>

<p><div class="phabricator-remarkup-embed-layout-left"><a href="https://phab.wmfusercontent.org/file/data/lwwcfhw3db4ahp3swofg/PHID-FILE-2srsrumlgs34z3ku4tcq/fullstack.png" class="phabricator-remarkup-embed-image" data-sigil="lightboxable" data-meta="0_35"><img src="https://phab.wmfusercontent.org/file/data/larempuyzax6ip6bkqux/PHID-FILE-eig6ktaxrbzpumgva6iw/preview-fullstack.png" width="220" height="140.82063305979" alt="fullstack.png (546×853 px, 148 KB)" /></a></div></p>

<p>In addition to the fullstack test, I wrote some Prometheus tests that check whether or not individual public OpenStack APIs are responding to requests.  When these services go down the fullstack test is also likely to break, but other things are affected as well:  <a href="https://horizon.wikimedia.org/" class="remarkup-link remarkup-link-ext" rel="noreferrer">Horizon</a>, the <a href="https://tools.wmflabs.org/openstack-browser/" class="remarkup-link remarkup-link-ext" rel="noreferrer">openstack-browser</a>, and potentially various internal Cloud Services things like DNS updates.</p>

<p><strong>All of these new stats can now be viewed on the <a href="https://grafana.wikimedia.org/dashboard/db/wmcs-api-uptimes" class="remarkup-link remarkup-link-ext" rel="noreferrer">WMCS API uptimes dashboard</a>.</strong>  The information there isn&#039;t very detailed but should be useful to the WMCS staff as we work to improve stability, and should be useful to our users when they want to answer the question &quot;Is this broken for everyone or just for me?&quot;</p>

<p><div class="phabricator-remarkup-embed-layout-left"><a href="https://phab.wmfusercontent.org/file/data/gjtzxrqq6f4pvqnb6s42/PHID-FILE-b35q4rf7j4vt3l7lukar/uptime.png" class="phabricator-remarkup-embed-image" data-sigil="lightboxable" data-meta="0_36"><img src="https://phab.wmfusercontent.org/file/data/xcfa2he57eggwhwheizf/PHID-FILE-s2bxk332xdlmpsgvloav/preview-uptime.png" width="220" height="82.608695652174" alt="uptime.png (570×1 px, 84 KB)" /></a></div></p></div></content></entry><entry><title>Introducing the Cloud Services Team: What we do, and how we can help you</title><link href="/phame/live/5/post/72/introducing_the_cloud_services_team_what_we_do_and_how_we_can_help_you/" /><id>https://phabricator.wikimedia.org/phame/post/view/72/</id><author><name>bd808 (Bryan Davis)</name></author><published>2017-09-13T18:44:02+00:00</published><updated>2017-09-14T00:39:54+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><blockquote><p>24% of Wikipedia edits over a three month period in 2016 were completed by software hosted in Cloud Services projects. In the same time period, 3.8 billion Action API requests were made from Cloud Services. We are the newly formed Cloud Services team at the Foundation, which maintains a stable and efficient public cloud hosting platform for technical projects relevant to the Wikimedia movement. -- <a href="https://blog.wikimedia.org/2017/09/11/introducing-wikimedia-cloud-services/" class="remarkup-link remarkup-link-ext" rel="noreferrer">https://blog.wikimedia.org/2017/09/11/introducing-wikimedia-cloud-services/</a></p></blockquote>

<p>With a lot of help from <a href="https://phabricator.wikimedia.org/p/MelodyKramer/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_39"><span class="phui-tag-core phui-tag-color-person"><span class="phui-tag-dot phui-tag-color-grey"></span>@MelodyKramer</span></a> and the <a href="/tag/diff-blog/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_38"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_37" aria-hidden="true"></span>Diff-blog</span></a> team, we have <a href="https://blog.wikimedia.org/2017/09/11/introducing-wikimedia-cloud-services/" class="remarkup-link remarkup-link-ext" rel="noreferrer">published a blog post on the main Wikimedia blog</a>. The post talks a bit about why we formed the Wikimedia Cloud Services team and what the purpose of the product rebranding we have been working on is. It also gives a shout out to a very small number of the Toolforge tools and Cloud VPS projects that the Wikimedia technical community make. I wish I could have named them all, but there are just too many!</p></div></content></entry><entry><title>New Wiki Replica servers ready for use</title><link href="/phame/live/5/post/70/new_wiki_replica_servers_ready_for_use/" /><id>https://phabricator.wikimedia.org/phame/post/view/70/</id><author><name>bd808 (Bryan Davis)</name></author><published>2017-09-25T23:43:07+00:00</published><updated>2018-01-02T15:59:27+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h3 class="remarkup-header">TL;DR</h3>

<ul class="remarkup-list">
<li class="remarkup-list-item">Change your tools and scripts to use:<ul class="remarkup-list">
<li class="remarkup-list-item"><tt class="remarkup-monospaced">*.web.db.svc.eqiad.wmflabs</tt> (real-time response needed)</li>
<li class="remarkup-list-item"><tt class="remarkup-monospaced">*.analytics.db.svc.eqiad.wmflabs</tt> (batch jobs; long queries)</li>
</ul></li>
<li class="remarkup-list-item">Replace <tt class="remarkup-monospaced">*</tt> with either a <a href="https://wikitech.wikimedia.org/wiki/MariaDB#Shards" class="remarkup-link remarkup-link-ext" rel="noreferrer">shard</a> name (e.g. <tt class="remarkup-monospaced">s1</tt>) or a wikidb name (e.g. <tt class="remarkup-monospaced">enwiki</tt>).</li>
<li class="remarkup-list-item">The new servers <strong>do not</strong> support user created databases/tables because replication can&#039;t be guaranteed. See <a href="https://phabricator.wikimedia.org/T156869" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_40"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T156869</span></span></a> and below for more information. <tt class="remarkup-monospaced">tools.db.svc.eqiad.wmflabs</tt> (also known as <tt class="remarkup-monospaced">tools.labsdb</tt>) will continue to support user created databases and tables.</li>
<li class="remarkup-list-item">Report any bugs you find with these servers in Phabricator using the <a href="/tag/data-services/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_51"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_50" aria-hidden="true"></span>Data-Services</span></a> tag.</li>
</ul>

<h3 class="remarkup-header">Wiki Replicas</h3>

<p>The Wiki Replicas are one of the unique services that Wikimedia Cloud Services helps make available to our communities. Wiki Replicas are real-time replicas of the production Wikimedia MediaWiki wiki databases with privacy-sensitive data removed. These databases hold copies of all the metadata about content and interactions on the wikis. You can <a href="https://wikitech.wikimedia.org/wiki/Help:Toolforge/Database" class="remarkup-link remarkup-link-ext" rel="noreferrer">read more about these databases on Wikitech</a> if you are unfamiliar with their details.</p>

<p>The current physical servers for the <tt class="remarkup-monospaced">&lt;wiki&gt;_p</tt> Wiki Replica databases are at the end of their useful life. Work started over a year ago on a project involving the <a href="/tag/dba/" class="phui-tag-view phui-tag-type-shade phui-tag-violet phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_53"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-users" data-meta="0_52" aria-hidden="true"></span>DBA</span></a> team and <a href="/tag/cloud-services-team/" class="phui-tag-view phui-tag-type-shade phui-tag-violet phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_55"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-users" data-meta="0_54" aria-hidden="true"></span>cloud-services-team</span></a> to replace these aging servers (<a href="https://phabricator.wikimedia.org/T140788" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_41"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T140788</span></span></a>). Besides being five years old, the current servers have other issues that the <a href="/tag/dba/" class="phui-tag-view phui-tag-type-shade phui-tag-violet phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_57"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-users" data-meta="0_56" aria-hidden="true"></span>DBA</span></a> team took this opportunity to fix:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">Data drift from production (<a href="https://phabricator.wikimedia.org/T138967" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_42"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T138967</span></span></a>)</li>
<li class="remarkup-list-item">No way to give different levels of service for realtime applications vs analytics queries</li>
<li class="remarkup-list-item">No automatic failover to another server when one failed</li>
</ul>

<h3 class="remarkup-header">Bigger, faster, more available</h3>

<p>Each of the three new servers is much larger and faster than the servers they are replacing. Five years is a very long time in the world of computer hardware:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">2 x 4 <a href="https://en.wikipedia.org/wiki/Multi-core_processor" class="remarkup-link remarkup-link-ext" rel="noreferrer">core</a> processors (16 <a href="https://en.wikipedia.org/wiki/Hyper-threading" class="remarkup-link remarkup-link-ext" rel="noreferrer">virtual cores</a> total)</li>
<li class="remarkup-list-item">512 GB of <a href="https://en.wikipedia.org/wiki/Random-access_memory" class="remarkup-link remarkup-link-ext" rel="noreferrer">RAM</a> (2.5 times the old amount)</li>
<li class="remarkup-list-item">12 TB of <a href="https://en.wikipedia.org/wiki/Solid-state_drive" class="remarkup-link remarkup-link-ext" rel="noreferrer">SSD disks</a> (vs 5 TB of <a href="https://en.wikipedia.org/wiki/Hard_disk_drive" class="remarkup-link remarkup-link-ext" rel="noreferrer">fixed disks</a> previously)</li>
</ul>

<p>We have also upgraded the database software itself. The new servers are running <a href="https://en.wikipedia.org/wiki/MariaDB" class="remarkup-link remarkup-link-ext" rel="noreferrer">MariaDB</a> version 10.1. Among other improvements, this newer database software allows us to use a <a href="https://mariadb.com/kb/en/the-mariadb-library/roles_overview/" class="remarkup-link remarkup-link-ext" rel="noreferrer">permissions system</a> that is simpler and more secure for managing the large number of individual tools that are granted access to the databases.</p>

<p>The new servers use <a href="https://en.wikipedia.org/wiki/InnoDB" class="remarkup-link remarkup-link-ext" rel="noreferrer">InnoDB tables</a> rather than the previous <a href="https://en.wikipedia.org/wiki/TokuDB" class="remarkup-link remarkup-link-ext" rel="noreferrer">TokuDB</a> storage. TokuDB was used on the old servers as a space-saving measure, but it has also had <a href="https://jira.mariadb.org/browse/MDEV-10796" class="remarkup-link remarkup-link-ext" rel="noreferrer">bugs in the past</a> that caused delays to replication. InnoDB is used widely in the Wikimedia production databases without these problems.</p>

<p>The new cluster is configured with automatic load balancing and failover using <a href="https://en.wikipedia.org/wiki/HAProxy" class="remarkup-link remarkup-link-ext" rel="noreferrer">HAProxy</a>. All three hosts have identical data. Currently, two of the hosts are actively accepting connections and processing queries. The third is a ready replacement for either of the others in case of unexpected failure or when we need to do maintenance on the servers themselves. As we learn more about usage and utilization on these new hosts we can change things to better support the workloads that are actually being generated. This may include setting up different query duration limits or pooling the third server to support some of the load. The main point is that the new system provides us with the ability to make these types of changes which were not possible previously.</p>

<h3 class="remarkup-header">Improved replication</h3>

<p>The work of scrubbing private data is done on a set of servers that we call &quot;sanitarium&quot; hosts. The sanitarium servers receive data from the production primary servers. They then in turn act as the primary servers which are replicated to the Wiki Replica cluster. The two sanitarium servers for the new Wiki Replica cluster use <a href="https://dev.mysql.com/doc/refman/5.7/en/replication-rbr-usage.html" class="remarkup-link remarkup-link-ext" rel="noreferrer">row-based replication (RBR)</a>. <a href="https://phabricator.wikimedia.org/p/Marostegui/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_58"><span class="phui-tag-core phui-tag-color-person">@Marostegui</span></a> explains the importance of this change and its relationship to <a href="/T138967" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_43"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T138967: Labs database replica drift</span></span></a>:</p>

<blockquote><p>[W]e are ensuring that whatever comes to those hosts (which are, in some cases, normal production slaves) is exactly what is being replicated to the [Cloud] servers. Preventing us from data drifts, as any data drift on row based replication would break replication on the [Cloud] servers. Which is bad, because they get replication broken, but at the same time is good, because it is a heads up that the data isn&#039;t exactly as we have it in core. Which allows us to maintain a sanitized and healthy dataset, avoiding all the <a href="https://dev.mysql.com/doc/refman/5.7/en/replication-sbr-rbr.html#replication-sbr-rbr-sbr-disadvantages" class="remarkup-link remarkup-link-ext" rel="noreferrer">issues we have had in the past</a>.</p></blockquote>

<p>The data replicated to the new servers has been completely rebuilt from scratch using the RBR method. This has fixed many replication drift problems that exist on the older servers (<a href="https://phabricator.wikimedia.org/T138967" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_44"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T138967</span></span></a>). If your tool performs tasks where data accuracy is important (counting edits, checking if a page has been deleted, etc), you should switch to using the new servers as soon as possible.</p>

<h3 class="remarkup-header">New service names</h3>

<p>Populating the new sanitarium servers with data was a long process (<a href="https://phabricator.wikimedia.org/T153743" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_45"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T153743</span></span></a>), but now that it is done our three new Wiki Replica servers are ready for use. With the old setup, we asked people to use a unique hostname with each database they connected to (e.g. <tt class="remarkup-monospaced">enwiki.labsdb</tt>). The new cluster extends this by adding using service names to separate usage by the type of queries that are being run:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">Use <tt class="remarkup-monospaced">*.web.db.svc.eqiad.wmflabs</tt> for webservices and other tools that need to make small queries and get responses quickly.</li>
<li class="remarkup-list-item">Use <tt class="remarkup-monospaced">*.analytics.db.svc.eqiad.wmflabs</tt> for longer running queries that can be slower.</li>
</ul>

<p>If you were using <tt class="remarkup-monospaced">enwiki.labsdb</tt> you should switch to either <tt class="remarkup-monospaced">enwiki.analytics.db.svc.eqiad.wmflabs</tt> or <tt class="remarkup-monospaced">enwiki.web.db.svc.eqiad.wmflabs</tt>. The choice of &quot;analytics&quot; or &quot;web&quot; depends on what your tool is doing, but a good rule of thumb is that any query that routinely takes more than 10 seconds to run should probably use the &quot;analytics&quot; service.</p>

<p>Right now there is no actual difference between connecting to the &quot;web&quot; or &quot;analytics&quot; service names. As these servers get more usage and we understand the limitations they have this may change. Having a way for a user to explicitly choose between real-time responses and slower responses for more complicated queries will provide more flexibility in tuning the systems. We expect to be able to allow queries to run for a much longer time on the new analytics service names than we can on the current servers. This in turn should help people who have been struggling to gather the data needed for complex reports within the current per-request timeout limits.</p>

<h3 class="remarkup-header">A breaking change</h3>

<p>These new servers <strong>will not</strong> allow users to create their own databases/tables co-located with the replicated content. This was a feature of the older database servers that some tools used to improve performance by making intermediate tables that could then be <a href="https://en.wikipedia.org/wiki/Join_(SQL)" class="remarkup-link remarkup-link-ext" rel="noreferrer">JOINed</a> to other tables to produce certain results.</p>

<p>We looked for solutions that would allow us to replicate user created data across the three servers, but we could not come up with a solution that would guarantee success. The user created tables on the current servers are not backed up or replicated and have always <a href="https://wikitech.wikimedia.org/wiki/Help:Toolforge/Database#Steps_to_create_a_user_database_on_the_replica_servers" class="remarkup-link remarkup-link-ext" rel="noreferrer">carried the disclaimer</a> that these tables may disappear at any time. With the improvements in our ability to fail over and rebalance traffic under load, it is more likely on the new cluster that these tables would randomly appear and disappear from the point of view of a given user. This kind of disruption will break tools if we allow it. It seems a safer solution for everyone to disallow the former functionality.</p>

<p>User created databases and tables <strong>are still supported</strong> on the <tt class="remarkup-monospaced">tools.db.svc.eqiad.wmflabs</tt> server (also known as <tt class="remarkup-monospaced">tools.labsdb</tt>). If you are using tables co-located on the current <tt class="remarkup-monospaced">c1.labsdb</tt> or <tt class="remarkup-monospaced">c3.labsdb</tt> hosts we are recommending that your tool/scripts be updated to instead keep all user managed data on <tt class="remarkup-monospaced">tools.db.svc.eqiad.wmflabs</tt> and perform any joining of replica data and user created data in application space rather than with cross-database joins.</p>

<p>There will be further announcements before the old servers are completely taken offline, but tools maintainers are urged to make changes as soon as they can. The hardware for the older servers is very old and may fail in a non-recoverable way unexpectedly (<a href="https://phabricator.wikimedia.org/T126942" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_46"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T126942</span></span></a>).</p>

<h3 class="remarkup-header">Curated datasets</h3>

<p>There are some datasets produced by <a href="/tag/ores/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_60"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_59" aria-hidden="true"></span>ORES</span></a>, the <a href="/tag/analytics/" class="phui-tag-view phui-tag-type-shade phui-tag-disabled phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_62"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_61" aria-hidden="true"></span>Analytics</span></a> team, or volunteers that really do need to be co-located with the wiki tables to be useful. We are looking for a solution for these datasets that will allow them to be replicated properly and available everywhere. See <a href="/T173511" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_47"><span class="phui-tag-core phui-tag-color-object">T173511: Implement technical details and process for &quot;datasets_p&quot; on wikireplica hosts</span></a> for further discussion of providing some method for &#039;curated&#039; datasets to be added to the new cluster.</p>

<p><a href="https://meta.wikimedia.org/wiki/Research:Quarry" class="remarkup-link remarkup-link-ext" rel="noreferrer">Quarry</a> will be switched over to use <tt class="remarkup-monospaced">*.analytics.db.svc.eqiad.wmflabs</tt> soon. As noted previously, using the analytics service names should allow more complex queries to complete which will be a big benefit for Quarry&#039;s users who are doing analytics work. This change may however temporarily interrupt usage of some datasets that are blocked by <a href="https://phabricator.wikimedia.org/T173511" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_48"><span class="phui-tag-core phui-tag-color-object">T173511</span></a>. Follow that task for more information if your work is affected.</p>

<h3 class="remarkup-header">You can help test the new servers</h3>

<p>Before we make the new servers the default for everyone, we would like some early adopters to use them and help us find issues like:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">missing permissions</li>
<li class="remarkup-list-item">missing views</li>
<li class="remarkup-list-item">missing wikidb service names</li>
</ul>

<p>To use them, change your tool to connect to:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item"><tt class="remarkup-monospaced">*.web.db.svc.eqiad.wmflabs</tt> (real-time response needed)</li>
<li class="remarkup-list-item"><tt class="remarkup-monospaced">*.analytics.db.svc.eqiad.wmflabs</tt> (batch jobs; long queries)</li>
</ul>

<p>Replace the <tt class="remarkup-monospaced">*</tt> with either a <a href="https://wikitech.wikimedia.org/wiki/MariaDB#Shards" class="remarkup-link remarkup-link-ext" rel="noreferrer">shard</a> name (e.g. <tt class="remarkup-monospaced">s1</tt>) or a wikidb name (e.g. <tt class="remarkup-monospaced">enwiki</tt>).</p>

<p>For interactive queries, use one of:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item"><tt class="remarkup-monospaced">sql --cluster analytics &lt;database_name&gt;</tt></li>
<li class="remarkup-list-item"><tt class="remarkup-monospaced">mysql --defaults-file=$HOME/replica.my.cnf -h &lt;wikidb&gt;.analytics.db.svc.eqiad.wmflabs &lt;database_name&gt;</tt></li>
</ul>

<p>Report any bugs you find with these servers and their data in Phabricator using the <a href="/tag/data-services/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_64"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_63" aria-hidden="true"></span>Data-Services</span></a> tag.</p>

<h3 class="remarkup-header">Thanks</h3>

<p>The <a href="/tag/cloud-services-team/" class="phui-tag-view phui-tag-type-shade phui-tag-violet phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_66"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-users" data-meta="0_65" aria-hidden="true"></span>cloud-services-team</span></a> would like to especially thank <a href="https://phabricator.wikimedia.org/p/jcrespo/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_67"><span class="phui-tag-core phui-tag-color-person">@jcrespo</span></a> and <a href="https://phabricator.wikimedia.org/p/Marostegui/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_68"><span class="phui-tag-core phui-tag-color-person">@Marostegui</span></a> for the work that they put into designing and implementing this new cluster. Without their technical experience and time this project would never have been successful.</p>

<h3 class="remarkup-header">Learn more</h3>

<ul class="remarkup-list">
<li class="remarkup-list-item"><a href="https://www.mediawiki.org/wiki/Wikimedia_Developer_Summit/2017/Labsdb" class="remarkup-link remarkup-link-ext" rel="noreferrer">Overview of LabsDBs</a> by <a href="https://phabricator.wikimedia.org/p/jcrespo/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_69"><span class="phui-tag-core phui-tag-color-person">@jcrespo</span></a> at <a href="https://www.mediawiki.org/wiki/Wikimedia_Developer_Summit/2017/Program" class="remarkup-link remarkup-link-ext" rel="noreferrer">2017 Wikimedia Developer Summit</a> (<a href="https://commons.wikimedia.org/wiki/File:Labsdbs_for_WMF_tools_and_contributors_-_get_more_data,_faster.webm" class="remarkup-link remarkup-link-ext" rel="noreferrer">video</a>, <a href="https://commons.wikimedia.org/wiki/File:Labsdbs-_get_more_data,_faster.pdf" class="remarkup-link remarkup-link-ext" rel="noreferrer">slides</a>)</li>
<li class="remarkup-list-item"><a href="https://wikitech.wikimedia.org/wiki/Portal:Data_Services" class="remarkup-link remarkup-link-ext" rel="noreferrer">Data Services portal on Wikitech</a></li>
<li class="remarkup-list-item"><a href="/T140788" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_49"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T140788: Labs databases rearchitecture (tracking)</span></span></a></li>
</ul></div></content></entry><entry><title>Tool creation added to toolsadmin.wikimedia.org</title><link href="/phame/live/5/post/67/tool_creation_added_to_toolsadmin.wikimedia.org/" /><id>https://phabricator.wikimedia.org/phame/post/view/67/</id><author><name>bd808 (Bryan Davis)</name></author><published>2017-08-29T03:41:55+00:00</published><updated>2019-05-21T23:11:23+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="https://toolsadmin.wikimedia.org" class="remarkup-link remarkup-link-ext" rel="noreferrer">Toolsadmin.wikimedia.org</a> is a management interface for <a href="/tag/toolforge/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_75"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_74" aria-hidden="true"></span>Toolforge</span></a> users. On 2017-08-24, a new major update to the application was deployed which added support for creating new tool accounts and managing metadata associated with all tool accounts.</p>

<p>Under the older Wikitech based tool creation process, a tool maintainer sees this interface: <div class="phabricator-remarkup-embed-layout-center"><a href="https://phab.wmfusercontent.org/file/data/dv6rvcoi3ix6w47fsuyv/PHID-FILE-n5wzyb5wtg6p24yvgoik/Screen_Shot_2017-08-28_at_7.07.58_PM.png" class="phabricator-remarkup-embed-image-full" data-sigil="lightboxable" data-meta="0_70"><img src="https://phab.wmfusercontent.org/file/data/dv6rvcoi3ix6w47fsuyv/PHID-FILE-n5wzyb5wtg6p24yvgoik/Screen_Shot_2017-08-28_at_7.07.58_PM.png" height="126" width="433" loading="lazy" alt="wikitech screenshot" /></a></div></p>

<p>As <a href="https://phabricator.wikimedia.org/p/yuvipanda/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_76"><span class="phui-tag-core phui-tag-color-person">@yuvipanda</span></a> noted in <a href="https://phabricator.wikimedia.org/T128158" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_73"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T128158</span></span></a>, this interface is rather confusing. What is a &quot;service group?&quot; I thought I just clicked a link that said &quot;Create a new Tool.&quot; What are the constrains of this name and where will it be used?</p>

<p>With the new process on toolsadmin, the initial form includes more explanation and collects additional data: <div class="phabricator-remarkup-embed-layout-center"><a href="https://phab.wmfusercontent.org/file/data/hr2hv6hufbz3pkk4fkt6/PHID-FILE-ylino4ov7uccwhkxghdp/Screen_Shot_2017-08-28_at_7.09.15_PM.png" class="phabricator-remarkup-embed-image-full" data-sigil="lightboxable" data-meta="0_71"><img src="https://phab.wmfusercontent.org/file/data/hr2hv6hufbz3pkk4fkt6/PHID-FILE-ylino4ov7uccwhkxghdp/Screen_Shot_2017-08-28_at_7.09.15_PM.png" height="713" width="1019" loading="lazy" alt="toolsadmin screenshot" /></a></div></p>

<p>The form labels are more consistent. Some explanation is given for how the tool&#039;s name will be used and a link is provided to <a href="https://wikitech.wikimedia.org/wiki/Help:Tool_Labs#What_is_a_Tool_account.3F" class="remarkup-link remarkup-link-ext" rel="noreferrer">additional documentation on wikitech</a>. More information is also collected that will be used to help others understand the purpose of the tool. This information is displayed on the <a href="https://toolsadmin.wikimedia.org/tools/id/jouncebot" class="remarkup-link remarkup-link-ext" rel="noreferrer">tool&#039;s public description page</a> in toolsadmin: <div class="phabricator-remarkup-embed-layout-center"><a href="https://phab.wmfusercontent.org/file/data/awyohfmoysdgjvnozqyh/PHID-FILE-nbdmmp2nyuxs2v7j5x6w/Screen_Shot_2017-08-28_at_9.00.36_PM.png" class="phabricator-remarkup-embed-image-full" data-sigil="lightboxable" data-meta="0_72"><img src="https://phab.wmfusercontent.org/file/data/awyohfmoysdgjvnozqyh/PHID-FILE-nbdmmp2nyuxs2v7j5x6w/Screen_Shot_2017-08-28_at_9.00.36_PM.png" height="281" width="737" loading="lazy" alt="toolinfo example" /></a></div></p>

<p>After a tool has been created, additional information can also be supplied. This information is a superset of the data needed for the <tt class="remarkup-monospaced">toolinfo.json</tt> standard used by <a href="https://tools.wmflabs.org/hay/directory/" class="remarkup-link remarkup-link-ext" rel="noreferrer">Hay&#039;s Directory</a>. All tools documented using toolsadmin are automatically published to Hay&#039;s Directory. Some of this information can also be edited collaboratively by others. A tool can also have multiple toolinfo.json entries to support tools where a suite of functionality is published under a single tool account.</p>

<p>The <a href="/tag/striker/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_78"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_77" aria-hidden="true"></span>Striker</span></a> project tracks bugs and feature ideas for toolsadmin. The application is written in <a href="https://en.wikipedia.org/wiki/Python_(programming_language)" class="remarkup-link remarkup-link-ext" rel="noreferrer">Python3</a> using the <a href="https://en.wikipedia.org/wiki/Django_(web_framework)" class="remarkup-link remarkup-link-ext" rel="noreferrer">Django framework</a>. Like all Wikimedia software projects, Striker is FLOSS software and community contributions are welcome. See the <a href="https://wikitech.wikimedia.org/wiki/Striker" class="remarkup-link remarkup-link-ext" rel="noreferrer">project&#039;s page on wikitech</a> for more information about contributing to the project.</p></div></content></entry><entry><title>New dedicated puppetmasters for cloud instances</title><link href="/phame/live/5/post/66/new_dedicated_puppetmasters_for_cloud_instances/" /><id>https://phabricator.wikimedia.org/phame/post/view/66/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2017-08-22T22:29:31+00:00</published><updated>2017-10-03T23:23:44+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Back in year zero of Wikimedia Labs, shockingly many services were confined to a single box.  A server named &#039;virt0&#039; hosted the Wikitech website, Keystone, Glance, Ldap, Rabbitmq, ran a puppetmaster, and did a bunch of other things.</p>

<p>Even after the move from the Tampa data center to Ashburn, the model remained much the same, with a whole lot of different services crowded onto a single, overworked box.  Since then we&#039;ve been gradually splitting out important services onto their own systems -- it takes up a bit more rack space but has made debugging and management much more straightforward.</p>

<p>Today I&#039;ve put the final finishing touches on one of the biggest break-away services to date:  The puppetmaster that manages most cloud instances is no longer running on &#039;labcontrol1001&#039;; instead the puppetmaster has its own two-server cluster which does puppet and nothing else.  VMs have been using the new puppetmasters for a few weeks, but I&#039;ve just now finally shut down the old service on labcontrol1001 and cleaned things up.</p>

<p>With luck, this new setup will gain us some or all of the following advantages:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">fewer bad interactions between puppet and other cloud services:  In particular, RabbitMQ (which manages most communication between openstack services) runs on labcontrol1001 and is very hungry for resources -- we&#039;re hoping it will be happier not competing with the puppetmaster for RAM.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">improved puppetmaster scalability: The new puppetmaster has a simple load-balancer that allows puppet compilations to be farmed out to additional backends when needed.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">less custom code: The new puppetmasters are managed with the same puppet classes that are used elsewhere in Wikimedia production.</li>
</ul>

<p>Of course, many instances weren&#039;t using the puppetmaster on labcontrol1001 anyway; they use separate custom puppetmasters that run directly on cloud instances.  In many ways this is better -- certainly the security model is simpler.  It&#039;s likely that at some point we&#039;ll move ALL puppet hosting off of metal servers and into the cloud, at which point there will be yet another giant puppet migration.  This last one went pretty well, though, so I&#039;m much less worried about that move than I was before; and in the meantime we have a nice stable setup to keep things going.</p></div></content></entry><entry><title>Toolforge provides proxied mirrors of cdnjs and now fontcdn, for your usage and user-privacy</title><link href="/phame/live/5/post/65/toolforge_provides_proxied_mirrors_of_cdnjs_and_now_fontcdn_for_your_usage_and_user-privacy/" /><id>https://phabricator.wikimedia.org/phame/post/view/65/</id><author><name>Quiddity (Nick Wilson)</name></author><published>2017-08-02T01:55:33+00:00</published><updated>2018-03-25T12:18:51+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Tool owners want to create accessible and pleasing tools. The choice of fonts has previously been difficult, because directly accessing Google&#039;s large collection of open source and freely licensed fonts required sharing personally identifiable information (PII) such as IPs, referrer headers, etc with a third-party (Google). Embedding external resources (fonts, css, javascript, images, etc) from any third-party into webpages hosted on Toolforge or other Cloud VPS projects causes a potential conflict with the <a href="https://wikimediafoundation.org/wiki/Privacy_policy" class="remarkup-link remarkup-link-ext" rel="noreferrer">Wikimedia Privacy Policy</a>. Web browsers will attempt to load the resources automatically and this will in turn expose the user&#039;s IP address, User-Agent, and other information that is by default included in an HTTP request to the third-party. This sharing of data with a third-party is a violation of the default Privacy Policy. With <a href="https://wikitech.wikimedia.org/wiki/Wikitech:Labs_Terms_of_use#What_information_should_I_provide_to_users.3F" class="remarkup-link remarkup-link-ext" rel="noreferrer">explict consent</a> Toolforge and Cloud VPS projects can collect and share some information, but it is difficult to secure that consent with respect to embedded resources.</p>

<p>One way to avoid embedding third-party resources is for each Tool or Cloud VPS project to store a local copy of the resource and serve it directly to the visiting user. This works well from a technical point of view, but can be a maintenance burden for the application developer. It also defeats some of the benefits of using a content distribution network (CDN) like Google fonts where commonly used resources from many applications can share a single locally cached resource in the local web browser.</p>

<p>Since April 2015, Toolforge has provided a <a href="https://tools.wmflabs.org/cdnjs/" class="remarkup-link remarkup-link-ext" rel="noreferrer">mirror of the popular cdnjs library collection</a> to help Toolforge and Cloud VPS developers avoid embedding javascript resources. We did not have a similar solution for the popular Google Fonts CDN however. To resolve this, we first checked if the font files are available via bulk download anywhere, sort of like cdnjs, but they were not. Instead, <a href="https://phabricator.wikimedia.org/p/zhuyifei1999/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_79"><span class="phui-tag-core phui-tag-color-person">@zhuyifei1999</span></a> and <a href="https://phabricator.wikimedia.org/p/bd808/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_80"><span class="phui-tag-core phui-tag-color-person">@bd808</span></a> have <a href="https://tools.wmflabs.org/fontcdn/" class="remarkup-link remarkup-link-ext" rel="noreferrer">created a reverse proxy and forked a font-searching interface</a> to simplify finding the altered font CSS URLs. You can use these features to find and use over 800 font families.</p>

<p>You can use these assets in your tools now!</p>

<p><strong>fontcdn</strong></p>

<ul class="remarkup-list">
<li class="remarkup-list-item"><a href="https://tools.wmflabs.org/fontcdn/" class="remarkup-link remarkup-link-ext" rel="noreferrer">https://tools.wmflabs.org/fontcdn/</a> - provides the web search interface for over 800 font families, from Open Sans to Ubuntu Mono</li>
</ul>

<p><strong>cdnjs</strong></p>

<ul class="remarkup-list">
<li class="remarkup-list-item"><a href="https://tools.wmflabs.org/cdnjs/" class="remarkup-link remarkup-link-ext" rel="noreferrer">https://tools.wmflabs.org/cdnjs/</a> - the full listing of over 3,000 libraries, from Angular to React</li>
</ul>

<p><strong>Onwiki docs</strong></p>

<ul class="remarkup-list">
<li class="remarkup-list-item"><a href="https://wikitech.wikimedia.org/wiki/Help:Toolforge/Web#External_assets" class="remarkup-link remarkup-link-ext" rel="noreferrer">https://wikitech.wikimedia.org/wiki/Help:Toolforge/Web#External_assets</a></li>
</ul>

<p>Please give us feedback on how these features could be further improved, submit patches, or just show us how you are using them!</p></div></content></entry><entry><title>Toolforge Elasticsearch upgraded to 5.3.2</title><link href="/phame/live/5/post/60/toolforge_elasticsearch_upgraded_to_5.3.2/" /><id>https://phabricator.wikimedia.org/phame/post/view/60/</id><author><name>bd808 (Bryan Davis)</name></author><published>2017-07-14T00:49:58+00:00</published><updated>2017-07-14T00:52:23+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The shared Elasticsearch cluster hosted in Toolforge was upgraded from 2.3.5 to 5.3.2 today (<a href="https://phabricator.wikimedia.org/T164842" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_81"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T164842</span></span></a>). This upgrade comes with a lot of breaking API changes for clients and indexes, and should have been announced in advance. <a href="https://phabricator.wikimedia.org/p/bd808/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_82"><span class="phui-tag-core phui-tag-color-person">@bd808</span></a> apologizes for that oversight.</p>

<p>The stashbot, sal, and bash tools have been fixed to work with the new version. They all mostly needed client library upgrades and minor API usage changes due to the library changes. If you are one of the few other users of this cluster and your tool is broken due to the change and you need help fixing it, open a task or better yet come to the <tt class="remarkup-monospaced">#wikimedia-cloud</tt> Freenode channel and ask <a href="https://phabricator.wikimedia.org/p/bd808/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_83"><span class="phui-tag-core phui-tag-color-person">@bd808</span></a> for help.</p></div></content></entry><entry><title>Labs and Tool Labs being renamed</title><link href="/phame/live/5/post/59/labs_and_tool_labs_being_renamed/" /><id>https://phabricator.wikimedia.org/phame/post/view/59/</id><author><name>bd808 (Bryan Davis)</name></author><published>2017-07-12T22:59:10+00:00</published><updated>2020-07-08T08:02:27+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>(reposted with minor edits from <a href="https://lists.wikimedia.org/pipermail/labs-l/2017-July/005036.html" class="remarkup-link remarkup-link-ext" rel="noreferrer">https://lists.wikimedia.org/pipermail/labs-l/2017-July/005036.html</a>)</p>

<p><strong>TL;DR</strong></p>

<ul class="remarkup-list">
<li class="remarkup-list-item"><tt class="remarkup-monospaced">Tool Labs</tt> is being renamed to <tt class="remarkup-monospaced">Toolforge</tt></li>
<li class="remarkup-list-item">The name for our OpenStack cluster is changing from <tt class="remarkup-monospaced">Labs</tt> to <tt class="remarkup-monospaced">Cloud VPS</tt></li>
<li class="remarkup-list-item">The prefered term for projects such as <a href="/tag/toolforge/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_86"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_85" aria-hidden="true"></span>Toolforge</span></a>  and <a href="/tag/beta-cluster-infrastructure/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_88"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_87" aria-hidden="true"></span>Beta-Cluster-Infrastructure</span></a> running on <a href="/tag/cloud-vps/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_90"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_89" aria-hidden="true"></span>Cloud-VPS</span></a>  is <tt class="remarkup-monospaced">VPS projects</tt></li>
<li class="remarkup-list-item"><tt class="remarkup-monospaced">Data Services</tt> is a new collective name for the databases, dumps, and other curated data sets managed by the <a href="/tag/cloud-services-team/" class="phui-tag-view phui-tag-type-shade phui-tag-violet phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_92"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-users" data-meta="0_91" aria-hidden="true"></span>cloud-services-team</span></a></li>
<li class="remarkup-list-item"><tt class="remarkup-monospaced">Wiki replicas</tt> is the new name for the private-information-redacted copies of Wikimedia&#039;s production wiki databases</li>
<li class="remarkup-list-item">No domain name changes are scheduled at this time, but we control <tt class="remarkup-monospaced">wikimediacloud.org</tt>, <tt class="remarkup-monospaced">wmcloud.org</tt>, and <tt class="remarkup-monospaced">toolforge.org</tt></li>
<li class="remarkup-list-item">The Cloud Services logo will still be the unicorn rampant on a green field surrounded by the red &amp; blue bars of the Wikimedia Community logo</li>
<li class="remarkup-list-item">Toolforge and Cloud VPS will have distinct images to represent them on wikitech and in other web contexts</li>
</ul>

<p>In February when the <a href="https://lists.wikimedia.org/pipermail/labs-l/2017-February/004918.html" class="remarkup-link remarkup-link-ext" rel="noreferrer">formation of the Cloud Services team was
announced</a> there was a foreshadowing of more branding changes to come:</p>

<blockquote><p>This new team will soon begin working on rebranding efforts intended to reduce confusion about the products they maintain. This refocus and re-branding will take time to execute, but the team is looking forward to the challenge.</p></blockquote>

<p>In May we <a href="https://lists.wikimedia.org/pipermail/labs-l/2017-May/005002.html" class="remarkup-link remarkup-link-ext" rel="noreferrer">announced</a> a consultation period on a <a href="https://en.wikipedia.org/wiki/Straw_man_proposal" class="remarkup-link remarkup-link-ext" rel="noreferrer">straw dog proposal</a> for the rebranding efforts. Discussion that followed both on and off wiki was used to refine <a href="https://wikitech.wikimedia.org/wiki/User:BryanDavis/Rebranding_Cloud_Services_products" class="remarkup-link remarkup-link-ext" rel="noreferrer">the initial proposal</a>. During the <a href="https://www.mediawiki.org/wiki/Wikimedia_Hackathon_2017" class="remarkup-link remarkup-link-ext" rel="noreferrer">hackathon in Vienna</a> the <a href="https://www.mediawiki.org/wiki/Wikimedia_Cloud_Services_team" class="remarkup-link remarkup-link-ext" rel="noreferrer">team</a> started to make changes on <a href="https://wikitech.wikimedia.org/wiki/Main_Page" class="remarkup-link remarkup-link-ext" rel="noreferrer">Wikitech</a> reflecting both the new naming and the new way that we are trying to think about the large suite of services that are offered. Starting this month, the changes that are planned (<a href="https://phabricator.wikimedia.org/T168480" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_84"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T168480</span></span></a>) are becoming more visible in Phabricator and other locations.</p>

<p>It may come as a surprise to many of you on this list, but many people, even very active movement participants, do not know what Labs and Tool Labs are and how they work. The fact that the Wikimedia Foundation and volunteers collaborate to offer a public cloud computing service that is available for use by anyone who can show a reasonable benefit to the movement is a surprise to many. When we made the internal pitch at the Foundation to form the Cloud Services team, the core of our arguments were the <a href="https://wikitech.wikimedia.org/wiki/Labs_labs_labs" class="remarkup-link remarkup-link-ext" rel="noreferrer">&quot;Labs labs labs&quot; problem</a> and this larger lack of awareness for our Labs OpenStack cluster and the Tool Labs shared hosting/platform as a service product.</p>

<p>The use of the term &#039;labs&#039; in regards to multiple related-but-distinct products, and the natural tendency to shorten often used names, leads to ambiguity and confusion. Additionally the term &#039;labs&#039; itself commonly refers to &#039;experimental projects&#039; when applied to software; the OpenStack cloud and the tools hosting environments maintained by WMCS have been viable customer facing projects for a long time. Both environments host projects with varying levels of maturity, but the collective group of projects should not be considered experimental or inconsequential.</p></div></content></entry><entry><title>Official Debian Stretch image now available</title><link href="/phame/live/5/post/57/official_debian_stretch_image_now_available/" /><id>https://phabricator.wikimedia.org/phame/post/view/57/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2017-06-20T16:00:00+00:00</published><updated>2017-07-07T08:39:58+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Debian Stretch was <a href="https://www.debian.org/News/2017/20170617.en.html" class="remarkup-link remarkup-link-ext" rel="noreferrer">officially released</a> on Saturday[1], and I&#039;ve built a new Stretch base image for VPS use in the WMF cloud. All projects should now see an image type of &#039;debian-9.0-stretch&#039; available when creating new instances.</p>

<p>Puppet will set up new Stretch instances just fine, and we&#039;ve tested and tuned up several of the most frequently-used optional puppet classes so that they apply properly on Stretch.  Stretch is /fairly/ similar to Jessie, so I&#039;d expect most puppet classes that apply properly on Jessie to work on Stretch as well, but I&#039;m always interested in the exceptions -- If you find one, please open a phabricator ticket.</p>

<p>The WMF and the Cloud team is committed to long-term support of this distribution.  If you are starting a new project or rebuilding a VM you should start with Stretch to ensure the longest possible life for your work.</p></div></content></entry><entry><title>Watroles returns! (In a different place and with a different name and totally different code.)</title><link href="/phame/live/5/post/56/watroles_returns_in_a_different_place_and_with_a_different_name_and_totally_different_code./" /><id>https://phabricator.wikimedia.org/phame/post/view/56/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2017-06-20T03:26:58+00:00</published><updated>2017-06-20T19:21:58+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Back in the dark ages of Labs, all instance puppet configuration was handled using the <a href="https://docs.puppet.com/puppet/4.10/nodes_ldap.html" class="remarkup-link remarkup-link-ext" rel="noreferrer">puppet ldap backend</a>.  Each instance had a <a href="https://wikitech.wikimedia.org/wiki/Ldap_hosts" class="remarkup-link remarkup-link-ext" rel="noreferrer">big record in ldap</a> that handled DNS, puppet classes, puppet variables, etc.  It was a bit clunky, but this monolithic setup allowed <a href="https://phabricator.wikimedia.org/p/yuvipanda/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_93"><span class="phui-tag-core phui-tag-color-person">@yuvipanda</span></a> to throw together a simple but very useful tool, &#039;watroles&#039;.  Watroles answered two questions:</p>

<ol class="remarkup-list">
<li class="remarkup-list-item">What puppet roles and classes are applied to a given instance?</li>
<li class="remarkup-list-item">What instances use a given puppet class or role?</li>
</ol>

<p>#2 turned out to be especially important -- basically any time an Op merged a patch changing a puppet role, they could look at watroles to get a quick list of all the instances that were going to break.  Watroles was an essential tool for keeping VMs properly puppetized during code refactors and other updates.</p>

<p>Alas, the puppet ldap backend fell into disrepair.  Puppetlabs stopped maintaining it, and Labs VMs were left out of more and more fancy puppet features because those features were left out of ldap.  So... we switched to a custom API-based puppet backend, one that talks to Horizon and generally makes VM puppet config more structured and easier to handle (as well as supporting project-wide and prefix-wide puppet config for large-scale projects.)</p>

<p>That change broke Watroles, and the tool became increasingly inaccurate as instances migrated off of ldap, and eventually it was turned off entirely.  A dark age followed, in which puppet code changes required as much faith as skill.</p>

<p>Today, at last, we have a replacement.  I added a bunch of additional general-purpose <a href="https://gerrit.wikimedia.org/r/#/c/359443/2/modules/labspuppetbackend/files/labspuppetbackend.py" class="remarkup-link remarkup-link-ext" rel="noreferrer">queries</a> to our puppet configuration API, and we&#039;ve added pages to the <a href="https://tools.wmflabs.org/openstack-browser/" class="remarkup-link remarkup-link-ext" rel="noreferrer">OpenStack Browser</a> to display those queries and answer both of our previous questions, with bonus information as well:</p>

<ol class="remarkup-list">
<li class="remarkup-list-item"><a href="https://tools.wmflabs.org/openstack-browser/server/util-abogott.testlabs.eqiad.wmflabs" class="remarkup-link remarkup-link-ext" rel="noreferrer">What puppet roles and classes are applied to a given instance?</a></li>
<li class="remarkup-list-item"><a href="https://tools.wmflabs.org/openstack-browser/puppetclass/role::labs::lvm::srv" class="remarkup-link remarkup-link-ext" rel="noreferrer">What instances, prefixes, or projects use a given puppet class or role?</a></li>
<li class="remarkup-list-item"><a href="https://tools.wmflabs.org/openstack-browser/puppetclass/" class="remarkup-link remarkup-link-ext" rel="noreferrer">Which puppet classes are currently in use on Cloud VMs?</a></li>
</ol>

<p>The data on those pages is cached and updated every 20 minutes, so won&#039;t update instantly when a config is changed, but should nonetheless provide all the information needed for proper testing of new code changes.</p></div></content></entry><entry><title>#wikimedia-labs irc channel renamed to #wikimedia-cloud</title><link href="/phame/live/5/post/53/wikimedia-labs_irc_channel_renamed_to_wikimedia-cloud/" /><id>https://phabricator.wikimedia.org/phame/post/view/53/</id><author><name>bd808 (Bryan Davis)</name></author><published>2017-06-05T15:11:55+00:00</published><updated>2017-06-05T15:13:39+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The first very visible step in the plan to rename things away from the term &#039;labs&#039; happened around 2017-06-05 15:00Z when IRC admins made the <tt class="remarkup-monospaced">#wikimedia-labs</tt> irc channel on Freenode invite-only and setup an automatic redirect to the new <tt class="remarkup-monospaced">#wikimedia-cloud</tt> channel.</p>

<p>If you were running a bot in the old channel or using an IRC bouncer like ZNC with &quot;sticky&quot; channel subscriptions you may need to make some manual adjustments to your configuration.</p>

<h4 class="remarkup-header">See also</h4>

<ul class="remarkup-list">
<li class="remarkup-list-item"><a href="/T166420" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_94"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T166420: Change Cloud Services irc channels for rebranding</span></span></a></li>
</ul></div></content></entry><entry><title>Updated `webservice` command deployed</title><link href="/phame/live/5/post/17/updated_webservice_command_deployed/" /><id>https://phabricator.wikimedia.org/phame/post/view/17/</id><author><name>bd808 (Bryan Davis)</name></author><published>2017-05-31T20:18:40+00:00</published><updated>2017-05-31T20:18:40+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The v0.37 build of <a href="/diffusion/OSTW/" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_98"><span class="phui-tag-core phui-tag-color-object">rOSTW operations-software-tools-webservice</span></a> has been deployed to <a href="/tag/toolforge/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_100"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_99" aria-hidden="true"></span>Toolforge</span></a> hosts and <a href="/tag/tools-kubernetes/" class="phui-tag-view phui-tag-type-shade phui-tag-disabled phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_102"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-briefcase" data-meta="0_101" aria-hidden="true"></span>Tools-Kubernetes</span></a> Docker images.</p>

<p>This release contains the following changes:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item"><a href="/rOSTWe653167c0cfdaf61de0269541670ff3697a31fb9" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_96"><span class="phui-tag-core phui-tag-color-object">rOSTWe653167c0cfd: Always cleanup manifest on stop</span></a> for <a href="/T163355" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_95"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T163355: webservice stop says service not running but service.manifest not cleared</span></span></a></li>
<li class="remarkup-list-item"><a href="/rOSTW7e8da902d4ac6a7bc05f548ffa7bb3f6267e65ed" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_97"><span class="phui-tag-core phui-tag-color-object">rOSTW7e8da902d4ac: Sort backend provided types when displaying help</span></a></li>
</ul>

<p>Kubernetes webservices will need to be restarted to pick up the new Docker images with the updated package installed. The new Docker images also contain the latest packages from the upstream apt repositories which may provide some minor bug fixes. We are not currently tracking the exact versions of all installed packages, so we cannot provide a detailed list of the changes.</p></div></content></entry><entry><title>Project-wide sudo policies in Horizon</title><link href="/phame/live/5/post/16/project-wide_sudo_policies_in_horizon/" /><id>https://phabricator.wikimedia.org/phame/post/view/16/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2017-05-30T20:02:52+00:00</published><updated>2017-05-30T23:17:33+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>When <a href="https://phabricator.wikimedia.org/p/Ryan_Lane/" class="phui-tag-view phui-tag-type-person " data-sigil="hovercard" data-meta="0_107"><span class="phui-tag-core phui-tag-color-person">@Ryan_Lane</span></a> first built OpenStackManager and Wikitech, one of the first features he added was an interface to setup project-wide sudo policies via ldap.</p>

<p><div class="phabricator-remarkup-embed-layout-left"><a href="https://phab.wmfusercontent.org/file/data/l6id326xtu5pty3aw6a2/PHID-FILE-tpmgriqu5yaz2zk3a3ug/Screen_Shot_2017-05-30_at_2.53.07_PM.png" class="phabricator-remarkup-embed-image" data-sigil="lightboxable" data-meta="0_103"><img src="https://phab.wmfusercontent.org/file/data/dzj6hufkaph4md7d4mvp/PHID-FILE-bopxrcxxuv725ovzwtww/preview-Screen_Shot_2017-05-30_at_2.53.07_PM.png" width="220" height="113.31825037707" alt="Screen Shot 2017-05-30 at 2.53.07 PM.png (1×2 px, 502 KB)" /></a></div></p>

<p>I&#039;ve basically never thought about it, and assumed that no one was using it.  A few months ago various Labs people were discussing sudo policies and it turned out that we all totally misunderstood how they worked, thinking that they derived from Keystone roles rather than from a custom per-project setup.  I immediately declared &quot;No one is using this, we should just rip out all that code&quot; and then ran a report to prove my point... and I turned out to be WRONG.  There are a whole lot of different custom sudo policies set up in a whole lot of different projects.</p>

<p>So... rather than ripping out the code, I&#039;ve implemented a new sudo interface that runs in Horizon.  [<a href="https://phabricator.wikimedia.org/T162097" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_105"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T162097</span></span></a>] It is a bit slow, and only slightly easier to use than the old OpenStackManager interface, but it gets us one step closer to moving all PVS user interfaces to Horizon. [<a href="https://phabricator.wikimedia.org/T161553" class="phui-tag-view phui-tag-type-object " data-sigil="hovercard" data-meta="0_106"><span class="phui-tag-core-closed"><span class="phui-tag-core phui-tag-color-object">T161553</span></span></a>]</p>

<p><div class="phabricator-remarkup-embed-layout-left"><a href="https://phab.wmfusercontent.org/file/data/iznh6bx4rlfoq4jplbma/PHID-FILE-6j4qqumt45y3wtth6om4/Screen_Shot_2017-05-30_at_2.53.51_PM.png" class="phabricator-remarkup-embed-image" data-sigil="lightboxable" data-meta="0_104"><img src="https://phab.wmfusercontent.org/file/data/wso57y4yl3jashjsadkl/PHID-FILE-yceapc4lidcusx6llnia/preview-Screen_Shot_2017-05-30_at_2.53.51_PM.png" width="220" height="113.31825037707" alt="Screen Shot 2017-05-30 at 2.53.51 PM.png (1×2 px, 498 KB)" /></a></div></p>

<p>For the moment, users can edit the same policies either on Horizon or on Wikitech.  If I don&#039;t get complaints then I&#039;ll remove the UI from wikitech in a few weeks.</p></div></content></entry><entry><title>Manage Instance on Horizon (only)</title><link href="/phame/live/5/post/14/manage_instance_on_horizon_only/" /><id>https://phabricator.wikimedia.org/phame/post/view/14/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2017-05-26T19:40:26+00:00</published><updated>2017-06-02T00:02:52+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>For nearly a year, Horizon has supported instance management.  It is altogether a better tool than the Special:NovaInstance page on Wikitech -- Horizon provides more useful status information for VMs, and has much better configuration management (for example changing security groups for already-running instances.)</p>

<p>So... I&#039;ve just now removed the sidebar &#039;Manage Instances&#039; link on Wikitech, and will shortly be disabling the Special:NovaInstance page as well.  This is one more (small) step down the road to standardizing on Horizon as the one-stop OpenStack management tool.</p></div></content></entry><entry><title>Experimental Debian Stretch image now available</title><link href="/phame/live/5/post/13/experimental_debian_stretch_image_now_available/" /><id>https://phabricator.wikimedia.org/phame/post/view/13/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2017-05-25T17:47:37+00:00</published><updated>2017-05-25T17:52:42+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I&#039;ve just installed a new public base image, &#039; debian-9.0-stretch (experimental)&#039; and made it available for all projects.  It should appear in the standard &#039;Source&#039; UI in Horizon any time you create a new VM.</p>

<p>Please take heed of the word &#039;experimental&#039; in the title.  Stretch is not yet an official Debian release, and may still contain unexpected bugs and security issues.  Additionally, the operations puppet repo has only begun to be Stretch-aware, so many roles and classes will likely fail or engage in otherwise undefined behavior.</p>

<p>So...</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">Please DO use this image to test and update puppet classes, and to get a preview of things to come.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Please DO NOT use this image to build any instances that you plan to expose to the public, or that you want to keep around for more than a few months.</li>
</ul>

<p>When Stretch is officially released and we&#039;ve ironed out some more puppet issues I will delete this base image and purge those VMs that were built from it in order to avoid the debt of having to support &#039;experimental&#039; VMs for eternity.</p></div></content></entry><entry><title>Labs Openstack upgrade on Tuesday, 2016-08-02, 16:00 UTC</title><link href="/phame/live/5/post/10/labs_openstack_upgrade_on_tuesday_2016-08-02_16_00_utc/" /><id>https://phabricator.wikimedia.org/phame/post/view/10/</id><author><name>Andrew (Andrew Bogott)</name></author><published>2016-08-01T17:01:07+00:00</published><updated>2017-04-05T18:54:39+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Andrew will be upgrading our Openstack install from version &#039;Kilo&#039; to version &#039;Liberty&#039; on Tuesday the 2nd.  The upgrade is scheduled to take up to three hours.  Here&#039;s what to expect:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">Tools services and existing Labs uses should be unaffected apart from brief ( &lt; 1 minute) interruptions in network service.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Continuous Integration tests (Jenkins, Zuul, etc.) will be disabled for most of the upgrade window.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Creation/Deletion of new instances will be disabled for most of the window.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Wikitech and Horizon may error out occasionally and/or display inconsistent information.  Users may need to refresh their web logins after the upgrade.</li>
</ul>

<p>Apart from fixing a few seldom-seen bugs, this upgrade shouldn&#039;t result in noticeable changes for Labs users.  It will lay the groundwork for an upcoming Horizon upgrade, but that will be announced in future posts/emails.</p></div></content></entry><entry><title>Labs is auditing and removing inactive projects.  </title><link href="/phame/live/5/post/8/labs_is_auditing_and_removing_inactive_projects./" /><id>https://phabricator.wikimedia.org/phame/post/view/8/</id><author><name>chasemp (Chase)</name></author><published>2016-07-08T16:20:38+00:00</published><updated>2017-01-26T00:22:52+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>If you are exclusively a user of tool labs, you can ignore this post.  If you use or administer another labs project, this REQUIRES ACTION ON YOUR PART.</p>

<p><strong>We are reclaiming unused resources due to an ongoing shortage.</strong></p>

<p>Visit this page and add a signature under projects you know to be active:</p>

<p><a href="https://wikitech.wikimedia.org/wiki/Purge_2016" class="remarkup-link remarkup-link-ext" rel="noreferrer">VM Purge 2016</a></p>

<p>Associated wmflabs.org domains are included to identify projects by offered services.</p>

<p>We are not investigating why projects are needed at this time.  If one person votes to preserve then we will do so in this round of cleanup.</p>

<p>In a month, projects and associated instances not claimed will be suspended or shutdown.  A month later if no one complains these projects will be deleted.</p></div></content></entry><entry><title>Kubernetes Webservice Backend Available for PHP webservices</title><link href="/phame/live/5/post/7/kubernetes_webservice_backend_available_for_php_webservices/" /><id>https://phabricator.wikimedia.org/phame/post/view/7/</id><author><name>chasemp (Chase)</name></author><published>2016-07-08T16:19:07+00:00</published><updated>2017-05-01T23:19:40+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The Kubernetes (&#039;k8s&#039;) backend for Tool Labs webservices is open to<br />
beta testers from the community as a replacment for Grid Engine<br />
(qsub/jsub).</p>

<p>We have focused on providing support for PHP webservices with other<br />
job types to follow. No action is required for users who do not want<br />
to change at this time.</p>

<p>Advantages:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">Debian Jessie</li>
<li class="remarkup-list-item">PHP (5.6)</li>
<li class="remarkup-list-item">Better isolation between tools</li>
<li class="remarkup-list-item">Testing the future platform and helping Tool Labs mature</li>
</ul>

<p>How to switch an existing webervice to the Kubernetes backend:</p>

<div class="remarkup-code-block" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code">webservice --backend=gridengine stop
webservice --backend=kubernetes start</pre></div>

<p>How to switch an existing webservice back to Grid Engine:</p>

<div class="remarkup-code-block" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code">webservice --backend=kubernetes stop
webservice --backend=gridengine start</pre></div>

<p>If you encounter issues, please let us know at<br />
<a href="https://phabricator.wikimedia.org/T139107" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_109"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-anchor" data-meta="0_108" aria-hidden="true"></span>https://phabricator.wikimedia.org/T139107</span></a> or on irc at<br />
<a href="/tag/cloud-services/" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_111"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-umbrella" data-meta="0_110" aria-hidden="true"></span>Cloud-Services</span></a>.</p>

<p>For instructions and more information visit<br />
<a href="https://wikitech.wikimedia.org/wiki/Help:Tool_Labs/Web/Kubernetes" class="remarkup-link remarkup-link-ext" rel="noreferrer">https://wikitech.wikimedia.org/wiki/Help:Tool_Labs/Web/Kubernetes</a></p></div></content></entry><entry><title>Community Consultation on Labs Terms of Use: Round 1</title><link href="/phame/live/5/post/6/community_consultation_on_labs_terms_of_use_round_1/" /><id>https://phabricator.wikimedia.org/phame/post/view/6/</id><author><name>chasemp (Chase)</name></author><published>2016-05-26T18:55:37+00:00</published><updated>2016-05-26T18:55:37+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The Wikimedia Legal team is interested in revising, updating, and clarifying the existing Labs Terms of Use governing developers and their projects on labs.</p>

<p>We have opened up <a href="https://meta.wikimedia.org/wiki/Labs_TOU_Consultation_Round_1_%282016%29" class="remarkup-link remarkup-link-ext" rel="noreferrer">Round 1 of our community consultation</a> to hear feedback on the Labs Terms of Use. We will try to respond the best we can, but the main purpose of this round is to hear all your thoughts. After the feedback round, we will prepare a draft revision of the Terms based on that feedback and other minor revisions to clarify statements in existing the Terms. We will then engage in a community discussion about the revised Terms.</p>

<p>We plan to leave the discussion open until June 9, 2016.</p></div></content></entry><entry><title>Horizon is now the best UI for Labs/Tools</title><link href="/phame/live/5/post/4/horizon_is_now_the_best_ui_for_labs_tools/" /><id>https://phabricator.wikimedia.org/phame/post/view/4/</id><author><name>chasemp (Chase)</name></author><published>2016-04-04T21:35:26+00:00</published><updated>2016-05-18T20:04:30+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="https://horizon.wikimedia.org/auth/login/" class="remarkup-link remarkup-link-ext" rel="noreferrer">horizon</a> (OpenStack Dashboard) is the canonical implementation of OpenStack’s Dashboard, which provides a web based user interface to OpenStack services.</p>

<p>Horizon requires <a href="https://en.wikipedia.org/wiki/Two-factor_authentication" class="remarkup-link remarkup-link-ext" rel="noreferrer">2fa</a> to manage project resources.  2fa (which has long been required of all wikitech admins) can be setup on your <a href="https://wikitech.wikimedia.org/wiki/Special:Preferences" class="remarkup-link remarkup-link-ext" rel="noreferrer">special preferences</a> page.</p></div></content></entry><entry><title>New bastion at tools-login.wmflabs.org</title><link href="/phame/live/5/post/3/new_bastion_at_tools-login.wmflabs.org/" /><id>https://phabricator.wikimedia.org/phame/post/view/3/</id><author><name>chasemp (Chase)</name></author><published>2016-04-04T19:51:42+00:00</published><updated>2016-05-09T21:44:30+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>tools-login.wmflabs.org is on a new bastion host with twice<br />
the RAM and CPU of the old one. This should hopefully provide a better<br />
bandaid against it getting overloaded up. More discussion about a<br />
longer term solution at <a href="https://phabricator.wikimedia.org/T131541" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_113"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-anchor" data-meta="0_112" aria-hidden="true"></span>https://phabricator.wikimedia.org/T131541</span></a></p>

<p>You can find new fingerprints at<br />
<a href="https://wikitech.wikimedia.org/wiki/Help:SSH_Fingerprints/tools-login.wmflabs.org" class="remarkup-link remarkup-link-ext" rel="noreferrer">https://wikitech.wikimedia.org/wiki/Help:SSH_Fingerprints/tools-login.wmflabs.org</a></p>

<p>Apologies for the interruption! The old bastion will continue to be available for now at tools-bastion-05.eqiad.wmflabs.</p></div></content></entry><entry><title>Kubernetes to 1.2 on Tuesday, 2016-04-05</title><link href="/phame/live/5/post/2/kubernetes_to_1.2_on_tuesday_2016-04-05/" /><id>https://phabricator.wikimedia.org/phame/post/view/2/</id><author><name>chasemp (Chase)</name></author><published>2016-04-01T17:30:51+00:00</published><updated>2016-04-01T17:30:51+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>On Tuesday, 2016-04-05, we&#039;ll be upgrading Kubernetes to 1.2 and using<br />
a different deployment method as well. While this should have no user<br />
facing impact (ideally!) the following things might be flaky for a<br />
period of time on that day:</p>

<ol class="remarkup-list">
<li class="remarkup-list-item">The Gerrit IRC bot</li>
<li class="remarkup-list-item">NAGF (tools.wmflabs.org/nagf)</li>
<li class="remarkup-list-item">PAWS (paws.wmflabs.org, for those using it)</li>
</ol>

<p>You can follow the upgrade at<br />
<a href="https://phabricator.wikimedia.org/T130972" class="phui-tag-view phui-tag-type-shade phui-tag-blue phui-tag-shade phui-tag-icon-view " data-sigil="hovercard" data-meta="0_115"><span class="phui-tag-core "><span class="visual-only phui-icon-view phui-font-fa fa-anchor" data-meta="0_114" aria-hidden="true"></span>https://phabricator.wikimedia.org/T130972</span></a> if you&#039;re interested.</p></div></content></entry></feed>