見出し画像

JFrog Artifactory 導入事例から学ぶ CI/CD における Saas 導入のメリット

はじめに

こんにちは、くるふとです。ナビタイムジャパンで社内 API の CI/CD の構築および改善を担当しています。

2022年度、当社では社内 API の CI/CD に対して JFrog Artifactory の導入を実施しました。今回はその事例をベースに、 CI/CD における Saas 導入のメリットについてお話ししたいと思います。

移行の背景

JFrog Artifactory 導入の話の前に、まずは当社の CI/CD 事情について簡単にご説明いたします。

もともと当社では C++ 製のプロダクト管理について、以下の問題を抱えていました。

ライブラリ間の複雑な依存関係を制御するのが難しい
ライブラリ間のバージョン不整合による API の不具合が多発していた

成果物の管理が煩雑になりやすい
ライブラリごとに保管先のストレージ、管理方法等が違ってくる

上記の問題を解決するべく、 C++ 製プロダクトを Conan Artifactory で管理することを検討しました。

Conan はオープンソースで管理されている C++ 専用のパッケージマネージャーであり、ソースコードからビルドした成果物をパッケージとして扱うことができます。

Artifactory は JFrog 社が提供しているリポジトリツールです。Conan で作成されたパッケージの保管先として利用することができます。

Conan は PyPI からインストール可能、 Artifactory はコミュニティ版(自前でホスティングする形式)が存在したため、社内への導入を進めました。

Conan Artifactory 導入後、各プロダクトの管理が整理されました。
しかし、新たに以下の問題が生じるようになります。

●利用範囲の拡大によって Artifactory をホスティングしているサーバーの負荷が上昇し、 Artifactory がダウンする事象が発生するようになった

●Artifactory をホスティングしているサーバーの保守、OS 移行、パッケージ更新等、サーバーの運用コストが多くかかっていた

上記の問題を解決するべく、Saas 版 Artifactory にあたる JFrog Artifactory への移行を決断しました。

Saas 利用による可用性の向上、サーバーの運用コスト削減が狙いとなります。

移行の進め方

影響範囲の事前調査

  • 利用範囲が広く、移行に伴って社内の各プロダクトにどういった影響ができるかを事前に洗い出した

ドキュメントの整備

  • 移行に伴い、リポジトリへのログイン方法などが変わり、CI/CD で利用しているスクリプトの修正が必要だった

  • 必要な変更内容は今回の移行チームが把握していたが、各プロダクトへの変更には担当プロジェクト毎の対応が必要だった

サポート体制の整備

  • 社内の CI/CD 事情は複雑なものも多く、プロダクトごとに違いがあった

  • 利用するプログラミング言語、サポート OS、実行ノードの台数、etc

  • プロダクト特有の事情にも対応ができるよう、移行サポートチームを編成しコードレビューやモブプロ形式での移行サポートを実施できるよう、体制を整備した

結果として、約 320 件に及ぶパッケージの移行が一ヶ月ほどで完了しました。

移行によって得られた効果

CI/CD ツールを Saas に移行したことによって、下記の効果が得られました。

CI/CD の可用性向上

  • Saas 版 Artifactory が非常に安定しており、ダウンタイム 0 の状態で運用が可能になった

  • 移行前は負荷上昇によるサーバーダウン、OS・パッケージ更新作業等でダウンタイムが生じていた

運用コストの削減

  • 負荷上昇によるサーバーダウン時のトラブルシューティングがなくなった

  • サーバーのOS・パッケージ更新作業等がなくなった

最後に

今回の導入でプロダクトの CI/CD がよりブラッシュアップされたと感じています。今後もより高い品質でサービスを提供できるよう、 CI/CD の改善を進めていきたいと思っています。

当社の CI/CD 事情については、JFrog 様主催のカンファレンス「DevOps Kaigi」でもお話ししています。よければそちらもご覧ください。