Infra Study 2nd #2「クラウドネイティブを支えるインフラ技術」に参加した
6/11に開催された、Infra Study 2nd #2「クラウドネイティブを支えるインフラ技術」に参加したのでログを残す。
「コンテナの歴史を追いながらいまいちどコンテナについておさらいしてみる」
講師は株式会社IDCフロンティアの加藤 泰文氏。
仮想マシン(VM)はメインフレームでは1970年代からある技術
実はコンテナも軽量仮想マシンとして古くから(1979年頃)存在していたコンテナとは
- OSから見るとプロセスであり、Linuxではnamespaceやcgroup等の機能で作成されている
コンテナは以下3つの機能で専用のファイルシステムが作られている
PID Namespace
- コンテナごとに独立したPIDを持たせる機能だが、ホストからコンテナのプロセスは見える
vethインタフェース
- ホストとコンテナ間(Namespace)で対になるインタフェースを作成する
2010年ごろからIaCの流れでコンテナが注目される
当時はLXCが存在したが、イマイチな箇所をラップしたDockerが登場し、話題の技術に
→このため、初期のDockerは裏でLXCが動いていたDockerの注目により、Linuxカーネルにコンテナ関連機能が入りやすくなった
- cgroup v1/v2
- PSI などなど
感想
仮想化の誕生から現在までの流れが体系的にまとめられており、
コンテナはこんな歴史があったんだなと驚いた。
今ある新しい技術も様々な技術が積み重なってできたものだと考えると、感慨深いものがある。
「VM時代からコンテナ時代へストレージ管理の移り変わり」
講師はゼットラボ株式会社の坂下 幸徳 氏。
コンテナはステートフルアプリは苦手だと言われているが、そのようなことはない
→2020年の調査では全体の55%が商用環境でステートフルアプリをコンテナ化しているただし、ステートフルアプリにおいては以下を考慮する必要がある
- シャットダウン前のsync
- スケールアウトやバージョンアップ時のデータ同期やリストア
→これらはステートレスアプリでは不要となるため、
正しい認識は「ステートレスアプリに比べ、ステートフルアプリは大変」となる
今今の運用としては、スクリプト等でデータ同期を行うのが主流
→運用自動化のツールも開発中コンテナにおけるストレージの性能について
→VMと比較すると、間にハイパーバイザが存在しないため、むしろベアメタルとほぼ同等。
感想
コンテナ、特にk8sの物理面から見たストレージの情報はあまり見ないため、VMと比較した性能面の話は非常に勉強になった。
元々自分がストレージ担当だったということもあり、面白く聞くことができた講演の1つだった。
ストレージはしばらくご無沙汰していたが、また勉強してみようかと思う。
「クラウドネイティブ時代のデータベース - ストレージエンジンと分散トランザクション -」
講師はこば氏。
ストレージエンジンとは
RDBMSにおいてデータ管理の中心的役割を果たすコンポーネント。
B+Tree、LSM-Treeの2種類のアルゴリズムが使用されている。B+Tree
従来のRDBMSで使われてきたストレージ構造。HDDと相性が良い。LSM-Tree
Immutableでシーケンシャルな書き込みを行うストレージ構造。SSDと相性が良い。最近は記憶媒体としてNVMが登場しているため、一般化すれば上記とは異なるストレージ構造が出現する可能性も。
感想
DBは完全に専門外であるため、内部技術や用語については今一つ理解できないところもあったが、
それでも記憶媒体の変遷でDBの在り方も変わっていく、というのは興味深かった。
NVMという新たな記憶媒体が登場した中で、DBのみならず他のコンポーネントに与える影響も見ていきたい。