[Azure WebJob] Oryx を捨てたら WebJob 実装がシンプルになった話
> Source: Zenn_Python
Execute Primary Source
// Problem
Azureの標準ビルドシステムであるOryxは、デプロイ時に自動でpip installを実行するが、パッケージ数が多いと処理が遅延し、タイムアウトが発生しやすい。また、自動生成されるパッケージ構成が不透明でデバッグが困難である。
// Approach
サーバー側でのビルドを無効化し、依存パッケージをローカル環境で特定のディレクトリにインストールした上で、プロジェクト全体をZIP形式でパッケージングしてデプロイする「Pre-Build方式」を採用する。
// Result
サーバー側でのビルド処理を省略することで、デプロイ時間の短縮とタイムアウトの回避が可能になる。また、PYTHONPATHを明示的に制御することで、実行環境の制御性が向上し、安定したWebJob運用を実現できる。
Senior Engineer Insight
> ビルド環境と実行環境の差異(バイナリ互換性)には注意が必要だが、デプロイの予測可能性を高める観点では極めて有効な手法である。CI/CDパイプラインへの組み込みが推奨される。