過去1年を費やして、2000年代初頭から稼働しているテレコムOSSスタックにMLを本番運用させる取り組みを行ってきました。C++コア、Perlの結合、APIなし、イベントフックなし。実際のテレコムの近代化プロジェクトです。新規開発ではなく、触れられないライブのミッションクリティカルなシステムです。
モデル作業は、データをきれいに整えた後は難しくありませんでした。データを取り出すこと自体が全体のプロジェクトでした。
うまくいかなかったこと:
- アプリケーション層でのログ解析。ソフトウェアバージョン間のフォーマットのドリフトにより、数週間で保守不能になった。
- レガシーC++バイナリを直接計測すること。承認が得られず、ブロックしたのは正しかった。
- ETLがデータベースを直接ポーリングすること。ピーク負荷の窓でパフォーマンスを低下させた。
うまくいったこと:
- MySQL binlog に対する Debezium を用いた CDC。アプリケーション層の変更ゼロ、クリーンなイベントストリーム。
- C++ 関数呼び出しに対する eBPF uprobes。DBを触れない。しかし調整には時間を要したが、本番で信頼性が高かった。
- Perl 側の DBI フック。適切な介入点を見つければ、想定以上にクリーンだった。
正規化レイヤーの上部は抽出自体よりも時間がかかり、15年分のフォーマットのドリフト、黙って再利用されたカラム、2011年の移行に伴うタイムゾーンの混乱を明らかにした。
このような古いスタックでMLの特徴量エンジニアリングに取り組んだ人が他にもいるのか興味があります。特に、古いカーネルでの eBPF のサポートが一貫していない状況でどう扱われるかに関心があります。
[リンク] [コメント]




