ローファイ日記

出てくるコード片、ぼくが書いたものは断りがない場合 MIT License としています http://udzura.mit-license.org/

2018年上半期(ちょっと7月含む)を振り返る

社で提出した振り返り資料をベースにパブリックでも書いとこうかと思う。

とりあえず今年に入ってから、今日までのアウトプットをまとめる。

何だろう。とりあえず 回数すごい 。福岡県外の試合も東京4回、仙台1回らしい。だいたい月2回... Hacker Tackleで喋ったのとかもっとまえのような気がしていたが...。

上半期をとおして、今までのようにRubyコミュニティであったり、今までではつながりが薄かった人々(特に学術方面の方々)とのつながり構築なんかを意識し、お呼びいただいたり機会があった勉強会、研究会はできる限り参加したつもり。

一方で、手を動かす方と両立できていたかというと、そうでもない部分があり苦しさを感じることも(正直なところ)あった。とはいえ、アウトプットを続けたことは全く無駄でもないと思っていて、コンテナ、その実装自体や管理、mruby gemや自分で提案するもの、あるいはKubernetesを含むエコシステムのとの付き合い方はどうかとか、ある程度外部の人を交え議論や指摘を得られ、という自分のコンテナに対する技術的な方向性が去年よりも固まってきたように思う。

具体的には今の所以下のような「感じ」がある。

  • Dockerの提案するようなコンテナ観、VMの延長としてのポータブルな独立環境とはかなり違うので、また違うドメインの問題を解決できそう
  • 一方で、どのようなドメインの問題が一番得意かはまだふんわりしいて、より言語化が必要そうだし、実装を深めることで見せていかないといけない
  • 得意な問題が(僕の感覚では、はっきり)違うので、レイヤ的にはKubernetesなどと協力することにメリットがありそうで、クラウドネイティブの技術をもっと内面化するとHaconiwaの新しい形が見えてきそう

HPC OPS研究会に参加された方の感想も、僕の考えをうまく汲んでいただけていると思う。結構分量を多めに、引用させていただく。

当日のトークでは、上述のホスティングサービスにおけるコンテナ(プロセス)の振る舞いや利用技術の特性を示しながら従来の単純なプロセスからの役割の変化を考察し、近年のコンテナの進化は『ホストから独立したより軽量な仮想化技術としての文脈(クラウド的文脈)』と『システム上で動作する、より安全かつ利便性の高いプロセス技術(ホスティング、またはHPC的文脈)』の両方の文脈がある、と述べていました(自己流の解釈が多分に含まれます)。

FastContainerアーキテクチャ自体も面白かったのですが、まとめを聞いた時に「そうなんだよなー。だから界隈によってコンテナの定義もブレてたり、聴衆によって求める特性が違ったりで発表が難しいんだよなー……。」という気持ちを抱きました。

これは例えば後者の文脈であげられるソフトウェア(SingularityとかBareMetalContainerとかShifter)は”仮想化”を目的としていないので、内容や運用の話をすると前者の仮想化の文脈では「これはコンテナなのか…?」みたいな反応になってしまうので、発表の導入に注意しないといけない。みたいなことを指します。

個人的には両方の文脈で興味があって、旧来は少し異なる思想を持っていた両者の文化が発展と共に同じ技術に辿り着いて、徐々に技術的に融合しつつある現状(クラウド環境をHPC的に利用するとか、逆にHPC環境をクラウドを介して提供する話とか、クラウドのソフトウェアスタックをHPC方面に提供するとか)が面白いと思っています。が、何処に話を位置付けて発表するのかはっきり意識しないと聴衆が混乱しはじめるので、気を付けないといけないですね。


下半期の課題として、ここまで深めてきたコンテナに感する議論を自分自身に定着させつつ、「違うドメインの問題を解決」するヒントになりそうな技術要素を追いかけたり、ちょっと違う分野を追いかけたりをやっていきたいと思っている。

興味のある技術要素はまずは以下の二つ。

CRIU

github.com

実装はしてみて、一応助成成果報告会でデモをしてみたが、もうちょっと色々してからマージしたい。資料の後半に書いた通りなんだけれど、個人的には起動高速化とかという以外の可能性もめちゃありそう。

cgroupのevent

github.com

特にmemory controller周りについて調べ直していて、フックのエントリポイントとしてHaconiwaでサポートするというのをやっておきたい。

HPC OPS研究会で、オンメモリに大量のデータを読み込みつつめっちゃ計算しているコンテナがOOMで死にかけた時に、よりメモリが潤沢なホストに自動でマイグレートしてほしいという話があって、この辺の技術を組み合わせると案外できそうな気もしている。

それから、オーケストレーション周りも色々やってることがある。これはいつ形にできるかな...。

異分野(?)ではカーネルモジュールの作り方を勉強する。seccompの時のように昔純粋な興味で調べたことが突然めっちゃ繋がることがあるので...。


下半期は1ヶ月ごとに雑でもちゃんと振り返るというのをやっていきたいと思っているので、また8月頭に、お会いしましょう...。