背景
ステートフルなアプリケーションをコンテナ化する場合、
コンテナライフサイクル上環境を破棄するため、
状態を中に持たないように改修しなくてはならない。
その際のチェックポイントまとメモ。
チェックポイント
-
セッション
- クライアントのセッション情報を自サーバに保持せず、外出しする。
例) Spring Sessionを使用して Redis や RDBMSに保存する
- クライアントのセッション情報を自サーバに保持せず、外出しする。
-
設定まわり
- アプリケーションやミドルウェアの制御を環境変数から読み込むようにする。
→ k8sの場合はConfigMapへ - 認証情報は平文ではなくセキュアに環境変数に設定する
→ k8sの場合はSecretへ
- アプリケーションやミドルウェアの制御を環境変数から読み込むようにする。
-
ログ
- ファイルにログを出力しているところ、ログローテートを削除し、標準出力に出すようにする。
-
永続化データ
- サーバ内部にファイルを作成している場合、永続ストレージに保存するようにする。
→ k8sの場合はPersistentVolumeへ
- サーバ内部にファイルを作成している場合、永続ストレージに保存するようにする。
さいごに
ツッコミ大歓迎です