コンテナ登場の背景と、難解なKubernetesをシンプルな操作で扱えるRancherの可能性
――NHNテコラスでは、データセンター事業から、今回新しくリリースしたCloudGarageのようなクラウド事業まで、ITインフラを幅広く取り扱っています。角さんはユーザーのシステムを色々と見ている立場として、昨今のインフラの変化をどのようにとらえていますか?
角 俊和氏(以下、角) クラウド以前は、データセンターの設備を直接貸し出すサービスしかありませんでした。その後、ラック単位、サーバ単位でのサービス提供が可能になり、クラウドの登場により仮想OSがサービスの対象になっています。
約20年間で、ITインフラのサービスはどんどん抽象化しています。仮想OSからさらに進み、コンテナという、より抽象化された概念が登場したのもその流れの一つです。インフラを利用するユーザーから見ると、自らが把握・管理するレイヤーが減り、移行性が高く、複製や再生成が容易な、サイズの小さなアプリケーションの開発・実行、すなわちマイクロサービスアーキテクチャに適した環境へと変化していると考えています。
――Dockerを中心にコンテナ関連の技術が進化していますね。Rancherはその中でどのような役割を担うのでしょうか?
新藤洋介氏(以下、新藤) コンテナは、DevOpsやアジャイル開発、マイクロサービスなどと親和性が高い技術です。仮想サーバ上で複数のアプリの実行環境を確保するために利用しますが、コンテナを小さく作り、1つのコンテナ上で機能を細かく分割したマイクロサービスを1つ稼働して、複数のコンテナをまとめてオーケストレーションするという使い方が増えています。その結果、コンテナ管理が複雑になり、どのツールがよいか分からなくなったという問題が出てきました。Rancherは、複雑性を緩和し、オープン性を担保して、開発者にわかりやすく使いやすいソリューションを提供することを目的としています。
Rancher 1.0をリリースしたのは2016年4月です。当時、Kubernetes、Docker Swarm、Apache Mesosなど非常に多くのオーケストレータがあり、玉石混交の状況でした。1.0は、インフラとしてオンプレミスでもどのクラウドでも利用できるマルチクラウドを実現し、さらにその上でKubernetesをはじめ任意のオーケストレータを利用できます。Rancherにより抽象化し、複数のクラウドおよびツールを横断的に利用可能であることが大きな特長と言えます。RancherはDisneyでも導入されていて、GCP、AWS、オンプレミスなど複数のインフラ上で異なるオーケストレータを使用していることが、Rancher採用の決め手となりました。
――2017年9月末リリースのRancher 2.0では一転してKubernetes対応となりましたが、その理由は?
新藤 Kubernetesは当初Googleによって開発され、のちにオープンソース化されました。Rancher Labsは、Kubernetesを管理するCNCF(Cloud Native Computing Foundation)の主要メンバーとして初期から関わっています。オーケストレータの勢力図は1年で大きく変わり、現在はKubernetesがデファクトスタンダードになったと考えています[1]。しかし、Kubernetesは意外と複雑で、ラーニングコストがかかる。そこで、インフラを問わずにシンプルな操作で利用できるように、Kubernetesに全面的に対応したのが2.0です。
注
[1] 2017年10月17日「DockerCon EU 2017」において、DockerはKubernetesを統合し、サポートされる予定であることが発表されました。
クラウドなのに定額型? CloudGarageの狙いは「本質的なスキルの習得」
――CloudGarageは定額型のパブリッククラウドとして開発者の間で話題になっていますね。「定額型」を採用した理由を教えてください。
角 クラウドが出始めてから約10年を経て、「クラウドファースト」を標榜する企業が増えています。IaaSの使い方、構成管理ツール、コンテナ、Infrastructure as Codeなど、開発者はクラウドに関して次々と新しい技術を覚えていかなければなりません。ただし、ベンダーやツールに特化したノウハウはスキルではなく、覚える必要がないと考えています。インフラサービスの抽象化が進み、次々と新しい技術が出てくるなか、何を身に付けるべきか、学び、試すことのできる環境を提供したい。マイクロサービスを開発するためにREST APIなど疎結合のインターフェイスを検討し、ChefやAnsibleを活用して、インフラを使いこなすために試行錯誤する。CloudGarageを提供する背景には、インフラ事業者としてそんな開発者を応援したいという思いがあります。
従量型のクラウドではインスタンスを増やして利用すると追加料金がかかりますが、CloudGarageは、プランの範囲内でインスタンスを自由に生成・削除できます。追加料金はかかりません。コストを考えずに、新しい環境を作って試行錯誤できる。そんなクラウドを提供したいというのが定額型採用の理由の一つです。
――CloudGarageでRancherを使うことで、開発者にとってどんなメリットがありますか?
新藤 RancherはOSSであり、CloudGarageのインスタンス上で仕様が許す限り大量のコンテナを自由に生成できます。もちろん、料金はかかりません。ベンダーに特有の操作に悩まず、開発や運用に専念できるように、シンプルで誰にでもわかりやすく使いやすいものを提供しようという考え方は、CloudGarageもRancherも同じです。
CloudGarageでは簡単な操作ですぐにインスタンスの生成や設定を行えます。同様に、RancherもKubernetes環境を簡単に構築可能です。わかりやすいGUIに加え、CLIも提供しているため、初心者からベテランまでどのようなレベルの開発者でも利用できます。CloudGarageと一緒に利用することで、インフラに関する悩みを限りなくゼロに抑えられます。
角 CloudGarageにはテンプレートを使ってRancherを設定できる機能があり、クリック数回でRancherをすぐに起動できます。Rancherの管理側のインスタンスとDockerのゲスト側のインスタンスを分け、連携して利用するといったことも簡単に実行可能です。Rancherの良さを最短時間で経験できる環境と言えます。
インフラを利用する開発者には、マニュアルを読むことに時間や手間をかけるのではなく、インフラの構成やアーキテクチャの学びを深めてほしいと考えています。Dockerなどのコンテナ技術が今後大きく変わっていくとしても、マイクロサービスの設計や拡張性の考え方などの学びは、開発者にとって大きな力になるでしょう。最近は複雑な製品が多く、製品について学ぶだけで力尽きてしまうことも多い。シンプルで直感的に利用でき、良さがすぐにわかるというのが、CloudGarage、Rancherに共通する設計思想です。
――CloudGarage上で定額で3インスタンス(プランによって5、7、10インスタンス)を使用するメリットは何でしょうか?
角 以前は1台のサーバにOSやミドルウェアなどをすべて詰め込む、モノリシックなアーキテクチャが主流でした。技術の進化により、1台のサーバ上で複数のインスタンス、さらに複数のコンテナを自由に生成・稼働できるようになったことで、機能を複数に分散するマイクロサービスアーキテクチャへとパラダイムシフトが起こっています。機能を複数に分割し、抽象化すると、システムの保守性、拡張性、透明性が向上します。複数のインスタンスを利用することで、マイクロサービス開発が可能になります。
また、開発環境を複数構築したり、運用時に冗長構成をとったりすることが可能です。インスタンスが3つあれば、開発環境、ステージング環境、本番環境を準備できます。Webとデータベースをそれぞれ別のインスタンス上稼働し、どちらかでボトルネックが発生したら残りの1つを使ってスケールするといった運用もできるでしょう。開発や運用において拡張性を持たせるために、スタートラインとして「3つ」が適切と考えました。
CloudGarageとRancherは共に開発者が簡単に使え、透明性も高いツール
――開発者が簡単に利用できるという考え方はPaaSに近いですね。
角 インフラ事業者としては、開発者がラーニングコストをかけずに便利な技術を利用し、すぐにコードを書ける環境を提供したいと考えています。コンセプトはPaaSに近いですが、PaaSはさまざまな機能を提供する分、ユーザーが直接触れないように隠蔽される部分も多く、ベンダーロックインのリスクもあります。
CloudGarageは、必要な機能のみをインストールする自由度を残しつつ、開発や運用を簡素化するソリューションとしてコンテナを導入し、PaaS並みの使い勝手を追求しています。
新藤 RancherもPaaSの領域には踏み込みません。PaaSを利用すると、その部分がブラックボックス化するリスクがあり、それを回避したいユーザーがRancherを導入しています。
角 IaaSがあり、さらに踏み込んだ環境としてPaaSがあり、さらに抽象化されたサーバレスアーキテクチャやFaaS(Function as a Service)があります。特定のベンダーや製品にだけ精通するのは危険なことです。要件に応じて、IaaSを使う方がよい場合があり、PaaSを使う方が楽な場合がある。何を選べばよいかをきちんと判断できるように、インフラに関する知識やスキルを身に付ける必要があると思います。
――CloudGarageやRancherを使ってみたい開発者にアドバイスをお願いします。
新藤 Rancherでは定期的にミートアップイベントを開催しています。また、技術資料としては、ミートアップでの発表資料がとても参考になるので、ぜひご覧ください。
角 東京、福岡、岡山などでイベントを開催しました。イベントでは多くの反響をいただいており、定額型で複数のインスタンスを利用できるというコンセプトが受け入れられていると感じています。今後、技術資料をconnpassなどで順次公開していく予定です。QiitaでもCloudGarage関連の記事が増えています。参考にしてください。
――CloudGarageやRancherの今後の展望を教えてください。
角 今後、CloudGarageとRancherの組み合わせがベストプラクティスになると考えています。CloudGarage上でより簡単にRancherを使えるように、複数のインスタンスを簡単にオーケストレーションできる機能などのアップデートを企画しています。CloudGarageのユーザーからも非常に多くの要望をいただいています。イベントやSNSなどで寄せられたご意見を反映し、随時アップデートを行い、ユーザーに寄り添うサービスに育てていきます。
新藤 CloudGarage上でRancherを使うためのハンズオンを定期的に開催する予定です。コンテナ関連は競争が激しく、すぐに勢力図が変わる分野です。デファクトスタンダートとなったKubernetesにいち早く対応したように、どのような状況でもユーザーの一歩先を見据え、シンプルかつオープンで、誰にでもわかりやすく使いやすい最高のソリューションを提供し続けていきます。
――ありがとうございました。