隔週から毎日2回へ
3ヶ月から2週間へ短縮
3ヶ月
損保システム開発会社様
お客様はシンガポールのグローバル企業のグループ会社でした。損害保険用の保険ソフトウェア・プラットフォームを開発しています。このソフトは、オブジェクト指向言語で構築されたWEBシステムです。これは、特にアジアを中心にグローバルに提供しています。
課題
お客様は、開発のアジリティの向上と手戻りの防止を期待されていました。10年以上継続して開発してきたシステムとそれに伴い規模が拡大した開発チームには3つの課題感がありました。
1. 手作業によるデプロイ
各環境へのデプロイは手作業で行われており、頻繁にデプロイすることは不可能でした。また、ヒューマン・エラーによる手戻りも発生していました。
2. 非効率な開発ワークフロー
ソースコード管理システムと課題管理システムなどが連動していませんでした。そのため、タイムリーに情報が共有されなく、リードタイムが長くなり、一部のレビュープロセスが省略されるといった問題が起きていました。
3. 長い開発リードタイム
一つのバグ対応や仕様変更が完了するまでに平均3ヶ月かかっていました。期間が長いため、その間に同じソースに複数の修正や追加開発が施され、開発の複雑さが増していました。
解決策
CI/CD*の導入で、お客様の課題が解決できることは明白でした。そのため、今回の状況に応じた適切な設計を行うことが主眼となりました。分析フェーズで得た情報をもとに、以下の3つのポイントを具体的に設計し、導入しました。
*厳密には今回はContinuous Deliveryでした。
1. 各オペレーションの自動化
プロジェクト後のIaCの保守は運用チームが行うことを考慮し、Ansibleを選択しました。これは、YAMLでのコーディングが比較的容易で、エージェントレスなためです。既存ドキュメントやヒアリング結果をもとにAnsibleのYAMLファイルを作成しました。
2. Jenkinsによるタスク・オーケストレーション
開発者マニュアルやヒアリング結果、弊社のJenkinsのベストプラクティスをもとに、開発ワークフローを洗練させ、パイプラインで繋ぎました。
3. Jiraによる開発ワークフローとタスクの連携
お客様は内製の課題管理システムをお使いでした。このため、アプリ開発と運用をシームレスに連携させるために、既存の課題管理システムをカスタマイズするのか、別のツールを導入するのかを比較検討しました。その結果、Jiraを使って開発ワークフローとチケットを連携させることにしました。今回の場合、Jiraに既存の既存データの移行が容易にできたことと、ソースコード管理システムなどの他のシステムとの連携も可能だったことが決めてでした。
成果
お客様は開発環境にCI/CDを導入することに成功しました。開発チームと運用・保守チームは、約3ヶ月で新しい開発プロセスとツールに慣れ、単体テストや結合テスト済みのリソースを2回/日の頻度でリポジトリに登録することが可能になりました。このように、お客様が期待していた開発のアジリティと手戻り防止を実現することができました。
• デプロイ頻度:
隔週 → 日次 → 2回/日
• 仕様変更リードタイム:
3ヶ月 → 1ヶ月 → 2週間
• 作業手戻り率:
30% → 15% → 10%
このように、DevOpsのコンセプト自体は共通ですが、その実装は常にお客様固有になります。私たちは、お客様のDevOpsの仕組みを確立/改善するご支援しています。是非ご相談ください。