コンテナ戦略策定における重要な視点 #kubernetes #mirantis #docker #container #k8s
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本ブログは Mirantis社のblog記事「Container Strategy When Your Developers Have Gone Rogue」の翻訳記事です。
近年、主要なクラウドベンダーのプレスリリースやマーケティングを見ていると、マルチクラウド機能へ大きな注目が集まっていることに気付くかも知れません。
コンテナオーケストレーションを十分活用している企業では、アプリケーションを複数の異なる環境で実行しているケースが多いのですが、まだこの段階に至っていない企業では、管理すべきインフラストラクチャの種類が多いため、重要な焦点となっています。
幸いなことにインフラチームは Kubernetes を利用することで、生産性を向上させつつ、様々な環境を利用する開発者チームを 1 つの傘の下に連れてくることができます。しかし、開発者を楽にするためテクノロジーへ投資しても、開発者がそれを無視してしまうような状況になってしまっては本末転倒です。
そのため、ビジネスユニット全体で開発が容易になるようなアプローチが重要になります。
多くのソリューションでは何らかのコンテナオーケストレーションを提供しており、組織の成熟度や多様性に応じたいくつかの異なるソリューションが用意されている事もあります。
いずれにしても、エンタープライズ規模の Kubernetes の導入を検討している組織は、考えなければならない重要な要件があります。
-
柔軟性 : CI/CD パイプラインの様々な側面で、異なるビジネスユニットが異なるツールを使用出来なければなりません。また、コード作成、パッケージング、セキュリティ、リリースのために利用可能なほとんどのツールとシームレスに統合できるプラットフォームである必要があります。PaaS ソリューションは、一見、高機能で便利そうに見えますが、提供される標準にビジネスユニットを合わせる必要があるため、多様なビジネスユニットにオーバーホールを強いることになりかねません。
-
移植性 : PaaSやIaaSのソリューションを使用すると、単一のシナリオでは管理が容易であっても、方向性を変えた場合に多額のコストが発生するような、ロックインのシナリオが生まれてしまうことがあります。このようなソリューションは、異なるアプローチを持っている個々のビジネスユニットの自由度を奪うことにもなります。
-
管理容易性 : もちろん、オープンソース技術をフル活用して、柔軟性と移植性を実現する企業全体のパイプラインの作成は可能です。しかし、管理の複雑さから、システムを稼働させるためのコストと時間がかかってしまう可能性があります。
-
拡張性 : 異なるチームにわたって複数のクラスターを簡単に作成できる必要があります。クラウド内でのプレゼンスを高めるためには、これは絶対に必要なことです。
- 機密性 : プラットフォームの安全性の確保、また、監査時のコンプライアンスと実証性が担保されている事が必要です。
これらの点を考慮して、Mirantis Kubernetes Engine のようなオープンソースベースのソリューションか、自社構築のオープンソースソリューションか、OpenShift の様な PaaS ソリューションか、マネージド Kubernetes サービスかのいずれかを選択する事になります。
統一されたクラウド戦略を実現するためのこれらの選択肢には、先の 5 つの要件に関してそれぞれにメリットとデメリットがあります。
パブリッククラウド
パブリッククラウドは、開発者が一貫したプラットフォームを利用できる点で優れた選択肢です。
多くの開発者は、パブリッククラウドの提供しているプラットフォームやサービスの中から必要なものを見つけることができます。そのため、例えばAWSに、開発者、財務、規制上の要件をすべて満たしたサービスを見つけることが出来れば、パブリッククラウドの利用は理にかなっています。
しかし、パブリッククラウドを利用した場合、開発者が多様なユースケースに対応した最適なツールを利用したいという要求においては、いくつかの制限が生じることもあります。例えば、ある年に AWS が AI のユースケースに適したツールをリリースし、同じ年に Azure が Edge のユースケースに適したツールをリリースする可能性がある。先進的な開発者が自分のクレジットカードを使って特定のサービスのために別のプラットフォームを購入した場合、そのサービスへ対応するためにIT管理部門が所有するプラットフォーム上で利用可能なインフラを元に都度再構築していては、費用と時間を浪費してしまいます。
また、予期せぬ(時には多額の)費用が発生してしまいアプリケーション所有者にとっては、不愉快な請求書につながる可能性もあります。
このような理由から、パブリッククラウド上では厳格なコスト管理の実施が、予算を重視する企業の必須条件となっています。
パブリッククラウドは「管理容易性」と「機密性」で高いスコアを獲得しています。しかし、「柔軟性」と「移植性」は低く、「拡張性」は高いですが、実現する為には大きなコストがかかります。
PaaS
開発者が提供している標準インフラから離れてしまうことを制限しようとしているインフラチームにとって、PaaS は表面的には最良の選択肢のように見えます。そして、ユースケースによってはまさに最良の選択肢となりえます。
PaaS ソリューションを使用する利点は、開発者の選択の自由が制限し、開発者のワークフローは中央のIT部門によって厳密に管理されるというユースケースを中心に展開されています。
しかし、これらのユースケースを逸脱するケースが発生すると途端に問題が発生します。
このような状況の良い例として、電気通信業界で非常に人気のあるエッジのユースケースが挙げられます。
Paas サービスとして拡張された商用プラットフォームをすべてのエッジクラスタにデプロイするには、その労力やコストを考えると非常に厳しく、中央のプラットフォームとエッジクラスタの間に不整合が生じる可能性があります。
PaaS はパブリッククラウドと同様に、「管理容易性」と「機密性」の点では高いスコアを獲得しますが、「移植性」と「柔軟性」の点では劣ります。
オープンソースを利用した自社構築
Kubernetes は非常に柔軟性の高いフレームワークです。最初のリリースから 6 年以上が経過した現在、非常に強固で信頼性の高いフレームワークであると言えます。
企業の中には、独自に kubernetes を構築して管理する方法を選択するケースもありますが、これには解決が必要な課題もあります。Kubernetes のエコシステムの中には、必要十分な統合ツールが存在しているます。企業はそれらを利用して統合するために、献身的なチームやオープンソースの専門家を雇う必要があります。
特定の開発チームのために Kubernetes クラスタをプロビジョニングするという単純なユースケースでさえ、既存のIT部門の業務とは異なる、高度な OSS の経験を必要とする場合があります。
Kubernetes の自社構築は、既に組織内に専門知識を有している場合には、実質的に無制限の柔軟性を得られロックインをゼロにできます。
前出の2つのオプションとは異なり、オープンソースの自社構築環境は「管理容易性」の点ではあまり良いスコアを得られませんが、「柔軟性」と「移植性」は事実上無制限です。「機密性」と「拡張性」は、選択したセットアップと社内運用チームの能力に依存します。
オープンソースベースのコンテナ管理ソリューション
企業がオープンソースのオプションを検討する場合、それは、ほとんどの場合コスト面の理由からです。
おそらく、必要なスキルのすべて(またはほとんど)と、オープンソースのプラットフォームを構築して実行するための幅広い知識を備えた有能な IT チームがすでに社内に存在しているのではないかと想像できます。
近年、企業は迅速にプラットフォームを立ち上げて実行する必要性に迫られています。自分達でプラットフォームを立ち上げる経験や知識がない企業にとっては、市販のフレームワークを利用して、プラットフォームの構築や管理のストレスを感じることなく、自作のメリットをすべて享受できます。
Mirantisはその一例として、柔軟性が高く、AWSやAzure、OpenStack、ベアメタル等にまたがるクラスタ展開の自動化を可能にする K8s プラットフォームを提供しています。さらに、K8s プラットフォームに加えて、幅広いサービスも提供しており、企業は自分たちでどの程度コントロールをしたいのかを選択できます。
このようなフレームワークを活用する企業に共通するアプローチとしては、最初の1~2年はプラットフォームをプロバイダーに管理してもらい、社内の能力が高まると共に、自社のITチームでの管理に移行して行くという方法をとっています。オープンソースベースのプラットフォームは顧客への管理の移管が容易になるというメリットがあります。
Mirantisでは、このオプションに少し偏っていることは言うまでもありません。
しかし、Mirantis Kubernetes Engine の様なオープンソースベースのコンテナ管理ソリューションは、開発者に最大限の柔軟性を与えつつもオールインのアプローチは要求しません。
言い換えれば、どのようなユースケースでも、Azure、AWS、VMware の利用を選択できる商用オープンソースのコンテナ管理システムをお勧めしたいと考えています。
例えば、私たちのソリューションは、パブリッククラウド、Openstack、ベアメタルの上にフィットするように設計されており、統一された開発のための共通の体験を提供します。
本記事がお客様のお役に立てることを願っています。
他にもご質問があれば、私たちのチームに連絡してください。