Rustで進化するPayPayのスケーラビリティ
ARANK

新しい言語を導入する前に、その導入が有益である理由を考える必要があります。PayPayでは、Rustを導入する主な動機が3つありました。パフォーマンスJVM管理の複雑さメモリと型の安全性PayPayで必要とされる大規模な運用では、JavaやNodeJSではいくつかの制約が見えてきました。PayPayでは、高いパフォーマンス要件を満たすために、数百のKubernetesポッドにスケールする必要があるサービスが多々あります。Rustは、ガベージコレクションを伴う言語よりもこれらの要件を効率的に満たすことができます。JVMを正しくかつ効率的に動作させるためのチューニングは、優れたエンジニアを抱えているにもかかわらず、PayPayにとっては課題でした。Rustを使用することで、JVMのチューニングやそれに付随する運用上の負担を管理する必要がなくなります。また、コンテナ対ヒープのメモリ使用量のモニタリングが正しく行われていないことが多く、問題発生時にはエンジニアが混乱する原因となっていました。Rustでは、JVMの深い知識がなくても、メモリ使用量のモニタリングがかなり楽になります。また、Rustの強力な型システムにも着目しました。フィンテックにおいては、正確性が非常に…

blog.paypay.ne.jp
Related Topics: Rust