Skip to content

keyskey/hado

Repository files navigation

hado

HADO は、サービスを本番環境へリリースする前に「本番で生き残れる状態か」を判定するための、オープンソースの Production Readiness プラットフォームです。

名前の由来

HADO という名前は「波動砲」から来ています。波動砲は、日本のSFアニメ『宇宙戦艦ヤマト』に登場する、宇宙戦艦ヤマトを象徴する主砲です。

ソフトウェアを本番環境へ送り出すことは、未知の宇宙へ船を出航させることに似ています。どんな障害、サイバー攻撃、運用上の想定外、監査上の問題に遭遇するかは、実際に本番へ出るまで完全には分かりません。

このプロジェクトは、宇宙戦艦ヤマトそのものではなく、ヤマトが未知の宇宙へ出ていく前に「戦える状態か」「波動砲を撃てる状態か」を確かめるための装備、あるいは備えとして位置づけています。

つまり HADO が問うのは、単にテストが通ったか、コードが綺麗かではありません。

このサービスは、本番という未知の宇宙に出しても生き残れるか?

その問いを、Production Readiness as Code として扱えるようにすることが HADO の出発点です。

Docs

Build and run

ローカルで hado CLI をビルドして実行する最小手順です。

make build
./bin/hado version
./bin/hado

make build は HADO CLI に加えて bundled module wrapper の bin/hado-gobcebin/hado-datadog-pup もビルドします。

Target manifest(service / standard)

hado target は、HADO Manifest に 評価対象の service適用する Readiness Standard を書き込み、解決した standard に含まれるゲートに対応する evidenceキーとひな形(文字列は空、coverage は module: gobce)を マージします。既に値があるフィールドは上書きしません(--rewrite-placeholders=false でこの evidence のマージをスキップ可能)。standards/<standard-id>.yaml--standards-dir または manifest 隣の standards/ に置きます。

./bin/hado target --manifest hado.yaml \
  --service-name order-api \
  --standard-id web-service

TTY で実行すると、現在の manifest の値をデフォルトにしながら対話入力できる。

Charge and fire readiness

hadotarget / charge / fire の 3 コマンドで運用します。

  • hado target: service / standard と evidence のひな形を manifest に書く
  • hado charge: evidence を module / discovery で充填(spec/
  • hado fire: manifest を Readiness Standard の gate と照合して判定する

hado fire の終了コードは 0(ready)、1(blocked)、2(error)です。BLOCKED のときは CI で扱いやすいように 1 で終了します。

HADO core は、特定の runtime や SaaS の出力形式に直接依存しない。各 readiness domain は module が evidence を正規化し、Readiness Standard の gate が判定する。仕様は docs/spec/、Manifest スキーマは docs/hado.manifest.reference.yaml を参照。

cat > hado.yaml <<'YAML'
version: v1
evidence:
  coverage:
    module: gobce
  operations:
    owner: platform-team
    runbook: https://example.com/runbooks/order-api
YAML

./bin/hado charge \
  --manifest hado.yaml

./bin/hado fire \
  --standard standards/web-service.yaml \
  --manifest hado.yaml

hado charge 後の manifest には次のように coverage 結果が直接書き戻されます。

evidence:
  coverage:
    module: gobce
    measured_at: 2026-05-26T14:30:00Z
    metrics:
      c0: 82.1
      c1: 68.4

Coverage module は manifest の evidence.coverage.module で宣言します(spec/coverage.md)。

About

Production readiness platform that determines whether your service is ready to survive in production before releasing it.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors