CI/CD on Node: The Maddening Reality
Описание и применение
Команда разработчиков Node.js создала RedKite – оркестратор развертывания, который обеспечивает нулевое время простоя, поддержку SSH и blue/green, заменив ручные скрипты и нестабильные инструменты.
Задача
Node.js projects lacked a maintained, native SSH‑based deployment tool that supported blue/green releases, leading to manual, error‑prone scripts and downtime.
Результат
RedKite reduced deployment complexity, eliminated manual secret handling, provided zero‑downtime blue/green releases, and removed the need for external CI engines.
Рабочий процесс
- Write a shell script per project → copy‑paste → project‑specific quirks
- Use Bitwarden CLI for secrets → manual updates on server
- Deploy via SSH → rebuild containers → restart services → possible outage
- Attempt Dagger.io for CI → build Docker images, swap Nginx upstreams, integrate Bitwarden → high overhead and fragility
- Identify gaps → design RedKite with native SSH, blue/green, health checks, no dependencies
- Add RedKite as dev dependency → create redkite.config.ts and environment files → deploy with single command
Доказательства
Ask a Node.js developer to name CI/CD tools and they'll likely say CircleCI, Jenkins, or GitHub Actions. Ask about SSH-based deployment tools you can run from your own machine, and the filter becomes too aggressive: Shipit (archived), and Flightplan (unmaintained).
Our first attempt was the obvious one: a shell script per project that connected over SSH, pulled the latest code, rebuilt the containers, and restarted them.
Dagger is a programmable engine for running CI pipelines in containers. It is not a deployment orchestrator.
RedKite: a deployment orchestrator written entirely in TypeScript, with zero npm dependencies and no services to install.
- Дата записи: 2026-10-01T16:40:56.448Z