2024.10.10
将来は卵1パックの価格が2倍に? 多くの日本人が知らない世界の新潮流、「動物福祉」とは
リンクをコピー
記事をブックマーク
佐野成氏:では「元ウェブ系エンジニアが語るIaaS(VM屋さん)の開発ってなにしてんの?」について話します。自己紹介はたいしたことをしゃべる必要はないのですが、もともとWebフリーランスと大学院生の二足の草鞋をしていて、どういうわけか今はNTTコミュニケーションズでIaaS、VM屋さんのエンジニアとして働いています。
今日は、元Webフリーランス的な人がIaaSの世界に飛び込んで(この分野が)どんなふうに見えたかとか、「こういうことが課題なんだな」と(思った)ことを話したいです。「IaaSに興味あるんだよね」という人たちが、「えいや」と飛び込めるような下地を作れたらなと思っています。
すごく基本的なところとして、「IaaSって何?」という話があります。というか今回、若干タイトル詐欺かもしれなくて。IaaSといってもいろいろある中で、今回特に話すのは正確に言うと「SDPFクラウド」という、NTTコミュニケーションズが出しているクラウドプラットフォームの仮想サーバーのIaaSの話です。あまり主語のでかいことを言って怒られるとアレなので。
SDPF(Smart Data Platform)クラウドというものがあって。(スライドを示して)これは利用例ですが、インターネットがあって、ロジカルネットワークがあって、ファイアウォールをかませちゃったりして、その下にVM立ててみたいな。よくある基本的なクラウドコンピューティングを使える(環境)をエンタープライズ向けに提供しています。
もともと「Open TechLunch」の第2回でクラウドの作り方を話した人がいて、そこで「SDPFを支える技術」というスライドを出していました。
こんな感じで、クラウドは結局でかいデータセンターの中に特殊なデータセンターネットワークの技芸のネットワーキングがあって、さらにそこにいろいろな計算機リソースがぶら下がっているものなんですよね。
ネットワークという観点で話したのが、第2回のOpen TechLunch「クラウドの作り方(使い方じゃないよ)」で、(登壇者の)飛岡さん(飛岡良明氏)は隣のネットワークチームの人ですが、この人が話さなかった部分。
「実際にぶら下がっているリソースの人たちはなにやっているの?」ということを今日は話していこうと思います。
まず基本的な話として、「IaaSって何?」を念のためにおさらいしたいと思います。Smart Data Platformというクラウドサービス。クラウドプラットフォームの1つに仮想サーバーがあるわけで、こうやっていろいろ利活用や管理分析とかがあります。
(スライドを示して)ここに仮想サーバーがあって、私はこのチームに所属して開発をしています。
(スライドを示して)クラウドサービスを語る時に、よくサービス提供者の責任分界みたいなものがあって。IaaSはVirtualizationまで面倒を見る、PaaSはRuntimeまで面倒を見る、SaaSは全部面倒を見るみたいなものがあるじゃないですか。要するに、サービス提供者は(スライドの)赤い部分を開発して、利用者は灰色の部分を利用する感じのやつですね。
(スライドを示して)私はIaaSの仮想サーバー(の担当者)なので、このあたり(括弧で示した部分)に責任を持っているというところです。
「じゃあ、PaaSやSaaSはVirtualizationの赤いところもやっているんですか」というと、そうじゃなくて。実際にはPaaSはなんらかのIaaSの上に乗っかっていて、SaaSもなんらかのPaaS、あるいはIaaSを組み合わせていて、その上でアプリケーションとデータの部分だけを自前で実装していることが多いんじゃないかと思います。
例えば、ラーメンを作る時に全部自分で用意するのではなくて、売っているものやキッチン(にあるもの)などを用意して、そこで必要な料理という部分だけをやると思うんですよね。
そんな感じで、ここで言いたいのは「SaaSやPaaSは、なんらかのIaaSに乗って動いていることがあるんやで」ということです。すごく基本的な話かもしれませんが。
「IaaSのVM屋さんってどんな商売なの?」という、みなさんがIaaSのVM屋さんになるためになにが必要なのかを簡単に説明したいと思います。
まず、巨大な計算機のリソースの山を作ります。便利でスケールするネットワークを用意します。(スライドを示して)この米印がついているのは私もちょっとよくわかっていないので、聞かれたらネットワークの人に聞くと思います。
それを用意して、そこに大量のサーバー、CPUとメモリの山を用意します。その上でさらに巨大なShared Storageを用意します。
この巨大な計算機リソース、CPUとメモリとストレージ、そしてネットワークを用意した後で、これらをなんらかのかたちで割譲する仕組みを用意します。
我々の場合はそれらを仮想化というかたちでリソースを切り分けるのですが、仮想化の中にもいろいろな技術があって、私たちはLINUXの上で動いているQEMU(Quick Emulator)やKVM(Kernel-based Virtual Machine)という技術を使ってリソースを割譲しています。
この巨大な計算機の山と、そしてそれを抽象的に、仮想的にリソースとして割譲する仕組みが出揃いました。あとはこれを割譲しているリソースのマネジメントをするための、「誰がどこにどれくらいのリソースを使っているか」を管理するためのソフトウェアが必要です。SDPFクラウドの仮想サーバーチームでは、この部分のソフトウェアとしてOpenStackを採用しています。
要するに、VM屋さんは、巨大なリソースプールを切り売りするビジネスモデルと言えると思います。
(スライドを示して)「OpenStackって何?」というと、これはOpenStackのページから持ってきた文言ですが、「Open Source Cloud Computing Infrastructure」と書いてあって、クラウド基盤を提供するためのOSS群がOpenStackです。
30個程度のコンポーネントからなっていて、このバーチャルマシンを担当するNovaや、ネットワークを担当するNeutronというものがあります。ほかにも認証認可のKeystoneなど、全部で30個程度のコンポーネントがあって、その中のいくつかを使って我々は仮想サーバーを提供しています。言語はPythonやGoで書かれています。Pythonが多いかな。
さて、仮想サーバー屋さんをやるために必要なものが出揃いました。つまり山のようなリソースと、それを仮想的に切り分けるVirtualization、さらにそのリソースを管理するためのOpenStackです。
(スライドを示して)ここで、実際にOpenStackを経由してVMを作ることをなんとなく流れとして見てみます。まずリソース管理のAPIを提供するOpenStackがあるので、人間が「サーバーください」とOpenStackのPOST APIを叩きます。
すると、データセンターの実際のコンピュートノードと言われたりしますが、Virtualizationをするためのホストと調停をして、OpenStackはドカーンとVMをスポーン、作成させます。
VMが出来上がったら、またOpenStackと協調しながら接続情報を人間に返してあげます。その接続情報を持って、人間はこのVMにSSHするわけです。「あぁ、欲しかったサーバーが手に入ったぞ、やった」ということが、VM屋さんのやっていることです。
「OpenStackって何?」という人が、もしかしたらけっこういるかもしれなくて。ニッチだけど知っている人は知っているのがOpenStackです。我々は仮想サーバーを提供するためのパーツとして、OpenStackを商品として売るために使っています。実際、大量の計算機リソースを効率的・経済的に管理するニーズはすごくニッチですがそこそこあって、そういったケースではOpenStackが使われていることがあります。
(スライドを示して)一番下にopenstack.orgのuse-casesというページがあります。ここを見てみると「あそこが!?」という会社がユースケースを載せていたりして、見てみるとおもしろいので、みなさんも後でこれを見てみてください。
例えば、左がBlizzard Entertainmentという、ビデオゲームの「オーバーウォッチ」などのゲームを開発している会社です。そこはOpenStackを使っているし、WalmartもOpenStackを75万コアで動かしているようです。すごいですね。
(スライドを示して)さて、IaaSのVM屋さんに必要なものをみなさんに教えて、実際にAPIを使って話しているということがわかったところで。、これまでの依存関係を整理してみると、こんな感じになります。
まず、外側に露出するインターフェースとしてのOpenStack。そして、それと協調するホストOS。そのホストOSは巨大なネットワークや巨大なストレージにぶら下がっていて、そのサーバーもCPU、メモリをもちろん持っています。このホストOSがVirtualizationを行うことで、ゲストOSであるVMが生えてくる。こういった依存関係になることがわかります。
一般的に、これは私が今までそう思っていたというだけですが、VMを作ってSSHをすると考えた時に、「人間が直接ゲストOSになにやらSSHしているのではないか」という認知を私はしていました。
(スライドを示して)しかし実際はそうではなくて、IaaSであるVM屋さんはなにを隠蔽していたかというと、この巨大なデータセンターネットワークや巨大なストレージやサーバーや冗長のための仕組みで、それを隠蔽した上で、ゲストOSにリーチする仕組みを提供しているのがVM屋さんの実際なんです。
というわけで、これを見るとなにがわかるかというと、すごくいろいろなものを隠蔽していて、そしてその隠蔽しているものは、当たり前ですがインフラです。インフラストラクチャーを隠蔽している。しかもそれらは、ハードウェアと密結合してVMが動いている。これがインフラの開発のちょっとつらいところ、その1から5みたいな感じです。
(次回に続く)
関連タグ:
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略