Gj

Gearman Job Server - Secure Distributed Queue

AWS Application Infrastructure

hand slow work to a pool of workers: a distributed job queue that ships closed, bound to loopback rather than the internet

Base
Hardened build
minimal ports, security patches applied at build time
Access
Unique credentials
generated on first boot, readable only by root
Verified
Boots working
services pass a health gate before release
Support
24/7, 365 days
by email and live chat, 24 hour response SLA

Overview

Gearman is a mature, language agnostic job server. Your application hands a unit of work to the job server, the job server hands it to whichever worker process is free, and the result comes back to the caller. Workers can be written in a different language from the client, can run on a different machine, and can be added or removed while the system is running. It is the established answer to work that is too slow to do inline, and to spreading that work across a pool of machines. Background jobs are accepted and returned immediately, then picked up by a worker whenever one is free.

Why the cloudimg image

Gearman has no authentication and no access control, so anything that can reach its port can submit jobs, drain the queue and register itself as a worker. The cloudimg image inverts that default: the job protocol is bound to loopback only, the recommended security group never opens it to the internet, and the image is verified at build time to prove nothing unexpected is listening on a public address. Widening access to your own private subnet is a documented, deliberate change. Background jobs are written to a persistent queue on its own resizable data volume rather than the operating system disk, so accepted work survives a restart. A read only status console is served over TLS behind a password generated uniquely on first boot and stored bcrypt hashed, with a separate unauthenticated health endpoint for load balancer probes. Every image is paired with a step by step deploy guide and 24/7 support.

Common uses

  • Offloading slow work such as media processing, document rendering and mail delivery from web requests
  • Spreading a workload across a pool of worker hosts that can join and leave at runtime
  • Handing work from an application in one language to workers written in another

Key features

  • Closed by default - eliminates the unauthenticated remote-execution surface. Upstream Gearman has no authentication; any client reaching TCP 4730 can submit jobs, drain the queue, and register as a worker. This image binds the job server to loopback only, ships a security group that never opens 4730 to the internet, and is build-time verified to prove no unexpected non-loopback listener exists.
  • Durable queue on dedicated Amazon EBS storage plus an encrypted status console. Background jobs persist to their own independently resizable and snapshotable EBS volume, so accepted work survives a restart and replays automatically. Live queue depth, registered functions, connected workers, and version are served over HTTPS behind bcrypt basic authentication generated uniquely per instance on first boot.
  • Ready to use and language agnostic. The job server, CLI tools, and status console are installed, wired together, and managed by systemd with a per-instance TLS certificate issued on first boot. Client libraries for PHP, Perl, Python, Ruby, Java, Go, C, and Node.js connect without code changes. Deploy inside your Amazon VPC. Includes 24/7 cloudimg technical support by email and live chat.

See it running

Real screenshots taken while testing this image against its deployment guide.

Gearman Job Server - Secure Distributed Queue screenshot 1 Gearman Job Server - Secure Distributed Queue screenshot 2 Gearman Job Server - Secure Distributed Queue screenshot 3 Gearman Job Server - Secure Distributed Queue screenshot 4

Description

This is a repackaged open source software product wherein additional charges apply for cloudimg support services.

## Gearman Job Server - Secure Distributed Job Queue by cloudimg

Gearman is a mature, language-agnostic job server that lets your application hand a

unit of work to the server, distribute it to whichever worker process is free, and

return the result to the caller. Workers can be written in a different language from

the client, can live on a different machine, and can be added or removed while the

system is running. It is the proven answer to "this request is too slow to do inline"

and to "spread this work across a pool of machines".

## The Problem This Image Solves

Upstream Gearman has no authentication and no access control of any kind. Every client

that can open a TCP connection to port 4730 can submit jobs, read the queue, and

register itself as a worker for any function - including functions your own application

defines. An internet-reachable Gearman job server is an open remote-execution surface,

and stock packages happily bind it to every interface.

## Closed by Default - Security Without Manual Hardening

This image inverts that dangerous default:

  • The job server is bound to the loopback address only. Nothing outside the instance

can reach port 4730 until you deliberately change it.

  • The recommended security group opens SSH and the status console only. Port 4730 is

never opened to the internet by this product.

  • Exposing the job server to your own private subnet is a documented, explicit,

two-step change described in the deployment guide, with the matching security group

advice, so widening access is always a decision rather than an accident.

  • The image is verified at build time to prove that nothing unexpected is listening on

a non-loopback address.

## Durable Queue on Dedicated Amazon EBS Storage

Background jobs are written to an on-instance persistent queue so work accepted before

a restart is replayed after it rather than lost. The queue lives on its own dedicated

Amazon EBS volume mounted at the job server data directory - independently resizable,

snapshotable, and separate from the operating system disk. This is the layout you would

build by hand for a production deployment, ready from first boot.

## Encrypted Status Console With Per-Instance Credentials

A read-only status console is served over HTTPS. It shows live queue depth, registered

functions, connected worker count, and running version - the numbers you need for

capacity planning and alerting without exposing the job protocol itself. The console is

protected by HTTP basic authentication whose password is generated uniquely for your

instance on first boot, hashed with bcrypt, and never shared between instances. A

separate unauthenticated health endpoint is provided for load balancer and monitoring

probes so you never have to weaken the console to get a health check.

## Ready To Use

  • The job server, the command line client and administration tools, and the status

console are installed, wired together and managed by systemd

  • First boot generates the console password, issues a per-instance TLS certificate,

and writes both to a root-only credentials file

  • Client libraries exist for PHP, Perl, Python, Ruby, Java, Go, C and Node.js, so

existing workers connect without code changes

  • The paired deployment guide covers submitting a first job, writing a worker, reading

the queue, exposing the job server to your own subnet, and monitoring

## Use Cases

  • Offloading slow work from web requests - image and video processing, document

rendering, report generation and mail delivery handled by a worker pool instead of

blocking the request

  • Spreading work across a machine pool - one job server distributing tasks to

workers on many hosts, with workers added and removed at runtime

  • Bridging languages - a client in one language handing work to workers written in

another, over a stable wire protocol

  • Modernising long-lived estates - the job server that established PHP and Perl

applications already speak, running on current, patched infrastructure

## Deployment Notes

  • Deploy on any standard EC2 instance type; m5.large is a comfortable default
  • Keep the instance inside your own Amazon VPC, and restrict the security group to

trusted networks

  • Scale by running more worker processes, on this instance or on others in the same

private subnet, against the one job server

## cloudimg Support - 24/7

24-by-7 technical support by email and live chat covering deployment, exposing the job

server to your own subnet, worker connectivity, queue persistence, status console

access, monitoring and sizing guidance.

Gearman is distributed under the BSD 3-Clause License. All product and company names

are trademarks or registered trademarks of their respective holders. Use of them does

not imply any affiliation with or endorsement by them.

Related technologies

gearmanjob queuetask queuebackground jobsworker queuedistributed jobsgearmandasync processingwork dispatchsecure job serverloopback bindingqueue persistencelanguage agnostic queuejob schedulingphp perl python worker