name: inverse layout: true class: underscore
class: center, middle, hero
@douhashi
class: center
- github.com/agileware-jp/douhashi-slides
で、公開しています。
- 堂端 翔 (どうはし しょう)
- facebook.com/douhashi
- 一児の父 4歳なりました
class: center, middle
class: center
class: center
class: center
- Agileware Inc. CTO
- 最近はインフラ屋さん
- Ansible / AWS マニア
class: center, middle
class: center, middle
class: center, middle
class: center, middle
class: center, middle
class: center, middle
- 富士機械製造株式会社 さま
- ドメイン fuji.co.jp なんだぜ
- 電子部品を作る機械を作る会社さん
- nmとかいう単位で基盤に穴あけするとか。
- 超カッコいい。
- 現在 20台 以上のRedmineが乱立していて運用もバラバラ
- ハード屋さんとソフト屋さんのワークフローが分離してたり。
- 大きなプロジェクト単位でRedmineが分かれてる
- すべてのインスタンスが1台のサーバに同居しているのでパフォーマンスの問題もでているので解消したい
class: center, middle
- 最初はワークフローもチーム(部署/開発チームとか)で自由に定義して運用したい
- 最初からベストなワークフローなんて思いつかない
- とりあえずインスタンス分けて小さくやっていくのは自然な流れ
- 運用当初から一個にまとめようとすると運用が大変
- みんな自由に使ってこそ、問題点/改善点が見える
- 汎用化しようとすると浸透しない
- 大体各々の業務フローもわかってきた
- 大部分は統一できるんじゃね?という思い
- 横串で見たい
- 分析したい
=> 統合したい、っていう欲求が生まれる
class: center, middle
class: center, middle
- DB上のauto incrementなid列をチケット番号に使用している
- コミットコメントやチケット等で「#100」などチケット番号で参照している
=> つまり、単純にCSV出力/インポートでは参照が崩れる!
class: center, middle
class: center, middle
(弊社の優秀なエンジニアが...!)
- 統合元Redmineのデータを 中間データ(SQLite) としてエクスポート
- 統合前のIDを中間データに保存しておく(from ID)
- 統合先へインポート
- 統合後のIDを保存しておく(to ID)
- from idを元に、チケット/Wiki/コミットコメント等の参照を張り替える
- 統合元Redmineのトラッカーやカテゴリ、ステータス等を統合先の既存データに合わせる
- 設定ファイルで定義できるようにした
- 添付ファイルをごっそり移行する
- 統合ツールはRedmineプラグインとして実装。
- 外部ツールではない
- メリット: Redmineが有する機能をそのまま使える
- デメリット: Redmineバージョンにカナリ依存する
class: center, middle
class: center, middle
class: center, middle
- チケット 約 15,000 件
- 履歴 約 200,000 件
- カスタムフィールドの入力値 約 200,000 件
このデータ量で3日かけてもインポートまで終わらない...
class: center, middle
class: center, middle
- サーバスペックの一時的増強
- 通常運用時の倍ぐらいにあげて貰った
けど、IOが足を引っ張って1.3倍ぐらいの成果...
- CPUの有効活用のため、プロセスを分割する
- 時間のかかる履歴/コミットログ等のチケット参照の書き換え処理を分離、統合後に実行可能とした
class: center, middle
class: center, middle
(土日は客先での寝泊まりの日々)
class: center, middle
「アジャイルさんね。今日も遅いの?」
class: center, middle
- 都度都度push通知するようにした
- im.kayac.com というRESTでケータイに通知送れるサービス
- 便利なのでぜひ。
class: center, middle
class: center, middle
class: center, middle
class: center, middle
- プロジェクト数: 1,434
- チケット数: 92,710
- 履歴: 377,513
- CFの値: 851,932
- コミットログ: 1,058,789
- 一元管理が出来る
- 他のプロジェクトの様子が見える
- 業務フローを統合していける
- 大変だったけど、チャレンジする価値はある
- 一元管理できると、プロジェクトの問題、運用の問題が見えるようになる
- アクセス集中によるパフォーマンス劣化対応
- 業務分析、ワークフローの統一化(大変そう)
- せっかくデカいRedmineができたので、いろいろデータ分析していきたい。
- 業務フローのパターン洗い出しとか、出来そうだよね。
- パフォーマンスチューニングの練習。
class: center, middle
class: center, middle
- 今までの中で一番デカいじゃん。
class: center, middle
class: center, middle
class: center, middle
- ごめんなさい、今日はキャンセルしちゃいました...
class: center, middle