Un nouveau monde parfumé

香り立つ備忘録

序文

謝罪

おはようございます。klis14 のかみかみです。普段はインターネットピカチュウをしています。

今日は 2017/12/2 552時ぐらい、これは klis Advent Calendar 2017 2日目の記事です。

adventar.org

……。

はい、卒研がアレしたとかで記事を上げられず、大変申し訳ありませんでした。イキって2日目とか押さえたこと、深く反省しております。

そんで記事なんですが、この話を klis のみなさんにどのようにお伝えするか、最後まで決まらなかった結果がこの記事です。まあなんだいね、お付き合いください。

TL;DR

ガルパンはいいぞ

StorageOS で Kubernetes 上に Kubernetes から使える Volume Provider を展開する

みなさん、Docker って聞いたことありますか。ないですか。使ってますか。それはいい。

www.docker.com

実際 klis にあってはシステム系でない人は聞いたこともないでしょう。システム系の人も名前ぐらいしか聞いたことがないって人、多いんじゃないでしょうか。

Docker の使い方そのものについてはインターネット上に入門記事が打ち上げられたクジラのごとく大量に転がっているので譲るとして、簡単に背景のみ語っていきます。

世はまさにコンテナ大航海時代

みなさん Web アプリケーションぐらいは多かれ少なかれ書くじゃないですか。授業とかだと既に実行環境が整っていたりすることも多いですが、そもそも環境をしつらえるって結構大変なことなんです。

ここでは何かの授業でやったことあるであろう RubyCGI を動かすことを考えてみましょう。物理的なマシンの用意とインターネットへの接続は抜きにしても、概ねこういう手順が必要になります。

  • OS(なんだかんだサーバーといえば Linux が多いですが、もちろん Windows Server や OSX なんてこともありますよね)を入れる
  • Apache httpd などの HTTP サーバーを入れる
    • その上で CGI を動かせるような設定をする *1
  • 欲しいバージョンの Ruby の実行環境を用意する
  • 自分のアプリケーションのコードを入れる

誰もこんなお決まりの手順で消耗したくないわけです。凝った gem などを使った日には、30億のデバイスで動いて客先で動かない某の如く、何故か自分の手元では動いたのにデプロイ先では動かない、ということにも直面しかねません。

コンテナ系仮想化技術が流行した理由は、こういった手間を省きたかったからでしょう。コンテナが動く場所さえ用意してやれば手前の書いたアプリケーションは動く。

今言った手順を Dockerfile にすると、なんかこんな感じになるんだと思います。*2

でも現実のアプリケーションはそう簡単ではありません。100台の App サーバーが、ウン台の DB サーバーが、あっ急に負荷が高まったから今すぐウン十台サーバー追加したい。そういう場面は現実にあります。

そんな日に docker run とかしたいっすか? コンテナ間の通信どうするよ? docker-compose。 ほう、悪くないね

船乗りの登場

そんな人間の欲望が重なり合い、迷えるクジラの海に一人の航海士が現れました。k8s こと Kubernetes です。

kubernetes.io

Google は 2000年代初頭からコンテナ技術を使っていたといいます。Borg というオーケストレーションツールがそれらしいです。

つまるところ、折角コンテナ化によってポータビリティを獲得したんだから、コンテナを動かせるマシンを沢山沢山用意してやって、アプリケーションはその何処かどうにかして動いていればいい。もしマシンが故障すればサクッと殺して何処かへ移動させればいい。パワーが必要なら、マシンクラスタにバンバンリソースを追加して、アプリケーションもバンバン動かせばいい。コンテナ間の通信はツールが面倒を見てやろう。コンテナが死んでも復活させてやる。ただし生殺与奪権はこっちのもん。そういった思想が k8s にも受け継がれています。

よいですね。k8s クラスタさえ用意してやれば、あとはコンテナを投げ込むだけで動くんですから。

しかしデータは?

つらい永続データ

Docker とかその系のコンテナは、中にデータを持つを好しとしません。つまり例えばデータと結びついたデータベースなんかと相性が悪いわけです。k8s に至っては、コンテナはどっかのノードで動いているもんであり、勝手に移動しうる。そんな日に中にデータ持ちますか。持てません。

そんなわけで、データの永続化は今もってつらい話です。もちろん今時のクラウドなら、マネージドな SQL データベースを使ったり、ファイル置き場はオブジェクトストレージや仮想ディスクがくっついていてそれを使ったりするんですが、もし自前でやっていくとなると…頭が痛い。

ということで、StorageOS を使って、Kubernetes 上に他の Kubernetes コンテナから使える Volume Provider を展開してみてどうなるか試しました。

幕間

……。と、ここまでが背景説明ですが、そろそろみんな飽きてますね。僕も飽きました。

なのでガールズ&パンツァーの話をします。

先の話の続きは Qiita ポエム案件になったので明日公開します。気になる人たぶんいない気がするんですけど良かったら見てください。

人には伝わらない僕の「ガールズ&パンツァー 劇場版」好きなところベスト5

こんばんは。klis14のかみかみです。

皆さん、「ガールズ&パンツァー」、観てますか。観てますね。それはいい。

さて来たる12/9には「ガールズ&パンツァー 最終章 第1話」も劇場公開となりました。盛り上がってます。

http://girls-und-panzer-finale.jp/girls-und-panzer-finale.jp

今日は「劇場版」の方で僕に刺さったシーンの中で、特に全く人に伝わらないであろうシーンをお伝えします。伝わらない度で重み付けをしたので、マニアックな視点のみでお届けします。また、「劇場版」の公開から日も経っているのでバシバシネタバレます。観ていない?観て。

ではいきます。

第5位 冒頭アバン 大洗町民の観戦シーン 2カット目

f:id:pikatenor:20171224231304j:plain:w600

の、女子生徒

f:id:pikatenor:20171224231257p:plain:w400

わかりますかね、夏服(半袖)なんですよ。

大洗女子学園の生徒は、基本的に皆冬服(というか長袖)*3で、作中で半袖を着用しているのはアリクイさんチームの乗員のみです。

他のシーンに登場するモブ生徒は全員長袖で、おそらく設定上半袖が存在しないものと推測しているんですが、件のシーンに登場する生徒はみんな半袖です。しかもアリクイさんチームとはデティールが異なり、胸当てがあります。

おそらくアニメーターが勝手に描いたのかな、と思うんですが、何にせよ貴重なシーンです。*4

第4位 あんこう

大学選抜との試合終了後、ティーガーIに牽引されつつチームの元へ戻ったIV号戦車の勇姿です。

f:id:pikatenor:20171224232528j:plain:w600

It's just あんこう. このカット見ただけで泣いちゃうんすよね……。ずるくないですか。このあんこうダサかわいいのにこういう感じで出るとメッチャ格好いいんだもん。 ちなみにこの後のあんこうチームの皆さんが戦車を降りるシーンも、個性が出ててお気に入りなんで気にしてください。

TV本編12話と比べても、その試合の凄まじさが見て取れます。

f:id:pikatenor:20171224233000j:plain:w600

第3位 ドゥーチェ「こ゛っち゛み゛て゛る゛ぞ゛ぉお゛お゛ぉ゛」

f:id:pikatenor:20171224233453j:plain:w600

後の

f:id:pikatenor:20171224233536j:plain:w600

「うふぁっ、ふぅっ、、ふぇぇぁ!!」

良いですか。このランキングは「伝わらない」度合いで重み付けをしてお送りしています。「こ゛っち゛み゛て゛る゛ぞ゛ぉお゛お゛ぉ゛」なんて誰だって好きなシーンだ。そうじゃない。

この振り落とされそうになってるドゥーチェの動きと声です。見て。

第2位 島田愛里寿「♪やってやる やってやる や〜ってやるぜ」

f:id:pikatenor:20171224234130j:plain:w300

「♪い〜やなアイツを ボッコボコに〜」

f:id:pikatenor:20171224234227j:plain:w300

「♪喧嘩は売るもの、堂々と〜」

f:id:pikatenor:20171224234329j:plain:w300

「♪肩でか切り 啖呵切る〜」

f:id:pikatenor:20171224234414j:plain:w600

の、やや舌足らずな「ぜ」!!!!!!!!

僕は「劇場版」を15回以上劇場に観に行きましたが、そのうち7回ぐらいはこのシーンのために行っていたといっても過言ではない。

とにかくこれは Blu-ray 買って、聴いて。 配信サービスでもいいよ。 5万回再生してくれ。頼む。竹達彩奈に感謝。

第1位

f:id:pikatenor:20171224235208j:plain:w300

大学選抜との試合最後の、富士山(仮)を駆け下りるシーンからコマ送りしてみてください。

ここで注目して頂きたいのが、IV号戦車のシュルツェン*5です。苦しい試合展開により、殆ど剥がれています。

f:id:pikatenor:20171224235435j:plain:w300

ティーガーIの空砲を受けて、あんこうチームは最後の突進へと挑みます。主砲の威力でセンチュリオンに劣るIV号戦車の、最後の捨て身の賭けです。

f:id:pikatenor:20171224235619j:plain:w300

急加速により、ボロボロとなったシュルツェンが剥がれ落ちていきます。

そしてセンチュリオンの放った1撃…

f:id:pikatenor:20171224235711j:plain:w600

f:id:pikatenor:20171224235739j:plain:w600

f:id:pikatenor:20171224235802j:plain:w600

分かりましたか?吹き飛ばしているんです、最後に1枚*6残ったシュルツェン、その大洗の校章が入った部分を!

この1枚がなければタッチの差で大洗連合は破れていたかもしれません。なんていうか…みんなの想いがこもったアレというか…そういう…この…アレだよ!(語彙崩壊)

何がやべーってこれコマ送りしないとまず気づかないんですよ。どうですかこれ。見ましたかこれ。ゾクゾクしませんか。

おわり

どうですか。観たくなったでしょう、ガールズ&パンツァー。もうコンテナの話なんてどうでも良いですね。大切なのは大洗の埠頭に集まった沢山のコンテナです。じゃ、そういうことで。よろしくお願いしました。

Notice

本記事の画像は映画「ガールズ&パンツァー 最終章」及びTVアニメ「ガールズ&パンツァー」より引用しました。

(c) GIRLS und PANZER Projekt.
(c) GIRLS und PANZER Film Projekt.

お粗末さまでした。

*1: nginx で CGI を動かすのはつらい

*2: ちゃんと検証してないんで使えるかわかんないんですけど、docker run -d -p 8080:80 -v /dir/to/my/application:/usr/local/apache2/htdocs build-shita-yatsu みたいにすると使えそうなやつ

*3: 「最終章」で冬服(っつーかジャンパー)出ましたね、良いですね

*4: 全ての版権絵、スピンオフなどを追いかけているわけではないので、情報があったらお知らせください

*5: 追加装甲: IV号戦車の周りについてる板みたいなやつ

*6:身も蓋もないこと言うと逆サイド見えてないんでちょっとわかんないけど、試合終了後は全部剥がれてます