Kubernetesをガッツリ活用するならOpenShift!という思いがあるので、何とか発信していきたい私です。
運用の観点が一つの大きなポイントなので、こちらをご紹介します。
Kubernetesの運用は大変
クラウドでPaaSを利用していると、アプリの運用基盤となるWebApps等の中身のメンテナンスはクラウド事業者がやってくれるので安心なのですが、Kubernetesを利用する際はKubernetes上のミドルウェアの管理はKubernetesを管理する人が実施する必要があります。
AKSの場合、自動アップグレード(パッチ適用)を利用するなどKubernetesの安全に保つ手段はありますが、中のミドルウェアについては対処を検討する必要があります。
https://learn.microsoft.com/ja-jp/azure/aks/auto-upgrade-cluster
ミドルウェアの数が少なければ手順等を整えていけば何とかなる可能性がありますが、本番環境としてKubernetesを整えていくと使用したいミドルウェアも増えてくるので、それらのアップグレードやセキュリティ対応などを整えていくのは非常に大変です。
Kubernetes Operatorを使うのが選択肢だが・・・
KubernetesにはOperatorという運用自動化の仕組みがありますので、Operatorがアップグレードに対応していればミドルウェアの運用対応を自動化できそうです。
https://kubernetes.io/ja/docs/concepts/extend-kubernetes/operator/
しかしこれには問題があります。
ミドルウェアのOperatorの開発はコミュニティ(有志のメンバー)の対応に依存しているケースが多いです。
このため、ミドルウェアのOperatorが十分な頻度で更新されていくかは分かりません。
これではせっかくOperatorによる運用自動化を導入しても、運用中のシステムを安心して動かせるか不安になってしまいます。
Red Hat Operator なら Red Hat に守られる
OpenShiftで利用できるOperatorにはいくつか種類あり、上記のようなコミュニティー版のOperatorも使えますが Red Hatさんがサポートを行うRed Hat Operatorというのが存在します。
OSSをラップした形のOperatorが存在するので、コミュニティ版のOperatorとRed Hat Operatorで同等なものがある場合、迷わずRed Hat Operatorを採用することでOperatorの更新も適切に行われることが期待できます。
運用課題とそれに対するOpenShiftによるソリューションについて、Red Hatさんの過去の登壇資料で具体的なお話が分かりやすく整理されていますので、ぜひご一読ください。
https://speakerdeck.com/tutsunom/openshift-is-operator-friendly
まとめ
Kubernetesを活用する際は、運用の観点でOpenShiftの利用をまずは検討したいですね!