Slide 1

Slide 1 text

ハードウェアから 攻めるクラウド Takumi Takahashi 2019/03/22

Slide 2

Slide 2 text

Takumi Takahashi @takumin @takumiiinn 2

Slide 3

Slide 3 text

本日のレシピ 1. ベアメタルで考慮すべき所 2. ソフトウェアによる再現 3. デモンストレーション 4. さいごに 3

Slide 4

Slide 4 text

1. ベアメタルで考慮すべき所

Slide 5

Slide 5 text

ハードウェアの多様性 カーネルの多様性 ディストリビューションの多様性 ネットワークの多様性 テスト手法 その他たくさん 5

Slide 6

Slide 6 text

ハードウェアの多様性 カーネルの多様性 ディストリビューションの多様性 ネットワークの多様性 テスト手法 その他たくさん 6

Slide 7

Slide 7 text

CPU x86 ARM RISC-V etc... 7

Slide 8

Slide 8 text

Firmware BIOS UEFI Proprietery etc... 8

Slide 9

Slide 9 text

ハードウェアの多様性 カーネルの多様性 ディストリビューションの多様性 ネットワークの多様性 テスト手法 その他たくさん 9

Slide 10

Slide 10 text

NT Darwin Linux kernel RTOS 自作OS etc... 10

Slide 11

Slide 11 text

ハードウェアの多様性 カーネルの多様性 ディストリビューションの多様性 ネットワークの多様性 テスト手法 その他たくさん 11

Slide 12

Slide 12 text

Debian Family Ubuntu etc... Redhat Family CentOS etc.. Gentoo Linux etc... 12

Slide 13

Slide 13 text

ハードウェアの多様性 カーネルの多様性 ディストリビューションの多様性 ネットワークの多様性 テスト手法 その他たくさん 13

Slide 14

Slide 14 text

物理NW Ethernet In niBand EtherCAT etc... 仮想NW Linux Network Namespace VLAN VXLAN etc... 14

Slide 15

Slide 15 text

ハードウェアの多様性 カーネルの多様性 ディストリビューションの多様性 ネットワークの多様性 テスト手法 その他たくさん 15

Slide 16

Slide 16 text

テスト環境 仮想マシン コンテナ 16

Slide 17

Slide 17 text

テストアプリケーション テストフレームワーク CIツール 17

Slide 18

Slide 18 text

ハードウェアの多様性 カーネルの多様性 ディストリビューションの多様性 ネットワークの多様性 テスト手法 その他たくさん 18

Slide 19

Slide 19 text

どのような場所に設置するか? 電源をどうするか? 空調をどうするか? 故障検知/対応をどのように行うか? 19

Slide 20

Slide 20 text

結論 全部一人でやるのは無理ゲー 既存ベンダの凄さを再認識

Slide 21

Slide 21 text

無理ゲーにしないためには? ハードウェアはどうにもならない部分が多い… 21

Slide 22

Slide 22 text

それならソフトウェアで再現しよう! 22

Slide 23

Slide 23 text

2. ソフトウェアによる再現

Slide 24

Slide 24 text

24

Slide 25

Slide 25 text

今回はVagrant+Libvirtでトライしてみました 25

Slide 26

Slide 26 text

Vagrant leの仕組みは仮想環境の再現性高い Web界隈では仮想環境のデファクト? 仮想N/W構築など期待値は高い 26

Slide 27

Slide 27 text

QEMU+KVMを採用 抽象度が非常に高いがバックエンドの知識も必要 27

Slide 28

Slide 28 text

Vagrant管理外で仮想ネットワークを独自に構築 EDK2/OVMF UEFIで初期ネットワーク起動 UEFIからチェーン処理されるiPXE BIOS/UEFI両対応+その他便利機能 API(メタデータ)サーバ 諸々のシステムを糊付けします 28

Slide 29

Slide 29 text

3. デモンストレーション やってみた!

Slide 30

Slide 30 text

4. さいごに こんなツールあるとうれしい

Slide 31

Slide 31 text

mruby + KVM + UEFI + netns = ??? Vagrantは仕組みが巨大なため動作に難がある Linuxに限定すればKVM APIを直接触れる Firecracker(Jailer)をバックエンドにすれば...? GNS3のようなシステム構成可視化ツール 例えば上記ツールがGraphvizなどを出力 システム全体の検証ツールとして使えます 31

Slide 32

Slide 32 text

Thank you for your a en on!!