OpenShiftに切り替えたばかりの開発チームと多くの協力を行い、このプラットフォームでアプリケーションを正常に構築および実装するための推奨事項とベストプラクティスを提供するよう努めています。この作業の結果に基づいて、アプリケーションの信頼性とアプリケーションのセキュリティの2つのカテゴリに分類できる14の主要なプラクティスを選択しました。信頼性が高いほど安全性が高く、その逆も同様であるため、これらのカテゴリは重複しています。ベストプラクティスのリストは次のとおりです。
アプリケーションの信頼性
このセクションでは、アプリの可用性、稼働時間、ユーザーエクスペリエンスの向上に役立つ9つのベストプラクティスをまとめています。
1.アプリケーション構成をコンテナー内に保存しないでください
コンテナイメージに特定の環境(Dev、QA、Prod)の構成が含まれている場合、変更せずに環境間でイメージを転送することはできません。これは、リリースプロセスの信頼性の観点からは悪いことです。これは、前の段階でテストされたイメージが本番環境に移行しなくなるためです。したがって、コンテナ内の特定の環境のアプリケーション構成を保持するのではなく、たとえばConfigMapsとSecretsを使用して個別に保持します。
2.ポッド定義でリソース要件と制限を設定します
リソース要件を適切に調整しないと、アプリケーションはメモリとプロセッサに圧倒的な要求を課す可能性があります。逆に、アプリケーションの明示的なCPUとメモリの要件により、クラスターは効率的にディスパッチして、要求されたリソースをアプリケーションに提供できます。
3. (liveness) (readiness) pod’
: , liveness, , readiness. . OpenShift Platform.
4. PodDisruptionBudget
pod’ , , , autoscaler , . , PodDistruptionBudget.
5. pod’
pod , pod', , , .
6. –
, . -, . . OpenShift Platform.
7.
Prometheus Grafana - .
8. stdout/stderr
OpenShift (ELK, Splunk). – -. , , , , .
9. Circuit breakers, Timeouts, Retries, Rate Limiting
, (Rate Limiting, Circuit Breakers) (Timeouts, Retries). OpenShift Service Mesh, , .
5 , , , .
10.
- , , , . community-, , . , , Docker Hub, – !
11.
. , , .
12. build- , runtime-
Build- , , . runtime- , , .
13. Restricted security context constraint (SCC) – ,
, restricted SCC ( . ). , , restricted SCC .
14. TLS
. , OpenShift, , TLS-, OpenShift Service Mesh , .