陥りがちな罠を避け、クラウドネイティブを実践していくには
――クラウドネイティブを実践している人は増えてきました。しかし「まだ満足できない。もう少しレベルアップしたい」あるいは「自分たちがやっていることが正しいのか自信が持てない」人も多いと思います。お二人は現場が抱えがちな課題や罠をよくご存じだと思うので、技術と組織の両面からアドバイスをいただければ。
青山:組織面の課題だと、よく「○○技術を使えば、○○ができますか」と質問されることがあります。興味を持つこと自体は良いのですが、それが本当に自社で解決すべき課題かどうかも意識する必要があると思います。無視できる程度の些細な課題であれば、大きな技術スタックは必要ない場合もあります。
手塚:「技術のオーバーキル」ですね。エンジニアだからこそ難しい技術に挑戦したい、その気持ちも理解できるのですが組織にあった決断が重要です。
青山:技術面でもこれと関連して、「クラウドネイティブを実践して、サービスメッシュも入れて、アプリケーションの更新頻度も高まり、管理性向上を実現しました」と、そこまではいいのですが、その人たちのKubernetesが管理できていなかったりすることもあります。アプリケーションエンジニアに「頻繁に更新しましょう」と言いつつ、インフラ側の更新が疎かになっているなど……。なのでKubernetesの担当やSREエンジニアは、Kubernetesやエコシステムを頻繁に更新できるような体制を作っていけるようにすることが大事かと思います。
手塚:目的と手段を取り違えてしまうことはありがちな課題です。一方で、経験則ですがレガシーな組織や環境がクラウドネイティブにシフトするためには、あえて手段ファーストで進むのは有効だと思っています。
青山:たしかに、Kubernetesを利用することで、ヘルスチェック・プロセス停止処理・リソース割当などのアプリケーション実行のベストプラクティスを意識せざるを得なくなり、結果的に大きな改善につながるケースもありますね。
手塚:はい、こういったケースでは技術的側面もそうですが、文化的側面を変えないといけないため、目的思考が強すぎると前に進まないことがよくあります。
技術面では、クラウドネイティブを実現するにはさまざまなことを検討・実装する必要がある一方で、本当にクラウドネイティブを実現したいならマネージドサービスを活用していくのも大事かと思います。Kubernetesを導入し、監視システムから全部作るとなると、技術的には楽しいのですが運用面を考慮すると、とてもしんどいです。クラウドのマネージドサービスは80点くらいを満たせる基盤を最初から利用することができるため積極的に検討すべきではないかと考えます。