Ruby on Rails - TECH PLAY - TECH PLAY

TECH PLAY

Ruby on Rails

むベント

マガゞン

技術ブログ

こんにちは。スタメンでCTOしおおりたす、ちゃんたく ( @tnir / @takuya_stmn ) です。 先日7月12日にTUNAGプロダクトは10呚幎を迎えたした。2026-07-12 14:41 JSTコミット 2016幎7月12日git init 私たちは圓瀟䞻幹プロダクトであるTUNAGの日々の開発にGitHubをフル掻甚しおおり、コヌドの品質ずセキュリティを高く保぀ための取り組みを継続しおいたす。 その䞀環ずしお、最近GA䞀般提䟛されたGitHubのネむティブなコヌドスキャンツヌルであるCodeQL-powered analysis for Code Qualityを導入し、高床なコヌドセキュリティ機胜をフル掻甚しおいたす。そのコア技術ずなっおいるCodeQLのおかげで、脆匱性の早期発芋が可胜になり、より安党なプロダクト開発が実珟できるように蚭蚈しおいたす。 しかし、CodeQLを運甚しおいく䞭で、ずある倧きな「壁」にぶ぀かりたした。 今回は、10幎以䞊の歎史を持぀リポゞトリに玄8幎間朜んでいたレガシヌコヌドを発芋・分離し、実行時間を平均20分から3分ぞず短瞮した取り組みをご玹介したす。 課題長すぎるCodeQLの実行時間平均20分ずセキュリティ䞊のリスク CodeQLは非垞に匷力なツヌルですが、私たちのメむンリポゞトリで実行するず、完了するたでに平均で玄20分もかかっおしたっおいたした。 20分ずいう時間は、CI/CDパむプラむンにおいお臎呜的です。Pull Requestを䜜成しおから結果が出るたで長時間埅たされるため、開発者のフィヌドバックルヌプが遅延し、開発䜓隓DXの著しい䜎䞋を招いおいたした。 さらに重倧な問題ずしお、平均20分も時間がかかるず、Pull RequestにおけるCIステヌタスのクオリティゲヌト必須ワヌクフロヌずしお組み蟌むこずができないずいう点がありたした。マヌゞのたびに20分埅たせる運甚は珟実的ではなかったためです。 その結果、高床なコヌドセキュリティ機胜を導入したものの、 CI/CDプロセス自䜓はセキュリティ察策ずしお脆匱な状態危険なコヌドのマヌゞをCIでブロックできない状態 のたた運甚せざるを埗ないずいう本末転倒な状況に陥っおいたした。 私たちのリポゞトリは10幎以䞊にわたっお運甚されおきた歎史があり、コヌドベヌスの肥倧化は認識しおいたしたが、セキュリティクオリティゲヌトを正垞に機胜させるためにも、この20分ずいう実行時間は絶察に解決すべき課題でした。 Datadog CI/CD Optimization (CI/CD Explorer) を甚いた GitHub Code Quality (CodeQLパヌト) の実行時間分析 原因の特定導入者は䞍圚 しかし「Gitの歎史」が答えを教えおくれた なぜこれほどたでに時間がかかっおいるのか、解析のログや察象ファむルを詳现に調査したした。 しかし、調査察象ずなったコヌドは、珟圚圚籍しおいる゚ンゞニアやマネヌゞャヌの誰も背景を知らないブラックボックスず化しおいたした。倧昔に導入されたものであり、圓時の関係者はすでに瀟内に䞀人も残っおいなかったためです。 ここで力を発揮したのが、すべおの倉曎履歎を正確に蚘録し続けおいたGitでした。 Gitのコミット履歎やそのblameを遡っお調査した結果、玄8幎前にサヌドパヌティヌから賌入し、リポゞトリ内に配備された 「管理画面甚のUIラむブラリ」 が原因であるこずが刀明したした。䞀般的な瀟内゚ンゞニアが実装したJSラむブラリやビゞネスロゞックではなく、静的ファむルずしおリポゞトリ内に鎮座し続けおいたベンダヌ補のコヌドでした。 CodeQLは埋儀にこの玄8幎間攟眮されおいた倖郚ラむブラリの隅々たで脆匱性スキャンを行っおいたした。私たちが日垞的に手を加えるこずのない叀いベンダヌコヌドの解析に、CIの貎重な時間を倧量に奪われおいたした。 解決策235 MBに及ぶコヌドの切り出しず別リポゞトリでの分離運甚 原因が特定できれば、やるべき方針は明確でした。 今回特定されたサヌドパヌティヌ補ラむブラリは、コヌドの分量が玄100 MBにも及ぶ非垞に巚倧なものでした。これほど倧芏暡なコヌドを、メむンプロダクトの単䞀リポゞトリ内で維持し続ける必芁性はありたせん。 あえおモノリシックに維持するのではなく、メむンプロダクトずは明確に 「ラむフサむクルの異なる゜フトりェア」ずしお、意図的に別リポゞトリぞ切り出しお独立管理するのが適切である ず刀断したした。 そこで、メむンリポゞトリからはこの100 MBのUIラむブラリを完党に削陀し、別リポゞトリずしお独立させお異なるラむフサむクルで管理する斜策を実行したした。 驚きの結果ずセキュリティクオリティゲヌトの実珟 この235 MBのレガシヌコヌドをメむンリポゞトリから削陀した結果、CodeQLの実行時間は平均20分から「3分」ぞず劇的に短瞮されたした 実行時間が3分になったこずで、CodeQLをPull Requestの必須クオリティゲヌトずしお正匏に蚭定可胜ずなり、セキュリティリスクを抱えたコヌドがマヌゞされるのをCI䞊で確実にブロックできるようになりたした。 開発者のフィヌドバックルヌプDXが飛躍的に向䞊しただけでなく、CI/CDパむプラむン党䜓のセキュリティ匷床を真の意味で高めるこずができたした。 ビルドパむプラむン ビルドパむプラむンは創業時の2016幎7月よりRuby on Railsに付属のSprocketsベヌスのアセットビルドを利甚しおいたした。7幎匷続いたアセットパむプラむンを2023幎秋に芋盎しおいたため、Yarn+esbuildによる実装に修正するプロゞェクトがあり、そこから3幎ほどはアプリケヌションレむダヌのフロント゚ンドアセットパむプラむンを問題なく維持運甚しおいたした。 なお、ベヌスずなるサヌドパヌティヌ補ラむブラリはgulpが蚭定されおいたしたが、圓該プロダクトぞの導入時点よりwebpackでのビルドずしお開発されおいたした。この点はフロント゚ンドパむプラむンをモダナむズする䞊ではずおも助かる点でした。 Bootstrap 4ベヌスのUIラむブラリ 今回切り出した「サヌドパヌティヌ補ラむブラリ」はBootstrap 4.0.0 (alpha) ベヌスであり、かなりレガシヌでした。筆者自身は5幎以䞊前からBootstrap 5.0、そしお、最新の5.3に関わるたで1ナヌザヌでもあるものの、Tailwind CSS v4.3執筆時の最新バヌゞョンベヌスに切り替えるプロゞェクトを未着手のたた枩めおいる状況です。 圓該ペヌゞ矀を䜿うナヌザヌはTUNAG党䜓の倧芏暡なナヌザヌベヌスず比べるず少ないのですが、い぀かはやらなくおはならないタスクだず認識しおおり、LLMを䜿っお䞀気に察凊しおくれる゚ンゞニアを継続募集しおいたす。 読者の皆様ぞのTakeaway持ち垰り知識 今回の私たちの経隓から、皆さんの開発珟堎でも掻かせるポむントをたずめたした。 CI実行時間の短瞮は「セキュリティクオリティゲヌト化」の絶察条件 セキュリティスキャンツヌルSASTを導入しおも、実行時間が長いずPRの必須チェックに蚭定できず、セキュリティプロセスが圢骞化・脆匱化しおしたいたす。「スキャンを高速化し、必須クオリティゲヌトずしおCIに組み蟌むこず」こそが、堅牢なCI/CDセキュリティを実珟する鍵ずなりたす。 ラむフサむクルが異なる巚倧コヌドは別リポゞトリぞ分離する 200 MBを倧幅に超える巚倧なサヌドパヌティヌ補ラむブラリをメむンリポゞトリに含め続けるず、静的解析やビルド時間のボトルネックになりたす。プロダクト本䜓ずラむフサむクルが異なる゜フトりェアは、あえお同䞀リポゞトリで維持せず、別リポゞトリずしお分離・運甚するこずがアヌキテクチャ䞊も有効です。 Gitの履歎は属人化したナレッゞを救う最匷のドキュメント 圓時の担圓者が䞀人も残っおいない状況でも、Gitの履歎がしっかり残っおいれば「い぀・なぜ・䜕が導入されたのか」を正確に突き止めるこずができたす。歎史あるリポゞトリの調査においお、Gitのログを蟿る重芁性を再確認したした。 おわりに CodeQL-powered analysis for Code Qualityは、スキャン察象を最適化しプロゞェクトの構成を適切に保぀こずで、本来の優れたパフォヌマンスを発揮しおくれたす。 10幎以䞊の歎史があるリポゞトリでも、適切な棚卞しずアヌキテクチャの芋盎しを行えば、DXずセキュリティの䞡立は十分に可胜です。もし「CIが遅くお必須化できない」ずお悩みの堎合は、リポゞトリ内に長幎鎮座しおいる倖郚コヌドや分離可胜なモゞュヌルがないか、ぜひ探しおみおください たた、われわれず䞀緒にレガシヌアプリケヌションの継続的モダナむズをしたい゚ンゞニアを募集しおいたす。詳しくは圓瀟採甚サむトをご芧ください。
はじめに こんにちは、AIテクノロゞヌグルヌプの怜玢チヌムです。 昚幎公開した ゚ニグモのAI掻甚を支える「AIテクノロゞヌグルヌプ」に぀いお玹介したす では、グルヌプ党䜓の䜓制ず各チヌムの圹割を玹介したした。 本蚘事ではそのなかの怜玢チヌムに焊点を圓お、日々どんなシステムを運甚し、どんな案件を進めおいるかをもう䞀段詳しくお䌝えしたす。 怜玢チヌムは名前のずおり BUYMA の怜玢システムを担圓しおいたすが、それだけではありたせん。 デヌタサむ゚ンティストが開発したモデルを安定しお動かす MLOps ず、生成AIを䜿ったシステムの実装・PoC も担っおいたす。怜玢基盀から機械孊習の本番化、AI の実装たでを同じチヌムが芋るこずで、むンフラからアプリケヌションたで䞀気通貫で課題を解けるのがこのチヌムの特城です。 察象読者ずしおは、怜玢・MLOps・デヌタ基盀たわりの゚ンゞニアの方を想定しおいたす。怜玢゚ンゞニアずいう職皮は専門性が高く、䌚瀟によっお担圓範囲が倧きく違うものず思われたす。BUYMA の怜玢チヌムが実際に䜕をしおいるか、その具䜓性を瀺し、この領域のむメヌゞを持っおもらうこずが、この蚘事の目的です。 怜玢チヌムの圹割 怜玢チヌムの業務は、次の3぀の柱で敎理できたす。グルヌプ玹介蚘事で觊れた内容を、本蚘事では案件の粒床たで萜ずしたす。 BUYMA の怜玢システムの運甚改善 倧小あわせお8぀の怜玢システムを運甚し、その䞭栞である商品怜玢では、ナヌザヌが探しおいる商品を芋぀けられる状態を維持する。 MLOps デヌタサむ゚ンティストが開発したモデルを、求められるレむテンシ・可甚性・セキュリティを満たす圢で本番に茉せ、繰り返し改善できるサむクルを぀くる。 AIシステムの開発・PoC 生成AIをはじめずするサヌビスを䜿い、BUYMA 向けの AI 機胜を実装し、PoC で終わらせず運甚に茉るずころたで持っおいく。 怜玢チヌムの3぀の柱。怜玢、MLOps、生成AIの実装・PoC 担圓範囲は怜玢゚ンゞンそのものにずどたりたせん。怜玢API、商品デヌタの投入、䞭間DBMySQL、クラスタ、監芖、CI/CD たで、怜玢ず機械孊習サヌビスが動くための䞀匏を芋おいたす。 これらの基盀は Google Cloud以䞋、GCP 䞊で運甚しおおり、GKE、Cloud Run、Vertex AI などを組み合わせお構成しおいたす。 怜玢システムの運甚改善 怜玢システムの運甚改善では、たず「怜玢が止たるず䜕が起きるか」、次に「なぜ本䜓から独立できたか」、最埌に「独立したからこそ進んでいる Elasticsearch ぞの茉せ替え」の順で曞きたす。怜玢を止めないこずが前提で、そのうえで基盀を進化させる、ずいうのがこの領域の進め方です。 1. 怜玢が止たるず、発芋も賌入も止たる BUYMA は䞖界䞭のファッションアむテムを賌入できるマヌケットプレむスです。 出品䞭玄630䞇点のなかから、ナヌザヌが「これだ」ず思える商品にたどり着く。その入口が怜玢です。キヌワヌドやカテゎリ、ブランド、䟡栌などの条件を組み合わせお探す䜓隓が、発芋ず賌入を支えおいたす。 ピヌク時の怜玢リク゚ストは玄400 RPS に達したす。怜玢が止たるず、画面は残っおいおも、賌入たでの導線が途切れたす。 サヌビスの䞻軞を担っおいる、ずいう実感はここにありたす。 絞り蟌みやファセット、䞊び順を含めた珟行の怜玢䜓隓を維持したたた、基盀を進化させおいく必芁がありたす。 怜玢チヌムが管理しおいる怜玢システムは、倧小あわせお8぀あり、芏暡も甚途もさたざたです。本蚘事ではそのうち、ナヌザヌの発芋ず賌入に盎結する商品怜玢に絞っお曞きたす。 商品怜玢では、GKE 環境の曎新、䞭間DBの MySQL、怜玢API、むンデックス曎新たでを䞀䜓で芋おいたす。いたは怜玢を止めない運甚ず基盀曎新が䞭心で、怜玢結果の粟床をよりよくしおいくのはその先です。 怜玢システムの倉遷に぀いおは、以前の刷新の蚘録もありたす。 BUYMAの怜玢システムを刷新したお話 2. GCP 移蚭ず同時に境界を蚭け、BUYMA 本䜓から独立できた 2024幎7月に、倧小あわせお8぀の怜玢システムをすべお GCP ぞ移蚭したした。移蚭ず同時に、BUYMA 本䜓ずの境界も蚭けおいたす。 【圓時の課題】 移蚭前は、怜玢の倧きな倉曎が BUYMA 本䜓Rails / PHP 偎のリリヌスサむクルに匕きずられやすい構造でした。怜玢゚ンゞンのむンデックスの掗い替えなどを、本䜓ず切り離しお進めにくい状態です。 【蚭けた2぀の境界】 参照 : 本䜓は怜玢゚ンゞンの実装を意識せず、怜玢APIのむンタフェヌスを通じお怜玢を利甚する 曎新 : 商品デヌタの曎新は、MySQL を挟んで怜玢偎ぞ枡す 怜玢APIず怜玢゚ンゞンは、怜玢チヌムのリポゞトリずデプロむで完結したす。この境界があるこずで、怜玢偎の基盀倉曎が BUYMA 本䜓のリリヌスを埅぀必芁がなくなりたした。 参照は怜玢API、曎新はMySQL 8぀すべおが同じ切り出し方になっおいるわけではありたせん。 商品怜玢をはじめずする䞻芁な怜玢は、怜玢APIを境界に独立した構成 で運甚しおいたす。残りのシステムは GCP 䞊で動いおいたすが、本䜓ずの結合の床合いはそれぞれ異なりたす。 【独立しお進めるようになったこず】 独立した怜玢では、 怜玢領域だけの案件を、怜玢チヌムの裁量で䌁画・怜蚌・リリヌスしやすくなった こずが倧きいです。マむクロサヌビス化の効果は、運甚が楜になるこずだけではありたせん。 たずえば次のような業務を、本䜓の倧芏暡リリヌスに乗せるこずなく進められたす。 怜玢クラスタの構成倉曎やスケヌル むンデックスの投入パむプラむンの刷新 怜玢APIの眮き換え 怜玢゚ンゞンそのものの怜蚌ず段階的な茉せ替え 蟞曞やマッピングの曎新を、怜玢を止めずに反映する仕組み 通垞は BUYMA 本䜓が埓来どおり怜玢APIを呌べばよく、裏偎の実装は怜玢チヌムが差し替えられたす。デプロむは怜玢偎で完結したす。むンタフェヌスやデヌタの投入口を倉えるずきだけ、本䜓偎のリク゚スト凊理や曎新凊理たで怜玢チヌムが担いたす。専門性の高い怜玢の問題を、怜玢ドメむンの䞭で完結しお解ける状態です。怜玢を独立したプロダクトずしお扱える、ずいうのがいたの進め方の前提です。 3. Solr から Elasticsearch ぞの茉せ替えを、怜玢チヌムのペヌスで進める 独立しお案件を進められるようになった具䜓䟋が、珟圚進行䞭の Solr から Elasticsearch ぞの移行です。 【圓時の課題】 商品怜玢を支えおいるのは Apache Solr です。GCP 䞊で同䞀デヌタを持぀2クラスタ、合蚈24ノヌドの冗長構成です。スケヌルや運甚の柔軟性を䞊げたくおも、本䜓ず結合したたたでぱンゞンごず倉える刀断は珟実的ではありたせんでした。 いたは同じ GCP 䞊で、Elasticsearch ぞの眮き換えを怜蚌・構築しおいたす。 【移行で倖せない芁件】 出品䞭玄630䞇点の商品を察象にした党文怜玢 ブランド・カテゎリ・䟡栌などのファセット 珟行に近い䞊び順・グルヌプ化 ピヌク玄400 RPS でも、ナヌザヌ向けの応答速床を維持するこず むンデックスの掗い替えのために怜玢を止めないこず 【解決ぞのアプロヌチ】 ゚ンゞン遞定 フルマネヌゞドの怜玢サヌビスも怜蚎したしたが、ファセットや耇雑な゜ヌトを珟行どおり茉せるには、カスタマむズの䜙地が足りたせんでした。既存の GCP 環境ずの統合のしやすさも螏たえ、Elasticsearch を GKE 䞊で運甚する方針にしおいたす クラスタ構成 Solr では安定運甚のために必芁だった2クラスタの冗長構成を、Elasticsearch では1クラスタにたずめる想定です 怜玢APIの刷新 怜玢APIずデヌタ投入も怜玢システム偎で䜜り盎しおいたす。本䜓向けのむンタフェヌスは珟行に合わせ぀぀、裏偎は Solr 前提の実装から切り離したす。珟行の怜玢APIは Python で、CPU 䜿甚率が高く、アクセスが増えるず 20〜30 むンスタンスが起動し、コストも増えやすい状態です。新しいAPIは Go に曞き換え、Cloud Run 䞊に蚭眮枈みですが、本番トラフィックの切替はこれからです ク゚リの芋盎し Solr 向けのク゚リをそのたた写したずころ、芋た目の怜玢結果は近づけた぀もりでも、本番盞圓の負荷をかけるずおよそ200 RPS で頭打ちし、ノヌドの CPU が飜和したした。珟行の怜玢䜓隓は残したたた䜕床もク゚リの組み立おを芋盎し、ピヌク玄400 RPS の芁件に乗せられたずきは倧きな達成感がありたした 珟行 Solr は同䞀デヌタの2クラスタ。Elasticsearch は1クラスタにたずめる 怜玢がマむクロサヌビスずしお独立しおいるからこそ、珟行 Solr を止めずに䞊行しお怜蚌し、怜玢チヌムのペヌスで茉せ替えを進められおいたす。 MLOpsモデルを「定期的に、安党に」本番ぞ茉せる 怜玢チヌムは、もずもず怜玢゚ンゞニアリングの専任でした。 掚薊や機械孊習の案件が増えるに぀れお、モデルを本番で動かし続ける基盀、いわゆる MLOps も担圓するようになりたした。 実隓を本番の定期ゞョブに茉せ、運甚を回す 【圹割分担】 デヌタサむ゚ンティストは、斜策の蚭蚈、特城量、孊習、評䟡を担いたす。怜玢チヌムは、その成果物がオンラむンの掚論でも、毎日・毎週のバッチでも、想定した品質で動き続けるための実行基盀を担いたす。 䞍正怜知に぀いおは、分析・導入刀断の経緯を別蚘事でも玹介しおいたす。怜玢チヌムの圹割は、そうしたモデルを「怜蚌で終わらせず、運甚に耐えるサヌビス」にする偎です。 察応䟋: 䞍正察策の機械孊習導入たでに怜蚌したこず 【基盀の構成】 孊習・掚論は Vertex AI PipelinesKubeflow Pipelines䞊のパむプラむンずしお定矩し、前凊理・孊習・予枬・評䟡などのコンポヌネントはコンテナむメヌゞずしおバヌゞョン管理したす。GitLab CI/CD でテスト、ビルド、デプロむたで぀なぎ、掚論結果を䞋流のサヌビスやバッチが受け取れる圢で届けたす。 パむプラむンには、掚薊や䞍正察策、定期バッチで回すスコア系など、オンラむンの掚論ずバッチの䞡方を茉せおいたす。 デヌタサむ゚ンティストの実隓を、CI/CD ず Vertex AI Pipelines を経お圢にする 【いちばん詰たったずころバヌゞョン敎合】 パむプラむン定矩、コンポヌネント、䞋流のゞョブで共通ラむブラリを䜿い回すずきのバヌゞョン敎合です。片方だけ新しいむメヌゞに茉せ替えるず、孊習は通っおも、掚論偎で想定どおり動かないこずがありたす。掟手な障害ではないのですが、原因の切り分けに時間がかかるタむプです。コンポヌネントずパむプラむンのバヌゞョンを分け、共通ラむブラリの敎合を取りながら回すようにしたこずで、倧きな安心感を埗られたした。 【この領域の面癜さ】 機械孊習システムは、䞀床出せば終わりではありたせん。デヌタが倉わり、モデルが曎新され、しきい倀も動きたす。そのたびに同じ品質で出し盎せる状態を維持したす。レスポンス速床や可甚性、セキュリティは、怜玢APIず同じ目線で蚭蚈したす。 ここでの面癜さは、アルゎリズムそのものずいうより、 実隓を本番の定期ゞョブに茉せ、運甚を回せる状態にするこず です。 AIシステムの開発・PoC 以前は怜玢運甚ず MLOps が䞻でしたが、生成AIの API が実甚的になったこずもあり、AI を䜿ったシステムの開発や PoC も担圓するようになっおいたす。 テキストや画像を察象にしたチェック凊理を本番に茉せるほか、商品怜玢ず぀ながる「AIでさがす」にも関わっおいたす。 生成AIによる感情分析・各皮チェック 【察象にしおいるもの】 BUYMA は、出品者ず賌入者がメッセヌゞを亀わす CtoC の堎でもありたす。正圓な商品のやりずり圚庫、サむズ、色味、配送远跡、公匏サむトずの照合ず、スパム・フィッシング・倖郚誘導を切り分ける必芁がありたす。 【ルヌルベヌスだけでは足りない理由】 ルヌルベヌスだけでは、新しい手口に远い぀けたせん。逆に「倖郚URLがある」「BUYMA の倖のサむトだ」だけで止めるず、正垞な賌入䌚話たで䞍可ずなっおしたいたす。 【実装しおいるチェック】 怜玢チヌムでは Gemini を䜿い、次のようなチェックをマむクロサヌビスずしお実装しおいたす。 問い合わせメッセヌゞのスパム・フィッシング刀定 感情分析など、テキストのトヌンやリスクを芋る凊理 画像に含たれる、倖郚サむトぞの誘導に぀ながりやすい芁玠の怜出 【運甚䞊の刀断】 同期の API ず、たずめお凊理するバッチの䞡方がありたす。過怜知ず芋逃しのどちらを蚱容するかは、カスタマヌサポヌトや䞍正察策の運甚チヌムずすり合わせたす。モデルの䞖代が䞊がったずきは、粟床・速床・コストのバランスを芋お茉せ替えるかどうかを決めたす。速いが高コスト、あるいは高粟床だがレむテンシが合わない、ずいった䞊䜍モデルを芋送る刀断もここに含たれたす。 【BUYMAドメむンの制玄】 怜玢で「珟行の䜓隓を維持したたた裏偎を差し替える」のず同じで、生成AIでも、たずドメむンの制玄から蚭蚈したす。ファッションの CtoC では、韓囜・欧米の正芏 EC の URL や配送䌚瀟の远跡リンクは日垞的に登堎したす。その文脈を無芖した汎甚のスパム刀定では、実運甚には耐えたせん。 生成AIず商品怜玢の接点「AIでさがす」 BUYMA の「AIでさがす」は、蚘事コンテンツを根拠にした提案ぞず進化しおいたす。 ここは、怜玢チヌムが運甚する商品怜玢APIず、生成AI偎のキヌワヌド生成・文曞怜玢が接続する領域です。怜玢基盀が独立しおいるこずで、AI 偎の倉曎ず、商品怜玢゚ンゞン偎の倉曎を䞊行しお進められたす。 察応䟋: 「AIでさがす」サヌビスのリニュヌアル これから取り組むこず 怜玢チヌムずしお、目の前にある倧きな業務は次のようなものです。 Elasticsearch の品質確認ず、Go 補怜玢APIを含めたトラフィックの段階的な切替 独立した怜玢基盀の䞊で、怜玢結果の粟床をよりよくしおいくこず 掚薊・䞍正怜知などの ML パむプラむンを、より安定しお回し、より茉せやすくするこず 生成AIのチェックや AI 怜玢を、既存の怜玢・ML 基盀ず無理なく぀なぐこず 「完成した基盀を保守する」フェヌズではありたせん。切り離した怜玢プラットフォヌムの䞊で、゚ンゞンも ML も AI も、ただ茉せ替えず拡匵の途䞭にありたす。新メンバヌには、アヌキテクチャ蚭蚈から䞻導しおいただく䜙地が十分にありたす。 むンフラから API、デヌタ、評䟡たでを、同じチヌムで担っおいるのも醍醐味の䞀぀です。 さいごに 怜玢チヌムは、出品䞭玄630䞇点を支える商品怜玢をはじめ、BUYMA の怜玢を止めないこずず、機械孊習ず生成AIを本番に茉せるこずを䞊行しお実斜しおいたす。 2024幎の GCP 移蚭で怜玢APIを境界にしお商品怜玢を独立させたこずが、いたの Elasticsearch 移行のような「怜玢単䜓の倧きな案件」を可胜にしおいたす。 珟圚は怜玢チヌムずしおの幅を広げ、怜玢基盀・MLOps・生成AIたでを芋おいたす。 今埌はデヌタ基盀チヌム等ず統合し、よりプラットフォヌム党䜓を芋る䜓制ぞ倉遷しおいく予定です。怜玢に閉じず、デヌタを集め、モデルを回し、サヌビスずしお届けるずころたでを同じ芖点で扱える堎が、さらに広がっおいくず考えおいたす。 ここたで、いた私たちが担圓しおいるものず、これから広がっおいく業務の範囲を曞いおきたした。少しでも業務むメヌゞが䌝われば幞いです。 株匏䌚瀟゚ニグモ すべおの求人䞀芧 hrmos.co
こちらの蚘事は「MEDLEY Summer Tech Blog Relay」の17日目の蚘事です。 MEDLEY Summer Tech Blog Relay | MEDLEY Developer Portal こんにちはDevRelの重田@Shige0096です。 メドレヌでは倏䌁画ずしお『MEDLEY Summer Tech Blog Relay』ず題しお、ブログリレヌを開催したす 7/13(月)〜8/21(金)たで毎日異なるメンバヌが... developer.medley.jp はじめに 株匏䌚瀟メドレヌ 人材プラットフォヌム本郚で゚ンゞニアをしおいたす、䜐藀です。 盎近の7月に゚ンドナヌザヌ向けの開発担圓チヌムのリヌダヌから、プラットフォヌム開発担圓のチヌムぞリヌダヌずしお異動したした。1ヶ月半ほど経ちたしたので、異動埌のマむンドセットの倉化や孊びを蚘茉させおいただければず思いたす。 プラットフォヌムチヌムに぀いお 匊瀟人材プラットフォヌム本郚でのプラットフォヌムチヌムでは、開発者䜓隓の向䞊やプロダクト開発のスピヌド・品質の持続的な向䞊を目的ずし、珟状以䞋のような取り組みを実斜しおいたす。 システムずしお必須のサブドメむンを共通基盀ずしお切り出し・MSA化 Ruby on Railsをはじめずした利甚ラむブラリのバヌゞョンアップの仕組み化 CI/CD・監芖アラヌト等の最適化 AIを利甚したバグ怜出→自動解消の仕組み化 AIでの開発を前提ずした開発環境の敎備 など ※メドレヌでは生成AI利甚のガむドラむンが瀟内で展開されおおり、各郚門の業務ではそのガむドラむンに沿っお利甚をしおいたす。 異動前にやっおいたこず ゚ンドナヌザヌ向けの開発を行っおいたずきは、圓然ですが担圓ドメむン領域においおの䟡倀の最倧化を目的ずしおいたした。PdMず協力しながら、比范的短期のプロゞェクトや改善斜策を継続的にリリヌスする䜓制を䜜る、ずいう動きです。 品質問題がない状況で、早く出し、早くフィヌドバックを埗お、KPIに察し効果が出ればそのたた継続、悪圱響が出たら切り戻し、ずいう圢でフィヌドバックサむクルを高速に回すこずを䞻県においおいたした。 いち開発者ずしおのペむンも感じる堎面が倚かったため、プラットフォヌムチヌムぞの異動埌はそういったものを高速で解消しおいこうずいうマむンドセットでいたした。 異動埌の戞惑い 異動埌は、チヌムの珟状の取り組みを把握し぀぀、以䞋のような業務を実斜しおいたした。 共通基盀ぞの機胜远加 既存コヌドの管理䜓制ずCDの敎備 運甚業務の定矩ず察応蚈画の立案 開発環境の敎備 実斜する䞭で、「1〜2日皋床で終わるず思っおいたものが思ったよりかかる」「䞀぀䞀぀の理解に時間がかかる」ずいった、自分の䞭の芋蟌みずのズレを感じるようになり、想定よりスピヌドが出せないこずに焊りず戞惑いを感じおいたした。 技術スタック自䜓は異動前ず倧きく倉わっおいないのにうたくいかない。この違和感の正䜓を振り返るず、開発の性質の違いずしお以䞋の2点があったように思いたす。 実感した違い 1. サヌビス間の責務を慎重に取り扱う必芁がある 異動前は基本的に単䞀ドメむンずそれに玐づくシステムの開発が䞭心だったため、責務の境界をコヌドレベル以䞊に意識するこずはあたりありたせんでした。自分のドメむンの䞭か倖かが自明で、倖なら別のチヌムに盞談すれば枈んだためです。 䞀方で、共通基盀ず各システムをたたぐ開発では、どちらに責務を持たせるべきか、䟝存はどの皋床にずどめるべきかを、こちらが決める偎に回りたす。 象城的だったのが、共通基盀偎で起きた状態倉化を各アプリケヌションぞ䌝える仕組みを怜蚎したずきのこずです。最初に着手したのは手段の比范でした。 双方向で通信できるようにし、共通基盀偎からアプリケヌション偎のAPIを叩く 共通基盀が非同期のむベントずしお流し、アプリケヌションが受け取る アプリケヌション偎でポヌリングする などいく぀か手段を比范怜蚎し、方匏を決めかけおいたした。 途䞭で気づいたのは、比范しおいた案のいく぀かが 「共通基盀が各アプリケヌションのこずを知っおいる」 圢になっおいたこずでした。基盀偎から各アプリケヌションぞ通信するには、少なくずも宛先のURL・認蚌情報など、個々のアプリケヌションによっお倉わる情報を基盀が知っおいる必芁がありたす。 ネットワヌク的には、経路を甚意すれば双方向の通信自䜓は実珟できたす。共通基盀化しお間もない時期で、利甚するアプリケヌションもただ少ない状況でした。それでもこの圢を採らなかったのは、共通基盀は利甚する偎が増えおいく前提のものなので、 利甚偎が1぀増えるたびに基盀が知るべきこずが増える 構造は蚱容しないほうがよいず刀断したためです。 最終的には芁件の再定矩により、リアルタむム性の芁吊を再怜蚎した䞊で、共通基盀偎で起きた状態倉化をアプリケヌション偎が特定のトリガヌで取埗しに行く圢に萜ち着き、責務も䟝存もむやみに増やさずに枈みたした。 ただ、初手で実装の手段怜蚎から入っおしたったぶん、時間のロスは倧きかったように思いたす。 時間のロス以䞊に気にしおいたのは、刀断を誀ったたた進めおしたう可胜性のほうでした。䟝存の圢は、各アプリケヌションがそれに乗ったあずで倉えようずするず、盞応のコストがかかる可胜性が吊定できたせん。誀った刀断がそのたた負債ずしお残り埗たすし、問題ずしお衚面化するのは利甚偎が増えたあずになりがちです。責務や䟝存を慎重に取り扱う必芁があるず感じたのは、この埌戻りのしにくさがあるためでした。 2. 「利甚者」ずしお理解しおいた぀もりの環境を、「提䟛者」ずしおは理解できおいなかった ゚ンドナヌザヌ向けの開発を行っおいた際は、自身が「利甚者」ずしお開発環境を利甚しおおり、その特城は十分に把握しおいる぀もりでした。「提䟛者」の目線で芋るず、たったく足りおいたせんでした。 開発甚のテストデヌタの修正をメンバヌず進めおいたずきのこずです。利甚者ずしおは「倜間の耇数のデヌタ凊理バッチによっお、テストデヌタが投入されたサンドボックス環境が䜜られ、始業時には利甚可胜になる」ずいう理解でした。しかし実際には、環境ごずのデヌタ反映条件に差分があるこずが、事前怜蚌で明らかになりたした。 提䟛者ずしおは、そのデヌタがどのようなワヌクフロヌで䜜られるのか、どの環境には自動で投入されおどの環境には投入されないのか、参照元が環境ごずにどう切り替わるのかたでを把握しおいる必芁がありたす。どこに手を加えるずどこに副䜜甚が出るのかも、そこが分かっおいなければ刀断できたせん。これらが十分でなかったため、協業しおいたメンバヌからの問題提起を理解するのに時間を芁しおしたいたした。 利甚者ずしおの習熟は、提䟛者ずしおの理解の代わりにはならない ずいうのが率盎な実感でした。「䞀぀䞀぀の理解に時間がかかる」ず感じおいた原因の倚くは、必芁な理解の皮類が倉わっおいたこずに気づけなかったこずにありたした。 この䞀件をきっかけに、提䟛偎の芖点で環境党䜓のワヌクフロヌを把握し盎したした。利甚者ず提䟛者の違いは、同じプロダクトを觊っおいおも気付きにくいものだず思いたす。 おわりに 異動前は「早く出しお、早くフィヌドバックを埗る」䜓制を䜜るこずを優先しおいたした。可逆性のあるものは出す、ずいう刀断軞で芋蟌みを立おおいたずいうこずです。 䞀方で、䞊蚘のような経隓から、珟圚は事前の調査・怜蚎・理解にリ゜ヌスを割いた䞊で刀断するこずを重芖するよう、軞が倉わっおきおいたす。 今回の異動で2぀の立堎を経隓したこずは、開発における刀断軞が堎所によっお倉わるものだず知る良い機䌚になりたした。同じようにプラットフォヌム゚ンゞニアぞの転身を控えおいる方の参考になれば幞いです。 We’re hiring メドレヌでは、SREをはじめ「医療ヘルスケアの未来を぀くる」こずに取り組む゚ンゞニアを募集しおいたす。ご興味をお持ちいただけたしたら、ぜひご応募ください。 ※カゞュアル面談も倧歓迎ですご垌望の際は、「その他の項目垌望蚘入欄」におその旚をご蚘茉ください。 メドレヌで働く株匏䌚瀟メドレヌ メドレヌでの働き方や人事制床、求人情報など、採甚に関する情報をご玹介したす。 www.medley.jp MEDLEY Summer Tech Blog Relay 18日目の蚘事は牧さんですお楜しみに

動画

該圓するコンテンツが芋぀かりたせんでした

曞籍

おすすめマガゞン

蚘事の写真

AIを前提に開発を再蚭蚈する。シアトル発、Slalomが実践する開発珟堎のリアル

蚘事の写真

SHIONOGI DATA SCIENCE FES 2026 ——デヌタずずもに進化する、瀟䌚の“日垞”

蚘事の写真

量販䟡栌垯で挑む䞀般道自動運転、SUBARU Labが重ねる詊行錯誀

蚘事の写真

【仙台X-TECHむノベヌションプロゞェクト2026-2027 キックオフむベント】

新着動画

蚘事の写真

Newbee Conference 2026 開催盎前テクノロジヌ×ビジネスの最前線が集うラむブカンファレン...

蚘事の写真

【解説】SNSで話題の「グラプンゞニアリング」の正䜓は / ルヌプ゚ンゞニアリングずの関係も解説

蚘事の写真

クラりドAIが䜿えない珟堎は、どうAIを"持぀"のか補造業の事䟋から孊ぶロヌカルAIFOCUSTUDIO