2023から、ミラティブのエンジニアがレガシーなPerlコードの大規模テストに関する事例を解説したセッションを紹介する。2023(CICD2023)が2023年3月20日に開催された。今回の記事では、株式会社ミラティブのインフラエンジニアである近藤宇智朗氏のセッションを紹介する。ミラティブはスマートフォンから動画やゲームプレイをストリーミング配信するシステムを提供するベンチャーだ。タイトルは「大規模レガシーテストを倒すためのCI基盤の作り方」というものだ。●動画:大規模レガシーテストを倒すためのCI基盤の作り方Mirrativのシステムを支えるテクノロジースタック。GCPやGitHubなどで構成されているタイトルにあるようにレガシーな大規模テストを実行するための継続的インテグレーション、継続的デプロイメントに関する経験談を解説する内容となっている。システムの開発は2015年にスタート、当初はPerlをベースにした配信サービスだったが、後にGoを中心としたモダンなシステム開発に移行したという。実際にはPerlのコードはまだ生き残っており、今回はそのPerlの資産をテストしビルドするためのCI環境に関するユースケースを解説している。現時点ではGoで書かれたアプリケーションに対するテスト、システム全体のE2Eテスト、レガシーなPerlのコードで構成されたシステムに対するテストなどが定期実行されているという。Platform(GCP)に移行することについて統一を実行。その背景としてアカウントを一つのプラットフォームに寄せて管理を容易にすること、アカウントを集約することでコストを圧縮することなどがあったという。細かい話だが、アプリケーションが利用するコンテナレジストリを同じUSリージョンに配備すると、データ転送料が無料になるという事情もあったと解説した。Pub/Subとの連携がシンプルである点などが採用の背景であると説明した。Build自体の高機能には期待せずに外部サービスとの連携によって機能を実装するという方針に加えて、従量課金を採用したかったというのが選択の理由だと説明。Buildで実行した時に遭遇したトラブルについて解説を行った。ci」というコメントが挿入されるのかというそもそもの状況については解説をせず、イメージを強制的にデプロイするための方法について解説を行った。Pub/Subに送ってトリガーとするというものだ。Build自体の機能で回避策を実装するのではなく、GCPが用意するサービスを使って必要な実装が行われていることがわかる。本題である大規模テストに関する課題について解説を行った。Buildに移行する際のチューニングに関する内容となった。大規模なPerl資産に対するテスト実行のユースケース創業当初から存在するPerlのコードには大量のテストコードが存在しており、それを新しいプラットフォームで実行するというのがミッションである。そのまま実行しただけでは処理時間やコストの観点からベストではないというところから、テストの並列化によって処理時間を短縮するというのがここからの内容だ。レガシーなPerlのテストを大量に実行するための戦略はテストの並列化によってテストを同時実行できるようになり、Pub/Subを組み合わせて通知もシンプルにシステム化が可能になり、テストも細分化することで当初の目的であるテストをすべて実行することが可能になったという。コストがかさみ過ぎるという問題が発生したというのがこの後のトピックだ。Buildの内部で実行されているDockerの動作パラメータを変更することで、処理時間を短縮することができたと説明。ここではCPUを固定することとコンテナへのCPU割り当ての重みを変更することで、アプリケーションとともに実行されるMySQLなどの処理時間を短縮することが可能になったことを解説した。他にコンテナのネットワーク設定についても触れている。Buildの上で実装されていることを説明。ciへの対処、Perlの大量なテストを回す仕組み、チューニングなどについて解説したと総括した。Pub/Subなどと組み合わせることで必要な機能を実装できることを意識したほうが良いと説明した。最後にテストの実行について、並列化すれば良いのではなく何がボトルネックなのかを把握するためには、既存のシステムの計測をちゃんとやっておく必要があること、その上で新しいシステムでの計測値との比較を行って勘ではなく科学的に原因を追及することの重要性を強調した。ciについては、どうしてそれがMirrativにおいて発生したのか、ビルドを行わないという方法が各種CIツールで存在していることはそれなりの使い方があるということだろうが、そこの部分について説明も聞いてみたかったと感じた。テスト実行のチューニングについてはCPU、ネットワークだけについても触れているが、他の要因についての考察があれば、より参考になったのではないだろうか。pipelineなどでも話題になっている。この著者の記事一覧フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。Actionsを実行するノウハウを解説したセッションを紹介する。2023から、ソフトバンクのエンジニアによるKubernetes構成をテストする事例を解説したセッションを紹介する。Conference2023から、CIを加速するトランクベースの開発をDMMのエンジニアが解説したセッションを紹介する。Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。ITがお届けするポッドキャストです。