Going SPDY with mod_spdy and Amazon Linux / CentOS

At Wormly we’re ardent believers in the maxim that performance is a feature.  Google’s SPDY protocol is an experimental extension to HTTP with the goal of reducing the latency inherent in the HTTP protocol.  Or, rather more simply: “Get those pages delivered to the user faster!

From our perspective the biggest benefits come from stream multiplexing and header compression.

Multiplexed streams allow the browser to simultaneously request a bunch of resources over a single TCP connection – particularly handy because it avoids the latency penalty of setting up multiple TLS sessions for HTTPS.

Header compression (both request and response headers) helps further reduce the amount of data that must traverse the pipes of the internet.  These headers are probably bigger than you think – take an example request to wormly.com:

That’s 348 bytes just in the request header. And most users’ upstream bandwidth is rather more limited than your web servers’.

SPDY is currently supported by Firefox and Chrome – on Windows, Linux, Mac and Android platforms.  As it happens more than 70% of our users are on Chrome, so the benefits of adopting SPDY will be seen widely.

Enter mod_spdy

Google has released a very simple to use Apache extension to add SPDY support to your web server. We use Apache to serve www.wormly.com and we were also using mod_php to serve the parts of our web application which are written in PHP.

This actually presents a problem with mod_spdy, because its’ implementation is threaded, and PHP is not guaranteed to be thread safe.  The recommended approach is to replace mod_php with a FastCGI interface to serve any PHP requests from a dedicated pool of PHP processes – leaving the Apache processes free of any trace of the PHP interpreter.

We actually intended to switch to this sort of setup some time ago – and to switch from Apache to Nginx in the process.  However a still-unresolved limitation in Nginx whereby all FastCGI requests are buffered – meaning PHP cannot ensure that data is immediately flushed to the client – has so far prevented us from doing so.

Happily the availability of mod_spdy pushed us to find a solution; and ultimately we found it in mod_fastcgi, which does support unbuffered connections to the upstream PHP server.

Switching to FastCGI also allowed us to switch Apache to the Worker MPM rather than the Prefork MPM – and the benefits of these two changes significantly reduced the volatility of response times through our web application.  So we had a win even before deploying SPDY!

After this, installing mod_spdy is as simple as:

Restart Apache, and you’re done.

Note that Google’s included package management handles automatic updates of the mod_spdy package.

It should be noted that mod_fastcgi is not commonly included in CentOS / Red Hat Enterprise linux distributions and their derivatives (including Amazon Linux).  You can either compile it from source or use a 3rd party repository which does include it: for example the RPMForge, DAG or City-Fan.

Filed under: Meta,Servers,SSL — Jules @ 3:44 am - August 24, 2013 :: Comments Off

Wormly API Now Available

It’s been in private beta for quite a while now, so we’re very pleased to announce the immediate availability of the Wormly Developer API. Or ‘WAPI’ for everyone who loves an acronym.

Head over to:

http://www.wormly.com/developers

And check it out. Or just click the “Developer API” link that you will now find at the bottom of every page.

We’re still in the early stages of WAPI’s development, and consequently the API coverage of Wormly’s functionality is by no means complete. With your feedback and suggestions, though, we will be increasing API coverage as quickly as possible.

So drop us a line if we’re missing something crucial to you!

Filed under: Announcements,Features,Meta — Jules @ 3:17 pm - March 17, 2010 :: Comments Off

Alert logs now exportable & include host details

Primarily to assist those who on-charge the cost of notifications (SMS, phone calls, etc) to their customers, the alert log browser now includes the name and numeric ID of the host that triggered the alert.

These records can now be exported in .CSV format in addition to being viewed on screen.

The alert log browser can be found under Settings, Alert Recipients, View Alert History (toward the bottom of the page).

Filed under: Announcements,Features,Meta — Jules @ 12:21 am - September 17, 2009 :: Comments Off

SMS Delivery Outage

For a number of short periods between  Feb 10 17:05 and  Feb 11 09:36 (GMT+11) our New Jersey node (66.246.75.38) failed to deliver SMS and Phone call alerts for some customers.

This was caused by the node’s inability to resolve the DNS record needed to connect with both our primary and backup SMS gateways.

This in turn was caused by failures of the New Jersey data center’s DNS resolvers.

That, however, should not have been a problem because the standard operating environment (SOE) for all Wormly nodes includes a private DNS cache & resolver in order to prevent exactly this sort of problem.

However this particular data center provider uses a DHCP based network configuration process, which caused /etc/resolv.conf to be updated by their DHCP server, thus reverting DNS resolution back to their servers.

We have ensured that this cannot occur again by setting the immutable attribute on /etc/resolv.conf – something which is now part of our SOE.

Needless to say we apologize to the customers this has inconvenienced – and should mention that of course no charges were billed for the failed deliveries.

We’re also pleased to report that our internal monitoring alerted us to this situation, so even in the absence of contact from a couple of helpful customers we would have been able to identify and correct this problem in short order.

Thanks for your support and understanding!

Filed under: Announcements,Meta — Jules @ 10:44 am - February 11, 2009 :: Comments Off

Got Great Uptime? Tell The World!

Don’t be shy – your customers really want to know just how reliable your service is. So go ahead and brag about it with our Public Uptime Reports.

Uptime badges

When enabled, you can place one of our funky uptime badges on your site showing uptime from the previous 24 hour, 7, or 30 day period. You can also link through to a detailed uptime report where visitors can examine your uptime history on a yearly, monthly, or daily basis.

Take a look at this example – and click to see the full report:

Uptime verified by Wormly.com

It’s a great way to show your customers that uptime is important to you – Could this transparency be your edge over the competition?

Filed under: Improving Uptime,Meta,Servers,Web 2.0 — Jules @ 3:10 pm - August 1, 2007 :: Comments Off

Build Your Own Wormly Uptime Monitoring Service?

Rip-offs have never gone out of fashion – and it seems that web services are no exception. Possibly of interest to budding software engineers – examine this brief from one of our fans: Rent A Coder – Clone of Wormly

I need a site to be programmed exactly similar or even better than wormly [dot] com. It is a website monitoring and uptime site. Please register for a free account and understand what it does exactly and then bid.

And I want it to be done in PHP and linux. And moreover it is going to be hosted on a shared hosting.

We do of course wish them the best of luck – one can only be flattered by imitation, after all.

Filed under: Improving Uptime,Meta,Web Services — Jules @ 8:31 am - July 3, 2007 :: Read comments »

Setting up an SMTP server? Save 30 seconds.

Most sysadmins share a slightly compulsive tendency to need proof that things are working properly. This is particularly evident if said sysadmin is setting up a corporate mail server – it has to work first time, no excuses.

One of the more painful parts of that process has been testing the newly configured SMTP server before delegating the domain’s MX to it. This involves speaking SMTP through your telnet client, or re-configuring your mail client to speak directly with the new server, then un-re-configuring it.

Neither is a difficult task, of course, but it’s a solid 30 seconds (minimum) that I’d rather not spend.

So I whipped up a handy little SMTP test tool, which does the SMTP-speak for you, and renders the whole conversation in your browser via an IFRAME.

Neat, handy, and of course free. Try it out.

Filed under: Meta,Servers — Jules @ 2:41 pm - May 22, 2007 :: Comments Off

Interview @ The Web Hosting Show

Last week I had a chat with Mitch over at The Web Hosting Show, where we discussed – among other things – why I’m so obsessed with uptime. It was therapeutic, particularly knowing that his listeners number many in the hosting industry. Improved uptime and performance is what we’re pushing at Wormly, and I’m pleased to able to explore new avenues in doing so.

MicrophoneI don’t subscribe to many podcasts – I’m definitely in the casual listener category – but those that I follow are podcasts which focus on a very narrow, targeted niche. Mitch’s show definitely fits the bill, and his focus on the hosting industry offers listeners a lot of value. Nice work, Mitch!

Listening to our short interview, one thing that does strike me is just how varied the English language is. Despite my best efforts to slow down, my rapid-Australian-speak contrasted quite drastically with Mitch’s slow and measured twang. Keeps thing interesting!

Filed under: Interviews,Meta,Web Hosting — Jules @ 2:31 pm - May 8, 2007 :: Read comments »

Welcome to “Never Offline”

I’ve been holding off on blogging for quite some time now – but as with most fundamental shifts there’s only so long that you can avoid becoming part of the change. There’s little doubt now that blogging has become the primary channel for communication between vendors and users in online business.

Since divesting Bikely to Future PLC, I’ve made some time available for both article and blog writing – and this is where I will start, hopefully giving back a little to the online community that has taught me a great deal.

Plus after reading this thoroughly polite mention of our monitoring service, I felt somewhat compelled to join the fray. Word of mouth recommendations are a cornerstone of growing small business, and I’ve got more than a few that I ought to share.

Expect to see plenty of technical analysis in this blog – I am, after all, a techie at heart. I also aim to share my discoveries in the variety of activities that go into creating, marketing and developing an online service.

That includes everything from search engine marketing, infrastructure design, and user interface architecture, right through to pricing models and customer support. Being a jack of all trades seems to be the most crucial aspect of running a small business.

One final note – I believe that the blog as a publishing medium demands a personal connection between author and reader – as such I will not be blogging from “behind a curtain” as it were. You know who I am, precisely where any conflicts of interest lie, and what I’m trying to achieve with this blog.

We’ve seen numerous blogs which are simply hopping on the “blogging is the new marketing” bandwagon by offering poorly disguised link bait to draw traffic and backlinks. This will not be one of them.

Oh and the name of this blog, Never Offline? Well you and I; it seems we’re always online – and Wormly is all about keeping websites online. Together we’re increasingly Never Offline, right? Hopefully it’s a good thing, but time will tell on that score.

Filed under: Meta — Jules @ 10:51 am - April 18, 2007 :: Comments Off

Never Offline

A blog hosted by James Peterson, director of insights @ Wormly

On a semi-regular basis James will be trying to demonstrate that website infrastructure really is an exciting topic, and that your users really do care about the uptime & speed of your website.