{"id":266,"date":"2015-11-25T13:26:09","date_gmt":"2015-11-25T13:26:09","guid":{"rendered":"http:\/\/blog.pulsedmedia.com\/?p=266"},"modified":"2015-11-25T13:26:09","modified_gmt":"2015-11-25T13:26:09","slug":"rolling-updates-what-does-it-mean","status":"publish","type":"post","link":"https:\/\/pulsedmedia.com\/blog\/2015\/11\/rolling-updates-what-does-it-mean\/","title":{"rendered":"Rolling updates: What does it mean?"},"content":{"rendered":"<h2>Rolling Updates: The What &amp; Why<\/h2>\n<p>We do slow rolling updates for all the servers in operation. In most simplest terms this means only some of the servers are updated at a single time.<\/p>\n<p>Updating process depends on how major an update is and how critical it is. If it&#8217;s just a tiny update and most servers are already on the latest major revision we might do a big bulk update of most of the servers. On the other hand, if it&#8217;s a major update then we do only a small number first.<\/p>\n<h2>It all boils down to Quality Assurance (QA)<\/h2>\n<p>Small updates have no, or very small chance of\u00a0<em>regressions<\/em>, ie. new bugs introduced to the system, while major updates have a\u00a0<em>big chance.\u00a0<\/em>This means on big updates we need to be careful and slow on the rollout.<\/p>\n<p>Same reason is why we try to avoid doing major updates too frequently. There is\u00a0<em>always<\/em> something that breaks when you do an major update.\u00a0<em>For example,<\/em> we lately updated ruTorrent and this has resulted in hundreds upon hundreds of tickets<em>, and even some service cancellations.<\/em> Reason? Despite our best efforts to force browsers to revise their cache, most stick to the cached versions resulting in ruTorrent javascript failing. Despite using\u00a0<em>every method<\/em>\u00a0to tell the browser update the jquery javascript library.<\/p>\n<h2>QA is only as good as the testers<\/h2>\n<p>No developer can achieve full QA themselves, there is simply too varied use of any system. With slow rollout we gain\u00a0<em>invaluable<\/em> feedback and catch potential usability issues before it is affected by the vast majority.<\/p>\n<p>Every user is different, that&#8217;s why the same person developing the software may not notice even the\u00a0<em>most obvious<\/em> issues. What works on Windows\/Chrome combination may not work on Ubuntu\/Firefox.<\/p>\n<h2>Backwards compatibility<\/h2>\n<p>Our software backdates to when Debian 5 was new and fancy. There are still servers out there running Debian 5,\u00a0<em>despite,<\/em> support for Deb 5 was dropped a long time ago. Same goes for Debian 6, and soon Debian 7 will move to the history as well.\u00a0<em>So far,<\/em> there&#8217;s a lot of things which needs to be tweaked for Debian 8 before it becomes supported, and at the same time we need to also support Debian 6 and 7.<\/p>\n<p>This means we need to support a variety of versions, configurations etc. out of the box.\u00a0<em>Quite simply,<\/em> it is impossible to update every and single server at the same time for Debian 8 &#8211; Especially those out of our control but using our software package.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rolling Updates: The What &amp; Why We do slow rolling updates for all the servers in operation. In most simplest terms this means only some of the servers are updated at a single time. Updating process depends on how major an update is and how critical it is. If it&#8217;s just a tiny update and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[9,6],"tags":[19,58,57,39,56,59],"class_list":["post-266","post","type-post","status-publish","format-standard","hentry","category-servers","category-seedbox-software-updates","tag-pmss","tag-qa","tag-quality","tag-security","tag-software","tag-testing"],"_links":{"self":[{"href":"https:\/\/pulsedmedia.com\/blog\/wp-json\/wp\/v2\/posts\/266","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pulsedmedia.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pulsedmedia.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pulsedmedia.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pulsedmedia.com\/blog\/wp-json\/wp\/v2\/comments?post=266"}],"version-history":[{"count":2,"href":"https:\/\/pulsedmedia.com\/blog\/wp-json\/wp\/v2\/posts\/266\/revisions"}],"predecessor-version":[{"id":268,"href":"https:\/\/pulsedmedia.com\/blog\/wp-json\/wp\/v2\/posts\/266\/revisions\/268"}],"wp:attachment":[{"href":"https:\/\/pulsedmedia.com\/blog\/wp-json\/wp\/v2\/media?parent=266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pulsedmedia.com\/blog\/wp-json\/wp\/v2\/categories?post=266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pulsedmedia.com\/blog\/wp-json\/wp\/v2\/tags?post=266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}