Last night we experienced approximately 12 hours of downtime between around 18:00 and 06:40 UTC, caused by a prolonged period of internet routing issues which our ISP has attributed to a failed line card in one of their routers. This was our longest period of downtime in many years and we’re very sorry for the disruption it caused.
Running a large service which interfaces with the venerable IRC protocol poses a different set of challenges to most modern web services: Firstly, we have to manage a large number of outbound IRC connections while ensuring as few disconnections as possible. Secondly, IRC networks expect our users to connect from a consistent set of IP addresses, and lastly, IRCCloud is subject to a high volume of distributed denial of service (DDoS) attacks.
These constraints mean that our outbound connection servers, which actually make your outbound IRC connections, have been hosted for years by a specialist DDoS-resistant hosting service provided by a major ISP. This is a costly part of our infrastructure, and it wouldn’t be economical for us to completely duplicate these servers elsewhere to mitigate against rare situations like the one last night. Switching to another ISP - even if we could find one to provide the required servers at short notice - would involve a long process of getting new IP addresses whitelisted by IRC networks.
Our current architecture also restricts us to running our outbound connection servers in relatively close proximity to the rest of our infrastructure (which is hosted on Amazon Web Services). Over the last few months we’ve been working on a significant update of our backend software to remove this restriction - in fact, we started rolling this update out yesterday.
These improvements will make it easier for us to investigate other approaches for our outbound connection servers in future, and we’ll certainly be discussing network redundancy with our ISP and future providers.
If you’re an IRCCloud subscriber, we’re happy to issue you a month’s refund in compensation for this downtime - drop us an email at firstname.lastname@example.org.
We’ve been testing this in the labs for a couple of months so things are pretty stable now. To use our integration make sure you’ve upgraded your account, then open the Add a network screen from the web interface. You’ll see an “Add Slack Workspace” button on the right:
You can also migrate any existing Slack IRC gateway connections to use our integration from the labs page or by choosing the “Upgrade slack integration…” menu item for a connection.
There are a few things you might need to setup in your Slack workspace for this integration to work, more details are available in our FAQ entry.
Here’s a side by side comparison of a workspace in Slack and in IRCCloud:
You should notice our Slack integration is a lot closer to the native Slack experience than the old IRC gateway was. Here’s a list of features we’ve added support for:
Today we’re releasing image avatars, a new feature we’ve been testing in our labs section. They come in 2 flavours, public and private, and look like this:
You’ll need to make sure the “User icons” setting is switched on in Layout & Design to see avatars. There’s also a separate setting to disable image avatars completely.
You can click on an avatar or nickname to see a larger version of it in the context menu. Avatars will also appear at the top of private messages.
A public avatar will work on most IRC networks, using an image tied to your user ID, a bit like a gravatar.
Upload a public avatar from your account settings and it’ll be visible to other IRCCloud users on any server based on your ident/hostmask.
Private avatars are only available on private team servers for now, and you can use a different image for each team.
Choose a team avatar by clicking the user icon next to your nickname in the input box.
Behind the scenes
Private avatars work using an updated version of IRCv3 metadata, a deprecated protocol extension that we’re helping to revisit and restore. Technically, any IRC server or client could support metadata avatars today, they just aren’t widely implemented yet.
We use the metadata framework to set your avatar to an unguessable URL, that won’t be published outside of the team.
If you’re running your own bot on a team server, you can give it an avatar by uploading an image and configuring it to send the following command on connect:
METADATA * SET avatar https://example.com/your-uploaded-avatar.png
Public avatars work differently. They rely on a URL that maps an image to your user ID (the bit in your ident/hostmask that looks like sid3 or uid7). We use this to detect other IRCCloud users and check whether they have a public avatar by loading that URL, e.g. https://static.irccloud-cdn.com/avatar-redirect/3.
We don’t expect other IRC clients to support public avatars, since they only work for IRCCloud users, but they could if they wanted to. It’s intended as a stop-gap until IRCv3 metadata is more widely adopted, and a way for people to try out and get used to avatars on IRC.