Harmony Website Management Bloghttp://harmonyapp.com/admin/favicon.png4b5e54ccdabe9d38c300001b2020-05-12T11:18:29-04:00HTTP, HTTPS, and Google Chrome warnings59a05cc923f81207e20205a72017-09-08T09:52:22-04:002017-09-08T09:00:00-04:00<p>Google has begun sending emails to website administrators explaining an upcoming change to the Google Chrome browser. Chrome will start showing a “<span class="caps">NOT</span> <span class="caps">SECURE</span>” message on any web page hosted under <span class="caps">HTTP</span> that includes form elements like text fields. The browser currently shows this message for pages that have login forms or credit card information, but that logic is soon being expanded to encompass any web page that allows users to enter in and submit information of any sort (e.g. a Contact Us form or commenting on a blog post).</p>
<p>The email from Google looks like this:</p>
<p><img src="/assets/59a05be74078086b3301fbd3/blog_post/google_chrome_warning.png" alt="" /></p>
<p>It is true that <span class="caps">HTTP</span> sites are not secure. When submitting information to a page hosted under <span class="caps">HTTP</span>, it is possible for a malicious actor to see what was submitted. When a site is hosted under <span class="caps">HTTPS</span>, this kind of attack is far more difficult to perform. Further more, Google and other search engines have started taking into account <span class="caps">HTTPS</span> hosting when determining site rankings, preferring sites that are secure over those that may not be.</p>
<p>Now, Harmony does not itself support <span class="caps">HTTPS</span> hosting of customer sites for various reasons, but that doesn’t mean <span class="caps">HTTPS</span> is not available. There are services available that will sit in front of your Harmony site and provide <span class="caps">HTTPS</span> for you. We recommended the service <a href="https://www.cloudflare.com/">CloudFlare</a>, setting it up is easy and free. It should be noted that setting up a CloudFlare account requires changing your domain’s nameservers to CloudFlare, which may not work for some people.</p>
<p>For those who want to set up a CloudFlare account, after you sign up you’ll see a page similar to this one:</p>
<p><img src="/assets/59a0718b23f81207e20220f7/blog_post/cloudflare_step_1.png" alt="" /></p>
<p>Follow the 4 step setup process as instructed by CloudFlare. Once you’ve completed all four steps and switched your domain’s nameservers your site will start using <span class="caps">HTTPS</span> in about 24 hours.</p>
<p>For those sites where CloudFlare will not work and you would like to get your site under <span class="caps">HTTPS</span>, please contact us at <a href="mailto:harmony@collectiveidea.com">harmony@collectiveidea.com</a>. While it is true that this version of Harmony does not have built-in <span class="caps">HTTPS</span> support, we’ve been working on a version that does!</p>February 28 Incident Post-Mortem58b6ec79d4c96157090010792017-03-01T10:54:01-05:002017-03-01T10:00:00-05:00<p>Around 1pm Eastern on February 28, 2017, our monitoring tools notified us that all of Harmony, both the Administration Portal and Live Sites, was erroring and inaccessible. It took us around 20 minutes to track down the underlying issue and another 10 minutes to put together and deploy partial mitigation. The Administration Portal and Live Sites were partially back up after a 30 minute downtime, with assets and images disabled across all of Harmony. We were able to re-enable assets and images by 4:30pm Eastern, after which Harmony was completely functional once again.</p>
<p>Specifically, the reason Harmony went offline is because Amazon S3, where we store all Images and Files, had an outage such that any request for files would never receive a response. This led to all of our web servers to fill up waiting for these requests, bringing our ability to handle any traffic to zero. Once we realized where the error lay, we were able to deploy a change to Harmony that let us disable requests to S3 entirely, letting the application return to mostly normal operation.</p>
<p>Due to the wide-spread nature of the outage of Amazon S3, we quickly realized that our normal tool for customer communication, <a href="https://www.intercom.com/">Intercom</a>, was also affected by the outage and we found ourselves unable to notify our customers of the outage and the reason for image-less websites. Also, some customers noticed that our <a href="http://status.harmonyapp.com/">status page</a> which was hosted by <a href="https://www.pingdom.com/">Pingdom</a> erroneously said that Harmony was fully live instead of in a state of partial availability. We also then realized that we could not add other notices and information to this status board to inform users of our current status.</p>
<p>The outage of Amazon S3 was an access-only outage and there was no threat to any of your site’s content. However, seeing your site disappear with an error page, and then function without images, with no communication from us, is not a good customer experience. We apologize for not having adequate communication channels in place for this outage.</p>
<p>While there is little we can do if Amazon S3 has another similar outage, we should be able to communicate more effectively the current state of Harmony. In that vein we are going to do the following:</p>
<ul>
<li>Move our status page to <a href="https://www.statuspage.io/">StatusPage.io</a> which will let us add incident information and provide better communication to customers during an outage.</li>
<li>Review our other communication and informational tools and make changes to those tools which will let us get the word out more quickly.</li>
<li>Set up further monitoring such that we can catch a full outage of this nature quicker and make sure Harmony and customer live sites stay running.</li>
</ul>
<p>Again we apologize for the lack of communication during this incident. We understand how frustrating it can be when your sites are not functional and you don’t know why, and we are working to make sure this doesn’t happen again.</p>Improved Account Security539f249f4f720a1d420000082014-06-23T10:17:13-04:002014-06-23T09:00:00-04:00<p>Harmony takes the security of your accounts and websites seriously. Since the introduction of our <a href="http://get.harmonyapp.com/security/">Security Hall of Fame</a> last year we have made numerous improvements to ensure Harmony and its data are as secure as possible. Most of these changes are invisible to our users but today we’re deploying a new <a href="http://my.harmonyapp.com/#/user_sessions">Account Security</a> page, accessible via the “Security” link in your “Profile and Accounts” page:</p>
<p><img src="/assets/539f317df002ff0757000135/blog_post/Harmony_Security.png" alt="" /></p>
<p>This page shows all devices (computers and mobile) that are currently logged into your account, letting you log out any sessions you don’t recognize. If you see any sessions that look unfamiliar to you, click “Revoke” to log them out.</p>Harmony and Heartbleed534d523df002ff44f70002892014-04-15T11:49:52-04:002014-04-15T11:00:00-04:00<p>On April 7th, security researchers publicly disclosed a serious security vulnerability now known as <a href="http://heartbleed.com/">Heartbleed</a>. This vulnerability affected a vast majority of the Internet and made it possible for attackers to potentially gain sensitive information from sites protected by <span class="caps">SSL</span>.</p>
<p>Unfortunately Harmony was vulnerable to Heartbleed. We immediately took steps to fix this issue, including resetting User sessions and replacing our <span class="caps">SSL</span> certificate. Harmony is no longer vulnerable, and through our investigations we have not seen any evidence that any information was stolen. That said, as a precaution we do recommend <a href="hhttps://my.harmonyapp.com/password_requests/new">changing your account password</a>, not only on Harmony but on other sites you visit across the Internet.</p>
<p>We would also like to recommend, if you aren’t already, using one of the many password management tools available today, such as <a href="https://agilebits.com/onepassword">1Password</a>, <a href="https://keepersecurity.com/">Keeper</a>, <a href="https://www.passwordbox.com/">PasswordBox</a>, <a href="https://lastpass.com/">LastPass</a>, or <a href="http://keepass.info/">KeePass</a>.</p>Latest Updates and Site Exports519a4b82aa707a08e6001b0a2013-05-21T11:18:51-04:002013-05-21T11:00:00-04:00<p>We have been hard at work making continuous changes and improvements to Harmony, and today we’re announcing two big updates: Site Exports and an improved Theme Editor.</p>
<h2>Site Exports</h2>
<p>It’s now possible to get a fully static <span class="caps">HTML</span> export of your site! On your site’s main Dashboard you’ll see an “Export” option under “Site Administration”:</p>
<p><img src="/assets/519a4c297a50720eaf001a56/admin_export.png" alt="" /></p>
<p>This link will bring you to the Export Management page, where you can trigger an export of your site. Harmony will email you when the export is complete and a download link will show up on the Management page. Harmony keeps the five most recent exports.</p>
<p><img src="/assets/519a4c27aa707a7ae50015e7/blog_post/admin_export_list.png" alt="" /></p>
<h2>Improved Theme Editor</h2>
<p>We have also rewritten our theme editor. Now using the fantastic <a href="http://ace.ajax.org/">Ace</a> editor, theme file editing should be faster, especially with large files, and also customizable. By clicking the gear at the top right of the page, you can change the color scheme, the font, and other options:</p>
<p><img src="/assets/519a4f6e7a507212c2000e9b/theme_customize.png" alt="" /></p>
<p>We have also updated our <span class="caps">WYSIWIG</span> content editor and made a number of performance improvements both in the site and in our architecture. As always, we love hearing your suggestions for making Harmony awesome, so leave a comment or contact Support with your best ideas.</p>Server Move Progress510428c0aa707a4466000bb72013-01-28T09:00:22-05:002013-01-28T09:00:00-05:00<p>We’re excited to report that our <a href="http://get.harmonyapp.com/blog/moving-to-new-servers/">transition to new servers</a> is going smoothly. The new servers are fast and stable, using only a fraction of their capacity. We’ve had no outages during the move, and fixed a handful of small bugs in the process.</p>
<p>We still have around 100 sites that need to move <span class="caps">DNS</span>, and we’ll be contacting you again soon. We’re very pleased at how quickly many of you made the transition. We know <span class="caps">DNS</span> can be confusing, so don’t hesitate to reach out if you have any questions. We’re much more familiar with the admin panels of most popular <span class="caps">DNS</span> providers now, and are happy to help.</p>
<p>Throughout the process, we’ve talked to a number of customers about new features they’d like to see. We won’t push anything big out until after the move, but we’re always open to good ideas. Let us know what you’d like to see us work on next!</p>IPv6 for your site50f9b9fc3041324baa0012422013-01-18T16:53:40-05:002013-01-18T16:00:00-05:00<p>Did you know Harmony is available over <a href="http://en.wikipedia.org/wiki/IPv6">IPv6</a>?</p>
<p><a href='http://ipv6-test.com/validate.php?url=http://get.harmonyapp.com/'><img src="http://ipv6-test.com/button-ipv6-80x15.png" alt='ipv6 ready' title='ipv6 ready' border='0'></a></p>
<p>If you’re lucky enough to have IPv6 connectivity (our office still isn’t…come on Comcast Business), then you’re connecting to Harmony over IPv6! For the rest of us, this doesn’t make any difference, but we’re ready for the future, and your sites can be too.</p>
<p>To enable IPv6 for your site, use our <a href="http://docs.harmonyapp.com/account-management/using-domain-names/">recommended domain setup</a> which uses a <span class="caps">CNAME</span> <span class="caps">DNS</span> record instead of A Records. A Records are limited to IPv4, and while <span class="caps">AAAA</span> Records exist for IPv6, a single <span class="caps">CNAME</span> record takes care of both IP versions in one go.</p>
<p>Get out there and enjoy IPv6 on Harmony!</p>Moving to New Servers50ef4fbf8ad7ca64e100c0262013-01-14T18:25:08-05:002013-01-12T13:00:00-05:00<p>We’re ready to move fully to our new infrastructure. We’ve been moving sites over and are running about 20% of our traffic on the new setup. We’re extremely happy with how it has been going, and want to share it with everyone.</p>
<p>Depending on your <span class="caps">DNS</span> configuration, <strong>you may need to change your <span class="caps">DNS</span> settings</strong> but even if you do, we have set it up for a <strong>zero-downtime, seamless transition</strong>.</p>
<h2>Quick Summary</h2>
<p>Today we’re running both new and old servers concurrently. Both use the same database underneath, so there are <strong>no data consistency issues</strong>. We recommend changing your <span class="caps">DNS</span> with the instructions below as soon as you can.</p>
<p>February 1, we will switch the old server into “proxy mode” meaning any remaining traffic will be proxied to our new servers. If you haven’t updated your <span class="caps">DNS</span> by this date, your site will continue to work.</p>
<p>March 1, we will switch off our old infrastructure. Expect lots of emails from us if you haven’t switched your <span class="caps">DNS</span> by this date.</p>
<h2>The Details</h2>
<p>This week, we are switching <span class="caps">DNS</span> for *.harmonyapp.com to point to the new servers. We already have about half of this traffic pointing to the new servers, so you’re possibly reading this off the new setup.</p>
<figure><img src="/assets/50f1aabfdabe9d5cc3002a05/blog_post/servers_today.png" alt="" /><br />
<figcaption>simplified view of our servers today</figcaption></figure>
<p>If you’re using our recommended setup of pointing your <code>www</code> (or another) subdomain to harmonyapp.com, then you are already set! If you have your “apex” or “root” domain (<code>example.com</code>) pointed to our old IP address (<code>216.180.248.111</code>) then you need to update your <span class="caps">DNS</span> before March 1.</p>
<p><a href="http://docs.harmonyapp.com/account-management/using-domain-names/">Instructions for setting your <span class="caps">DNS</span></a> can be found, as always, in our documentation. <strong>We recommend using <span class="caps">CNAME</span> records instead of A Records</strong>. <span class="caps">CNAME</span> records allow us to take proactive measures to keep your site up, running, and fast in adverse conditions. If you do need A Records, we currently have two static IP addresses, so you’ll need 2 A Records instead of 1: <code>54.235.208.208</code> and <code>54.235.208.220</code>.</p>
<figure><img src="/assets/50f1a9e7dabe9d5c540022a2/blog_post/servers_february.png" alt="" /><br />
<figcaption>simplified view of our servers after February 1</figcaption></figure>
<p>Both server setups point to the same database, so <strong>the transition will be seamless</strong>. You can change your <span class="caps">DNS</span> at any time, and there will be no downtime or data inconsistency as your visitors transition. We’ve worked hard to make this as easy as possible.</p>
<h2>When should I change my <span class="caps">DNS</span>?</h2>
<p>We recommending you change your <span class="caps">DNS</span> today. Our new servers are faster, and we have more tools to prevent downtime. On <strong>February 1</strong>, we will change our old servers from serving pages to “proxy mode” which will simply proxy traffic to our new servers. If you haven’t moved your <span class="caps">DNS</span> your site will work, but may be slightly slowed as it grabs the data from the new servers. We plan to turn off the proxy on <strong>March 1</strong>.</p>
<p>If your <span class="caps">DNS</span> needs to be changed, expect an email from us (we know everyone doesn’t read this blog). As we get closer to both the February 1 and March 1 deadlines, you’ll get more and more. We’ll make sure everyone gets moved over.</p>
<p>We know changing <span class="caps">DNS</span> can be a pain, which is why we take this very seriously. We won’t ask you to make changes unless we have a good reason. Our new infrastructure is truly a step forward for Harmony, and we’re excited for you to join us!</p>New Infrastructure for 201350e357f07a5072720c0000832013-01-02T16:51:56-05:002013-01-01T16:50:00-05:00<p>As we roll into a new year, we’re excited to also roll out our new infrastructure.</p>
<p>Our <a href="http://status.harmonyapp.com/605160/history">Pingdom-reported uptime</a> was 99.89% for December but we know that’s not near good enough. Here’s what we have planned with a bit of background.</p>
<h2>Harmony in 2012</h2>
<p>We’ve long been limited by one non-redundant server that controls most of Harmony. If this server had any hiccups, we felt it across all of Harmony. We were also limited in the maintenance we could perform.</p>
<p>In August, we <a href="http://get.harmonyapp.com/blog/ddos-post-mortem/">added a load balancer</a> to give us more flexibility. This let us quickly re-route traffic to a slave server when our primary server had hiccups. While we still didn’t have an ideal setup, this was a definite improvement.</p>
<p><a href="http://get.harmonyapp.com/blog/update-on-our-maintenance/">In early December</a>, we moved our MongoDB database from a single server with a slave into a proper replica set. This not only allowed us faster disaster recovery, it also removed a major barrier in moving to a new server setup.</p>
<h2>2013: Redundancy, Uptime, and Upgrades</h2>
<p>Our new infrastructure brings us a new level of redundancy, allowing us, both automatically and manually, to re-route traffic around problems and perform maintenance without affecting customer sites. It also allows us to add capacity at any time, giving us much more flexibility in dealing with unexpected surges in traffic (like a DDoS attack).</p>
<p>We’re currently testing out our new production servers. This week, we’ll be moving over a few of our own sites as well as a few customer volunteers. When we move everyone over (we’ll announce before we do) you won’t notice any downtime and should notice faster response times.</p>
<p>Under the hood, we’ve been able to make other improvements including upgrades to Ruby 1.9.3 and Rails 3.2, as well as making IPv6 available for all sites.</p>
<h2>What’s next?</h2>
<p>New hardware means we’ll be comfortable pushing the bounds of Harmony (and not worried about servers going down). For example, we can better separate admin and content code. Or we could route all <span class="caps">API</span> traffic to certain servers, keeping our main ones clear for page traffic.</p>
<p>Finally, we’ve added checks for the new infrastructure to our <a href="http://status.harmonyapp.com">Status Page</a>. We’re striving for zero downtime, and we want to be as transparent as possible.</p>
<p><a href="http://www.pingdom.com"><img src="https://share.pingdom.com/banners/f21f9d83" alt="Uptime Report for [Beta] Active Live Sites: Last 30 days" title="Uptime Report for [Beta] Active Live Sites: Last 30 days" width="300" height="165"></a></p>
<h2>Want early access?</h2>
<p>If you have a <strong>live site</strong> you’d like to get on the new infrastructure, use the Feedback link in the admin to volunteer!</p>Update on our Maintenance50c0befcdabe9d5ef0002ec92012-12-06T11:37:30-05:002012-12-06T10:00:00-05:00<p>We’re happy to report that we came through <a href="http://get.harmonyapp.com/blog/harmony-maintenance-thursday-dec-6/">today’s planned maintenance window</a> with <strong>zero downtime for live sites</strong>. We did go over our hour window a bit while still in “read-only mode” for the admin, but we’re happy with the results overall.</p>
<p>Today’s work centered around moving our database to a more robust infrastructure, making it easier for us to do maintenance in the future, reducing unplanned downtime, and allowing us to recover faster in the event of a catastrophic failure.</p>
<p>Keeping your sites available is always our primary concern. As we continue to grow and improve Harmony, we want to be able to continue to do maintenance without experiencing downtime. I know that some of you were concerned about our “1 hour window” but we prefer to be very transparent about when we perform maintenance and what to expect as a worst-case. We’d love to hear your thoughts about how we communicated this window, and how we should in the future.</p>Harmony Maintenance: Thursday Dec 650bd3477dabe9d390d0082672012-12-04T14:56:14-05:002012-12-03T18:00:00-05:00<p>We will be performing maintenance on Harmony’s infrastructure this Thursday December 6th from 8 AM to 9 AM <span class="caps">EST</span> (check <a href="http://everytimezone.com/#2012-12-3,60,6be">your time zone</a>). We expect a maximum of 10-15 minutes of downtime, but it may be spread throughout this 1 hour window.</p>
<p>Consequently, Harmony and some of your hosted websites may be periodically unavailable during this time. We will be in read-only mode, meaning access to the admin, blog comments, form posts, and other edits will be unavailable. Most pages will be served from our cache layer and still be available.</p>
<p>This maintenance is part of some significant upgrades which will make Harmony better for everyone. We hope that you don’t even notice our maintenance, but we want to be transparent and announce our window.</p>Harmony & Integrations: Sitting in a Tree50aa492adabe9d4b45000fdd2012-11-19T10:12:38-05:002012-11-19T09:00:00-05:00<p>Looking for a wedding website? We’ve been working with a <a href="http://www.sittinginatree.co/">local startup</a> to build their wedding website platform atop Harmony.</p>
<p><a href="http://www.sittinginatree.co/">Sitting in a Tree</a> is building beautiful wedding websites, and we’re giving brides & grooms a great interface in Harmony. You simply sign up with Sitting in a Tree, and you get a site generated for you in Harmony.</p>
<p><img src="/assets/50aa4956dabe9d4cc300099c/blog_post/sittinginatree.png" alt="" /></p>
<p>To make it work, we had to do a few things on the Harmony side that we had been wanting to add anyway. Specifically we built the beginnings of our public <span class="caps">API</span>. Working with the <a href="http://www.sittinginatree.co/">Sitting in a Tree</a> team has helped us walk through features that our <span class="caps">API</span> needs, and let us a create a platform to build on.</p>
<p>We’re not ready to open our <span class="caps">API</span> up to the world quite yet, but it is one of our goals. In the meantime, if you’d be interested in doing a custom integration of your own, let us know!</p>Fighting a DDoS Attack: A post-mortem5040cbdfdabe9d21da00e8c92012-08-31T15:51:27-04:002012-08-31T15:00:00-04:00<p>We <a href="/blog/downtime/">previously discussed</a> our experience with downtime due to a DDoS attack, but since then it got worse, and we got better at fighting it.</p>
<h2>The Attack</h2>
<p><img src="/assets/50410efcdabe9d24130041c3/blog_post/app_server_traffic.png" alt="" /></p>
<p>At the end of July, we starting getting hit by a distributed denial of service (DDoS) attack. The attackers are going after domains with a certain term in them. For example, pretend the term was “bird” and they were attacking birdwatchers.net and houses-for-birds.biz. The attack wasn’t targeted directly at Harmony or our clients, but our clients were instead part of a larger, broader attack.</p>
<p>It was a true DDoS, coming from <strong>more than a million unique IP addresses</strong>.</p>
<p>The traffic was a mix of legitimate-looking page requests, and obvious bad requests. The bad requests mostly took the form of <span class="caps">HTTP</span> <span class="caps">POST</span> requests where they shouldn’t be posting to, and <span class="caps">GET</span> requests with a strange query string.</p>
<h2>Mitigation Strategy 1: Short-circuit bad requests</h2>
<p>Harmony is built to scale up well; we regularly have sites featured on Reddit or Hacker News and it doesn’t stress our infrastructure at all. However, the attack was using cache-busting strategies, causing them to hit a slower code path in our app instead of our cache layer.</p>
<p>Our first response was to short-circuit invalid POSTs. We changed our routing layer to recognize the few types of <span class="caps">POST</span> that we actually support, and turned all other requests into <span class="caps">HTTP</span> errors.</p>
<p>This worked for a while and got Harmony back up, but the attack ramped up in the following weeks.</p>
<h2>Mitigation Strategy 2: Moar<sup class="footnote" id="fnr1"><a href="#fn1">1</a></sup> Hardware!</h2>
<p>To deal with increased load, we added hardware. First it was simply beefing up our existing boxes, and that kept us ahead of the attack for a bit longer.</p>
<p>On August 17, we turned to a new load balancer to give us more flexibility. We did encounter some problems during the installation, and our maintenance window ballooned to over an hour. The downtime was extremely frustrating, but a necessary addition to give us more control over how requests are handled.</p>
<h2>Mitigation Strategy 3: Request Filtering</h2>
<p><img src="/assets/50410de1dabe9d180100d590/blog_post/haproxy_filtering.png" alt="" /><br />
Blue are requests received by the load balancer and orange are requests that make it to the app servers.</p>
<p>With our new load balancer we can now identify potential attackers, IP spoofing, and illegitimate requests, and block them before they get near our app servers. We’ve been really happy with the results, and we have a lot more room to respond to future attacks. Though we continue to see spikes on the load balancer, our application servers are back to their normal level of traffic.</p>
<h2>Other downtime</h2>
<p>On August 28, we experienced 12 minutes of downtime due to an upstream DDoS attack related to <span class="caps">DNS</span>. This attack wasn’t directed at us, but we felt its effects.</p>
<p>In addition, we’ve had blips of downtime due to maintenance and load testing, but not due to attacks. We are working on our infrastructure to eliminate downtime that we cause, and continuing to stay ahead of attacks.</p>
<p>We’ve been using our <a href="http://status.harmonyapp.com">status page</a> as a way to be transparent about our downtime. We want to be open about our failures, as we work to eliminate them.</p>
<h2>Moving Forward</h2>
<p>We really hate even a minute of down time and we know our customers hate it as much as we do. We’ve learned a lot over this last month about what bottlenecks Harmony faces and we are working hard to smooth them out. We have a number of infrastructure improvements planned for the coming months. Expect to hear more about them soon.</p>
<p class="footnote" id="fn1"><a href="#fnr1"><sup>1</sup></a> I gave a talk on fighting this attack at <a href="http://barcampgr.org">BarCampGR</a> last week, and the first question was, “Why did you spell ‘moar’ that way?”</p>Planned Maintenance - August 17502d58d1dabe9d54fe0022032012-08-16T16:32:17-04:002012-08-16T16:30:00-04:00<p>We’re planning a maintenance window of up to 15 minutes at 8:00 AM Eastern (13:00 <span class="caps">BST</span>, 12:00 <span class="caps">UTC</span>) Friday August 17.</p>
<p>We will have to take the app down briefly, but expect a maximum 10 minutes of downtime.</p>
<p>We apologize for any downtime, but it is necessary to install a new load balancer. We’ve been fighting a DDoS attack and the new load balancer will give us many more tools to fight these attacks in the future.</p>
<p>Thanks for your understanding, and we are looking forward to continuing to increase speeds!</p>Downtime5013059bdabe9d509e0023472012-07-28T11:57:32-04:002012-07-27T17:00:00-04:00<p>We’ve had our worst week yet for uptime in Harmony. We’ve long prided ourselves on our stability, but we failed this week. Here’s what happened.</p>
<p><img src="/assets/50130946dabe9d47b0005b4b/uptime.png" alt="" /></p>
<p>First, we’ve been seeing a large increase in traffic over the last month. While many new sites are launching, and older sites are gaining in popularity, we can scale with growth easily. This was an increase in malicious spam traffic. We’ve had a few times where requests (mostly admin pages) would time out, or hang, while a burst of traffic was being dealt with.</p>
<p>On Monday, we got hit unexpectedly with <span class="caps">DNS</span> errors. Our <span class="caps">DNS</span> provider, Zerigo, was affected by a massive <a href="http://www.cloudpro.co.uk/cloud-essentials/general/4171/zerigo-falls-victim-ddos-attackers">denial of service attack</a> and we got caught realizing that 5 <span class="caps">DNS</span> hosts isn’t enough if they’re all under attack. At the same time, many of you use Zerigo for your own <span class="caps">DNS</span>, compounding the problem.</p>
<p><ins><strong>Update:</strong> Zerigo has <a href="https://www.zerigo.com/blog/2012/07/zerigodnsoutage">posted their write-up</a>, explaining the outage.</ins></p>
<p>After Zerigo recovered, we setup redundant <span class="caps">DNS</span> so that we won’t get caught in this situation again.</p>
<p>For the rest of the week, we continued to see an uptick in traffic. We asked our hosting company to bump up our resources yesterday, and planned on a quick and easy upgrade today. Before they even got into the office to do an upgrade this morning, the traffic spiked again, and a simple reboot wasn’t enough to restore service. The fine crew at RailsMachine responded by upgrading right then, and we were back to normal.</p>
<p>Usual requests to Harmony pages scale very well because we heavily cache responses. These spam requests were mostly <span class="caps">HTTP</span> POSTs, which were able to use more resources than a <span class="caps">GET</span> request that hits our cache layer. We worked through a careful fix and finally deployed it this afternoon.</p>
<p>This graph shows the instant relief we saw after deploying, represented by the blue bar.</p>
<p><img src="/assets/501305cbdabe9d47a90048e4/blog_post/newrelic.png" alt="" /></p>
<p>We’re not pleased that we had <strong>any</strong> downtime. You depend on Harmony and we let you down.</p>
<p>As a first step, we’ve launched a new public status page, powered by Pingdom, at <a href="http://status.harmonyapp.com">status.harmonyapp.com</a></p>
<p><img src="/assets/501306e2dabe9d47b000275c/blog_post/status.png" alt="" /></p>
<p>Eek, it doesn’t look very good today, but you can click into the details and see that we had 33 minutes of downtime on Live Sites today. Not good at all.</p>
<p>We also have a lot of monitoring tools in place, so we can respond within minutes. Our hope is to get our status page back to green. We also may iterate on our status to pull in data from other services, but we wanted to start being more transparent today.</p>
<p>We’re extremely sorry. We hope our new measures will keep us up and running, and transparency will help keep you informed. If you have any questions or concerns, don’t hesitate to contact us.</p>