”ペパボ・はてな技術大会~インフラ技術基盤~@福岡”に参加してきた話
わざわざ大阪から福岡まで足を運んで、このイベントに参加してきたよ。定員40名のイベントだったのだが、当選したので、3連休を福岡で滞在する楽しい旅へ。
技術的な要素な話もあったのだが、このイベントの大半に費やされているのは技術面というよりかはビジョン的な話。
ビジョンと言われてもパッとわからないかもしれませんが、エンジニアリングの分野だと設計思想とか近いのかなと。どのようにインフラを設計するのかとか、そのためにはどういう技術を当てはめていけばいいのかなどなど、内容の濃いものであった。
細かな所は、上のリンクにそのうち発表スライドが上がると思うので、興味がある人は見てみてね。
分解と再構築 / Repairble Infrastructure
印象的な言葉をいくつかここに列挙しておく。
- 分解と再構築
- Repairble Infrastructure(修理可能なインフラ)
- 実験と観測
- フィードバック制御
- なめらかなシステム(GMOペパボのシステムビジョン)
- 無いものは作る
特に1と2は、10年ぐらい動かすサービスを提供するのであれば、重要になってくると思う。別の言葉で言い換えると「疎結合なインフラ」といったところだろうか。
いま、巷ではDockerを使ってインフラを構築するのがトレンドになっている。Dockerって、Linuxコンテナ技術の細かな所を理解しなくても、簡単にインフラを構築ができる。私も、Dockerでいろいろ自社システム向けにインフラを構築しており、Dockerの恩恵を受けている。
しかし、Dockerが廃れたら果たしてどうなるか。Dockerに依存したインフラってどうよ。そして、代替技術基盤に乗せ換えるとき、果たして簡単に移行ができるだろうか。。。Dockerって、簡単にインフラが構築できてしまうが故、蜜結合な要素が多い。なので、簡単に載せ替えは難しい。
そこで、「分解と再構築」「Repairble Infrastructure」「疎結合なインフラ」の出番だ。Dockerにどっぷりつかるのではなく、Linuxコンテナ技術を使うことは可能だ。はてなの中の人が作った droot は、それを体現しているのかと思う。
もちろん、これらを実行するには、Linuxコンテナ技術の習得はいるだろうし、時間もかかる。1~2年で終わるサービスであればDockerで作ったほうがいいと思う。ただ、GMOペパボのようなホスティングサービスや、はてなブログのようなブログサービスは、息の長いサービスになるだろうから、「分解と再構築」な視点で設計したほうがいいと思う。
Haconiwaを使ってみたい
今回このイベントで初めて知ったLinuxコンテナエンジン・Haconiwa。mruby製で、GMOペパボの松本亮介さんが中心に開発されている。
- FastCGIのコンテナ版的な
- コンテナに寿命を持たせている
- アクセスがなければコンテナを自動的に落とすことができる。
- アクセスがあれば、コンテナを自動的に起動(サーバレスっぽい)
- 使ってなければ落とすことができるので省エネ。
- コンテナを起動させるときに、コンテナを更新させることができるのでセキュア。(細胞が生まれ変わるみたいな感じ)
- ngx_mrubyなどなど
コンテナにライフサイクルのようなものを持たせているのが、Dockerには無い概念のようだ。まさに有機的なコンテナ、まさに箱庭。オートスケールなどが容易にできそうだ。