Feishu DevOps — 飛書とJenkinsを統合する運用自動化プラットフォーム
概要
feishu-devops は、飛書(Feishu / Lark)と Jenkins を中心に据えた運用(DevOps)支援サービスです。飛書上のインタラクティブなカードで操作を起点に、Jenkins ジョブのトリガー、ビルド状況の監視、結果の飛書通知、さらにアプリのグレイ・正式リリースやロールバック、再起動といった運用作業をワンクリックで行えるように設計されています。WebSocket によるイベント受信、MySQL による状態管理、Docker を利用したコンテナ化など、実運用に耐えるための基本機能を備えつつ、誤操作防止やバッチ処理、Jenkins API トークン連携など現場で必要な要件に配慮された構成です。
リポジトリの統計情報
- スター数: 4
- フォーク数: 0
- ウォッチャー数: 4
- コミット数: 2
- ファイル数: 16
- メインの言語: Go
主な特徴
- 飛書のインタラクティブカードでチャット内からデプロイ/ロールバック/再起動を実行可能
- WebSocket を用いた飛書イベント受信とボット(ロボット)管理APIの操作
- Jenkins の自動ビルドトリガー、キュー監視、ビルド結果を飛書へリアルタイム通知
- バッチ処理、重複クリック防止、誤操作防止の保護機能を実装
技術的なポイント
このプロジェクトはバックエンドを Go で実装し、軽量かつ高並列なイベント処理を狙っています。飛書側との接続は主に二つのパターンで設計されています。1) WebSocket 長接続によるイベント受信で、ユーザーのカード操作やイベントコールバックをリアルタイムに処理。2) 飛書のボット管理 API を叩いてカード送信やユーザーとの対話を行うワークフローです。カードは操作(Deploy/Gray/Rollback/Restart)を含み、ユーザーの選択を受けて内部でジョブを起動します。
Jenkins 連携は API ベースで行い、ジョブの起動、ビルドキューの監視、ビルド結果の取得を自動化します。Jenkins 側は API Token の発行と関連プラグインの有効化が前提で、プロジェクトはビルドIDやキューIDを追跡して、成功・失敗・所要時間などを抽出して飛書へ通知します。これにより、チャット上で即時にフィードバックが得られます。
状態管理には MySQL を想定しており、リリース状態やバッチ処理の進行管理、重複クリック防止のためのロック情報などを永続化します。コンテナ化(Dockerfile)と Makefile によりデプロイ手順を簡素化し、CI/CD パイプラインに組み込みやすくしています。環境変数は .env.example により管理し、機密情報(ボットトークン、Jenkins Token、DB パスワード)は運用環境で安全に注入する想定です。
運用面では、誤操作防止のため「二重確認」「ワークフロー内での状態検証」「同時実行制御」を組み合わせる設計が見受けられます。また、長時間のビルドやタイムアウトに備えたリトライやタイムアウト管理、Jenkins 側のステータス変化に対する非同期コールバック処理(ポーリングや Webhook の併用)など、実運用で起こりうる問題に対する配慮が必要です。さらに、セキュリティ面では飛書 API/Jenkins API の通信に TLS を用い、ログや監査情報を残すことで運用トラブル時の追跡を容易にします。
拡張性としては、Jenkins 以外の CI/CD ツール(GitHub Actions / GitLab CI / CircleCI 等)や、Kubernetes API を呼ぶプラグインを追加できる設計余地があり、カードのテンプレートやコマンドハンドラをプラグイン化すれば、さまざまな組織に合わせたカスタマイズが可能です。監視・メトリクスの収集(Prometheus やログ集約)を追加すれば、運用性はさらに向上します。
プロジェクトの構成
主要なファイルとディレクトリ:
- .env.example: file
- .github: dir
- .gitignore: file
- Dockerfile: file
- Makefile: file
…他 11 ファイル
まとめ
飛書とJenkinsを結びつけ、チャット主導の運用を安全に実行できる実用的なDevOps基盤です。
リポジトリ情報:
- 名前: feishu-devops
- 説明: 説明なし
- スター数: 4
- 言語: Go
- URL: https://github.com/ranp9275-sketch/feishu-devops
- オーナー: ranp9275-sketch
- アバター: https://avatars.githubusercontent.com/u/229933100?v=4
READMEの抜粋:
DevOps 服务
DevOps 服务是一个集成飞书(Feishu/Lark)、Jenkins 和 OA 系统的自动化运维平台。它提供了通过飞书卡片进行应用发布、回滚、重启等操作的能力,并能实时反馈构建状态。
功能特性
- 飞书集成:
- 支持发送交互式卡片,直接在飞书聊天中进行运维操作。
- 支持 WebSocket 长连接接收飞书事件回调。
- 机器人管理 API(增删改查)。
- Jenkins 集成:
- 自动触发 Jenkins 构建任务(Deploy, Gray, Rollback, Restart)。
- 实时监控构建队列和构建状态。
- 构建结果(成功/失败/耗时)推送到飞书。
- 发布管理:
- 支持灰度发布、正式发布、回滚、重启。
- 支持批量操作(批量发布、停止批量发布)。
- 防止重复点击和误操作的保护机制。
前置要求
- Go 1.23.3+
- MySQL 5.7+
- Jenkins (需安装相关插件并开启 API Token)
- 飞…