Small Business Work-From-Home Survival Guide

Everyone is now well aware of the COVID-19 virus outbreak and the need to reduce person-to-person exposure and self-quarantine. Larger companies have no doubt been busy implementing their business continuity plans to cope with the issue however many smaller companies don't have the resources available to prepare for these types of disaster scenarios ahead of time. As the reality of this situation starts to take hold, many businesses that were initially reluctant to make adjustments are now scrambling for options on how to continue to conduct business in an unexpected, and likely prolonged, work-from-home environment. Below I've put together some resources and tools that may be of use to those unfamiliar with these types of setups. [Continue reading...] Small Business Work-From-Home Survival Guide

High Availability RabbitMQ With Mirrored Queues

RabbitMQ is a robust message queue which features high message throughput, configurable acknowledgements, an intuitive management GUI and wide client library support. Written in Erlang, RabbitMQ has built a reputation for outstanding stability which makes it a popular choice as a core infrastructure system.

As you plan your overall messaging architecture a universal requirement is to minimize downtime from any single point of failure. Fortunately RabbitMQ comes equipped with built-in high-availability facilities, your tolerance for message loss will determine the which of the available HA options and approaches fits best. This post will mainly focus on setting up RabbitMQ mirrored queues which provide the highest protection against message loss. [Continue reading...] High Availability RabbitMQ With Mirrored Queues

Guaranteed Topic Delivery using ActiveMQ Virtual Destinations

The original JMS spec first arrived in 2001 with JSR 914. At the time several enterprise messaging systems were already widely available however each had their own unique features and mechanisms which required software that wanted to talk on a given messaging bus to be tightly-coupled to the specific messaging system implementation in use.

Given that "tightly-coupled" is something you want to avoid in your enterprise systems, there was a push to abstract away these implementation-specific system aspects from the messaging client code. To address this, the JMS was developed to define a standardized, consistent programming interface that would work across different JMS-provider implementations. [Continue reading...] Guaranteed Topic Delivery using ActiveMQ Virtual Destinations

3-way Disk Mirrors With ZFSOnLinux

Traditionally mirrored disk sets in Linux and other operating systems have been limited to two devices. While mirroring has the benefit over other raid levels in that each mirrored device contains a complete copy of the data, the two device limit became inadequate as disk sizes ballooned. In the age of multi-TB drives, simply rebuilding a degraded mirrored array could actually cause the surviving device to fail, eliminating the very redundancy one was expecting.

ZFS addresses this particular problem in several ways through data checksums, self-healing and smart resilvering instead of blindly rebuilding full array members even if only 1% of disk space is being used. [Continue reading...] 3-way Disk Mirrors With ZFSOnLinux