Planet Drupal en Drupal Load Testing with <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">Apache JMeter and I have a long and complicated relationship. It is definitely a trusted and valuable tool, but I am also quite confident that certain parts of it will make an appearance in my particular circle of hell. Due to this somewhat uncomfortable partnership, I am always interested in new tools for applying load to an infrastructure and monitoring the results. is not exactly a new tool, but I have only recently begun to use it for testing. What Is Locust? Locust is a load-testing framework which allows you to write your load plan in regular Python. This is a welcome experience if you have ever had to manually edit a JMeter JMX file. Not only is it a more pleasant experience, but writing executors in Python makes it easy to create a very flexible load plan. Idea For A Circle Of Hell: Given a slightly corrupted JMX file that must be loadable and cannot easily be replaced, attempt to look through it to find the error preventing loading. Every time you save the file, some other tag corrupts slightly. Who needs eternal damnation, give me a large JMX file and some failing drives… The other advantage of... <a href="/blog/drupal-loadtest-locust" class="Read more" hreflang="en">Read more</a></div> <span><span lang="" about="/user/narayan-newton" typeof="schema:Person" property="schema:name" datatype="">nnewton</span></span> <span>Thu, 04/13/2017 - 08:48</span> Thu, 13 Apr 2017 15:48:24 +0000 nnewton 79 at Continuous Long Term Support: Security Monitoring for Drupal 6, 7, and 8 <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">Though it came and went largely unnoticed, February 24th, 2017 marked an important anniversary to tens of thousands of Drupal website owners. February 24th 2017 was the 1-year anniversary of the End-of-Life (EOL) announcement for Drupal 6 as no longer supported by the Drupal community. It is widely known that major Drupal version upgrades require non-trivial resources. Not only do they require significant planning, technical expertise, and budget, but the path is often determined by funding and availability of maintainers of popular contributed functionality (modules). Add the complexity of upgrading custom development, and the conditions create significant challenges for small to medium websites without large operating budgets. As evidence of this, our research indicates there are at least 150,000 publicly accessible sites still running Drupal 6. One of a Kind Tag1 Quo is the only Drupal monitoring solution that supports Drupal 6 LTS, Drupal 7, and Drupal 8 under one dashboard. Check It Out! For most D6 site managers, the most critical (and stressful) impact of EOL is the discontinuation of Drupal 6 security patches by the Drupal security team. When a major version reaches EOL, the Drupal security team ceases to release patches, or serve public Security Advisories for... <a href="/blog/eol-anniversary" class="Read more" hreflang="en">Read more</a></div> <span><span lang="" about="/user/dylan-clear" typeof="schema:Person" property="schema:name" datatype="">Dylan Clear</span></span> <span>Wed, 03/15/2017 - 15:33</span> Wed, 15 Mar 2017 22:33:59 +0000 Dylan Clear 76 at Tag1 Quo: Finding a Place in the (Version) Universe, Part 2 <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">When we left off last time , we’d assembled a definition of what versions are. Now, we’re going to dive into how we use them in Tag1 Quo : comparing them to one another! The general goal is straightforward enough: we want to know if, say, 6.x-1.0 is less than 6.x-1.1 . (Yup!) Or if 6.x-1.0-alpha1 is less than 6.x-1.0 . (Also yup!) Let’s rewrite these two examples as tuple comparisons: {6,1,0,4,0,0} &lt; {6,1,1,4,0,0} = TRUE {6,1,0,0,0,0} &lt; {6,1,1,0,0,0} = TRUE To determine if one tuple is less than the other, we proceed pairwise through the tuple’s values, comparing the integers at the same position from each, until we find different values. Whichever tuple’s value at that position is less is considered to be the lesser version. (Uniformity in this comparison operation is why the mapping for prerelease types assigns unstable to 0, rather than 4.) However, this simple comparison operation doesn’t actually meet Quo’s requirements. Remember, Quo’s crucial question is not whether there are any newer versions, but whether there are newer security releases that are likely to apply to the version we’re investigating. So, say we’re looking at 6.x-1.1 for a given extension, and there exists a 7.x-2.2... <a href="/blog/tag1-quo-finding-place-version-universe-part-2" class="Read more" hreflang="en">Read more</a></div> <span><span lang="" about="/user/sam-boyer" typeof="schema:Person" property="schema:name" datatype="">sam</span></span> <span>Tue, 10/25/2016 - 09:33</span> Tue, 25 Oct 2016 16:33:33 +0000 sam 73 at Tag1 Quo: Versions, Versions Everywhere, Part 1 <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">When Tag1 decided to build Tag1 Quo , we knew there was one question we’d have to answer over, and over, and over again: is there a security update available for this extension? Answering that question - at scale, for many websites, across many extensions, through all the possible versions they might have - is the heart of what Quo does. The problem seems simple enough, but doing it at such scale, for “all” versions, and getting it right, has some deceptive difficulties. Given a site with an extension at a particular version, we need to know where it sits on the continuum of all versions that exist for that extension (we often refer to that as the “version universe,”), and whether any of the newer versions contain security fixes. There are a few different approaches we could’ve taken to this problem. The one we ultimately settled on was a bit more abstracted than what might initially seem necessary. It was also not a “typical” Drupal solution. In this blog series, I’ll cover both the theoretical foundation of the problem, and the approach we took to implementation. What’s a version? Let's start at the beginning. Quo works by having existing... <a href="/blog/tag1-quo-versions-versions-everywhere-part-1" class="Read more" hreflang="en">Read more</a></div> <span><span lang="" about="/user/sam-boyer" typeof="schema:Person" property="schema:name" datatype="">sam</span></span> <span>Thu, 10/20/2016 - 09:55</span> Thu, 20 Oct 2016 16:55:54 +0000 sam 71 at Drupal 6 Long Term Support is My Favorite Feature of Drupal 8 <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">Long Term Support for Drupal 6 might be my favorite new feature included in Drupal 8. (I know, that might be stretching things for the fundamentally awesome step forward that Drupal 8 is, but bear with me.) Long Term Support for Drupal 6 If you're like me, you have loved the power of building websites for people that expose their ideas or services to the world. If you're like me, you've ended up "owning" a number of these websites that you somehow ended up supporting along the way too. And if you're like me, you've ended up with lots of Drupal 6 websites to support, even though D6 hit End-of-Life on February 24th, 2016. There are a lot of D6 sites out there with no money for an upgrade, but which still have a niche to fill or useful information for the world. Those can be an albatross around our necks and a time sink. We don't have the resources to update (and their owners don't either) but we can't set the site owners adrift. When previous versions of Drupal hit end-of-life, it was always a catastrophe for those of us with sites out there. Upgrade or else. Very costly... <a href="/blog/drupal-6-long-term-support-my-favorite-feature-drupal-8" class="Read more" hreflang="en">Read more</a></div> <span><span lang="" about="/user/randy-fay" typeof="schema:Person" property="schema:name" datatype="">rfay</span></span> <span>Tue, 08/30/2016 - 08:04</span> Tue, 30 Aug 2016 15:04:42 +0000 rfay 70 at Tag1 Quo and Drupal 6 Long Term Support <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">Or, What We Did This Summer It’s been an exciting summer, building our first product with Drupal 8. When we originally made the decision to offer Long Term Support for Drupal 6 , we were thinking about a few of our clients that were a little behind on their upgrade plans, and had envisioned a mostly manual process. However, once we took the plunge and signed up new clients, we had more modules and themes to track than could easily be done manually, and it remained critically important we never miss an upstream release. The Tag1 Quo Dashboard, managing multiple websites. This ultimately led to building Tag1 Quo , a product built on top of Drupal 8 to automatically track upstream releases and security advisories, comparing them against subscriber code bases to determine which need to be backported. This automation was combined with an administrative dashboard and email notification system resulting in a fancy system that quickly delivers all applicable patches to new and existing customers, ensuring everyone stays up to date while also making it easy for us to track ongoing security issues. Why Drupal 8 The first step was architecting the central service where all this information was... <a href="/blog/tag1-quo-drupal-6-long-term-support" class="Read more" hreflang="en">Read more</a></div> <span><span lang="" about="/user/jeremy-andrews" typeof="schema:Person" property="schema:name" datatype="">Jeremy</span></span> <span>Mon, 08/22/2016 - 08:42</span> Mon, 22 Aug 2016 15:42:03 +0000 Jeremy 68 at