Perlで仮想サーバ制御(仮)

Post on 13-Jul-2015

1078 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

2011/10/15 Fusic Co., Ltd. Satoshi Hirata

Perlで仮想サーバ制御(仮)

Powered by

Fusic Co., Ltd. 2

皆さんおつかれさまです。

の前に

Fusic Co., Ltd. 3

皆さんおつかれさまです。 2日間、濃い話をいっぱい聞いていっぱい飲んでいっぱい喋っておつかれだと思います。

の前に

Fusic Co., Ltd. 4

皆さんおつかれさまです。 2日間、濃い話をいっぱい聞いていっぱい飲んでいっぱい喋っておつかれだと思います。 てことでゆるっと話をさせていただければ幸いです。

の前に

Fusic Co., Ltd. 5

皆さんおつかれさまです。 2日間、濃い話をいっぱい聞いていっぱい飲んでいっぱい喋っておつかれだと思います。 てことでゆるっと話をさせていただければ幸いです。 =力抜いて聞いていただければ。

の前に

2011/10/15 Fusic Co., Ltd. Satoshi Hirata

Perlで仮想サーバ制御(ゆるふわ)

Powered by

Fusic Co., Ltd.

自己紹介 7

Name : 平田 哲(ひらた さとし)

Fusic Co., Ltd.

自己紹介 8

Name : 平田 哲(ひらた さとし) ID : debility

Fusic Co., Ltd.

自己紹介 9

Name : 平田 哲(ひらた さとし) ID : debility Work at : Fusic Co., Ltd. http://fusic.co.jp/

Fusic Co., Ltd.

自己紹介 10

Name : 平田 哲(ひらた さとし) ID : debility Work at : Fusic Co., Ltd. http://fusic.co.jp/ Skill : Program, Server, Network, and “Nomikai”

Fusic Co., Ltd.

自己紹介 11

Name : 平田 哲(ひらた さとし) ID : debility Work at : Fusic Co., Ltd. http://fusic.co.jp/ Skill : Program, Server, Network, and “Nomikai” Icon : © Mutsuking

Fusic Co., Ltd.

自己紹介 12

From : 福岡から来ました

Fusic Co., Ltd.

自己紹介 13

From : 福岡から来ました

Fusic Co., Ltd.

自己紹介 14

From : 福岡から来ました

Fusic Co., Ltd.

Fukuoka.pm 15

From : Fukuoka.pmから来ました

Fusic Co., Ltd.

Fukuoka.pm 16

From : Fukuoka.pmから来ました

Fusic Co., Ltd.

Fukuoka.pm 17

From : Fukuoka.pmから来ました

Fusic Co., Ltd.

Fukuoka.pm 18

From : Fukuoka.pmから来ました

Fusic Co., Ltd.

Fukuoka.pm 19

From : Fukuoka.pmから来ました

Fusic Co., Ltd.

Fukuoka.pm 20

Fusic Co., Ltd.

Fukuoka.pm 21

Fusic Co., Ltd.

Fukuoka.pm 22

気軽に来てください!

Fusic Co., Ltd.

Fukuoka.pm 23

気軽に来てください! ※最近はゲストドリブン傾向

Fusic Co., Ltd.

今日の話 24

今日の話

Fusic Co., Ltd.

今日の話 25

今日の話 ・Perlで仮想サーバを動かす話

Fusic Co., Ltd.

今日の話 26

今日の話 ・Perlで仮想サーバを動かす話 ・仕事の話

Fusic Co., Ltd.

仮想サーバを動かす話 27

Q1: 仮想サーバ使ってますか?

Fusic Co., Ltd.

仮想サーバを動かす話 28

仮想サーバ=バーチャルなサーバ

Fusic Co., Ltd.

仮想サーバを動かす話 29

仮想サーバ=バーチャルなサーバ 1台のサーバコンピュータを複数台の仮想的なコンピュータに分割し、それぞれに別のOSやアプリケーションソフトを動作させる技術。

Fusic Co., Ltd.

仮想サーバを動かす話 30

仮想サーバ=バーチャルなサーバ 1台のサーバコンピュータを複数台の仮想的なコンピュータに分割し、それぞれに別のOSやアプリケーションソフトを動作させる技術。

Fusic Co., Ltd.

仮想サーバを動かす話 31

仮想サーバ=バーチャルなサーバ 1台のサーバコンピュータを複数台の仮想的なコンピュータに分割し、それぞれに別のOSやアプリケーションソフトを動作させる技術。

Fusic Co., Ltd.

仮想サーバを動かす話 32

Q1: 仮想サーバ使ってますか? Q2: どういうケースで使ってますか?

Fusic Co., Ltd.

仮想サーバを動かす話 33

Q1: 仮想サーバ使ってますか? Q2: どういうケースで使ってますか? ・VPS

Fusic Co., Ltd.

仮想サーバを動かす話 34

Q1: 仮想サーバ使ってますか? Q2: どういうケースで使ってますか? ・VPS ・Amazon EC2のようなクラウドサービス

Fusic Co., Ltd.

仮想サーバを動かす話 35

Q1: 仮想サーバ使ってますか? Q2: どういうケースで使ってますか? ・VPS ・Amazon EC2のようなクラウドサービス ・開発環境として

Fusic Co., Ltd.

仮想サーバを動かす話 36

Q1: 仮想サーバ使ってますか? Q2: どういうケースで使ってますか? ・VPS ・Amazon EC2のようなクラウドサービス ・開発環境として ・仕事で構築

Fusic Co., Ltd.

ハイパーバイザ 37

ハイパーバイザ(Hypervisor)

Fusic Co., Ltd.

ハイパーバイザ 38

ハイパーバイザ(Hypervisor) コンピュータを仮想化し、複数の異なるOSを並列に実行できるようにするソフトウェア。コンピュータのハードウェアのように振舞う仮想的なコンピュータ(VM:Virtual Machine、仮想マシン、バーチャルマシン)をソフトウェアによって作り出し、その上で様々な種類のOSを稼動させることができる。

Fusic Co., Ltd.

ハイパーバイザ 39

ハイパーバイザ(Hypervisor) コンピュータを仮想化し、複数の異なるOSを並列に実行できるようにするソフトウェア。コンピュータのハードウェアのように振舞う仮想的なコンピュータ(VM:Virtual Machine、仮想マシン、バーチャルマシン)をソフトウェアによって作り出し、その上で様々な種類のOSを稼動させることができる。 KVM,Xen,VMWare,LXC,VirtualBox,etcetc...

Fusic Co., Ltd.

libvirt 40

libvirt

Fusic Co., Ltd.

libvirt 41

libvirt 仮想機械用の共通APIを提供する、レッドハットを中心としたオープンソースプロジェクト。 多数のハイパーバイザを制御できる。

Fusic Co., Ltd.

libvirt 42

OS

Fusic Co., Ltd.

libvirt 43

OS

Hypervisor

Fusic Co., Ltd.

libvirt 44

OS

Hypervisor

Virtual Server

Virtual Server

Fusic Co., Ltd.

libvirt 45

OS

Hypervisor libvirt

Virtual Server

Virtual Server

Fusic Co., Ltd.

libvirt 46

OS

Hypervisor libvirt

Application Virtual Server

Virtual Server

Fusic Co., Ltd.

libvirt 47

OS

Hypervisor libvirt

Perl Virtual Server

Virtual Server

Fusic Co., Ltd.

libvirt 48

OS

Hypervisor libvirt

Perl Virtual Server

Virtual Server

Fusic Co., Ltd.

Sys::Virt 49

Sys::Virt

Fusic Co., Ltd.

Sys::Virt 50

Sys::Virt libvirtのperlバインディング http://search.cpan.org/~danberr/Sys-Virt/

Fusic Co., Ltd.

Sys::Virt 51

Sys::Virt libvirtのperlバインディング http://search.cpan.org/~danberr/Sys-Virt/ Module Version: 0.9.5

Fusic Co., Ltd.

Sys::Virt 52

Sys::Virt libvirtのperlバインディング http://search.cpan.org/~danberr/Sys-Virt/ Module Version: 0.9.5 使うVersionはlibvirtに依存する(see CHANGES) ※ Ubuntu11.04の場合

Fusic Co., Ltd.

Sys::Virt 53

Sys::Virt libvirtのperlバインディング http://search.cpan.org/~danberr/Sys-Virt/ Module Version: 0.9.5 使うVersionはlibvirtに依存する(see CHANGES) ※ Ubuntu11.04の場合 libvirt 0.8.8 → Sys::Virt 0.2.7

Fusic Co., Ltd. 54

use strict; use warnings; use Sys::Virt; my $addr = "qemu:///system"; my $vmm = Sys::Virt->new(address => $addr); my @domains = $vmm->list_domains(); foreach my $dom (@domains) { print "Domain ", $dom->get_id, " ", $dom->get_name, "¥n"; }

Sys::Virt

Fusic Co., Ltd. 55

----- :wq ----- $

Sys::Virt

Fusic Co., Ltd. 56

----- :wq ----- $ perl sys_virt.pl

Sys::Virt

Fusic Co., Ltd. 57

----- :wq ----- $ perl sys_virt.pl Domain 0 ubuntu-lucid Domain 1 centos Domain 2 ubuntu-carmic $

Sys::Virt

Fusic Co., Ltd. 58

----- :wq ----- $ perl sys_virt.pl Domain 0 ubuntu-lucid Domain 1 centos Domain 2 ubuntu-carmic $ :-)

Sys::Virt

Fusic Co., Ltd.

Beccoame 59

Beccoame 0.1

Fusic Co., Ltd.

Beccoame 60

Beccoame 0.1 ≠ BEKKOAME INTERNET

Fusic Co., Ltd.

Beccoame 61

Beccoame 0.1 = Bogus elastic computing, like Amazon EC2 or Eucalyptus

Fusic Co., Ltd.

Beccoame 62

Beccoame 0.1 = Bogus elastic computing, like Amazon EC2 or Eucalyptus ※ Amazon EC2やEucalyptusっぽい偽クラウド

Fusic Co., Ltd.

Beccoame 63

Fusic Co., Ltd.

Beccoame 64

Fusic Co., Ltd.

Beccoame 65

Beccoame 0.1 = Bogus elastic computing, like Amazon EC2 or Eucalyptus ※ Amazon EC2やEucalyptusっぽい偽クラウド use Sys::Virt;

Fusic Co., Ltd.

Beccoame 66

Beccoame 0.1 = Bogus elastic computing, like Amazon EC2 or Eucalyptus ※ Amazon EC2やEucalyptusっぽい偽クラウド use Sys::Virt; use Tatsumaki;

Fusic Co., Ltd. 67

$ perl run_instances.pl HTTP/1.0 200 OK Content-Type: text/xml; charset=utf-8 Client-Date: Wed, 28 Jul 2010 02:56:47 GMT Client-Peer: 127.0.0.1:5000 Client-Response-Num: 1 <RunInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2006-10-01"> <groupSet> <item> (略)

Beccoame

Fusic Co., Ltd. 68

$ virsh list

Beccoame

Fusic Co., Ltd. 69

$ virsh list Id 名前 状態 ---------------------------------- 47 i-ea19a11c 実行中 48 i-e89ae6b5 実行中 49 i-fb30dc5a 実行中 $

Beccoame

Fusic Co., Ltd. 70

$ virsh list Id 名前 状態 ---------------------------------- 47 i-ea19a11c 実行中 48 i-e89ae6b5 実行中 49 i-fb30dc5a 実行中 $ :-)

Beccoame

Fusic Co., Ltd.

Beccoame 71

Beccoame 0.1 = Bogus elastic computing, like Amazon EC2 or Eucalyptus ※ Amazon EC2やEucalyptusっぽい偽クラウド use Sys::Virt; use Tatsumaki; → http://blog.fusic.co.jp/archives/255

Fusic Co., Ltd.

仕事の話 72

仕事の話

Fusic Co., Ltd.

仕事の話 73

仕事の話 複数の物理サーバ上に多数(50台とか100台とか)の仮想サーバを迅速に配備する仮想化環境の構築

Fusic Co., Ltd.

仕事の話 74

仕事の話 複数の物理サーバ上に多数(50台とか100台とか)の仮想サーバを迅速に配備する仮想化環境の構築 要件: Amazon EC2互換のWeb APIを持つ

Fusic Co., Ltd. 75

Beccoame 1.0

process

Beccoame 1.0

Web API

Fusic Co., Ltd. 76

Beccoame 1.0

process

process

process

process

Beccoame 1.0

Web API

Fusic Co., Ltd. 77

Beccoame 1.0

process

process

process

process

MQ

Beccoame 1.0

Web API

Fusic Co., Ltd. 78

Beccoame 1.0

process

process

Virtual Instances

process

process

MQ

Beccoame 1.0

Web API

Fusic Co., Ltd. 79

Beccoame 1.0

process

process

process

Virtual Instances

process

process DB

MQ

Beccoame 1.0

Web API

Fusic Co., Ltd. 80

Beccoame 1.0

process

process

process

Virtual Instances

process

process DB

MQ

Beccoame 1.0

Web API Amon2

Fusic Co., Ltd. 81

Beccoame 1.0

process

process

process

Virtual Instances

process

process DB

MQ

Beccoame 1.0

Web API Amon2 Sys::Virt

Sys::Virt

Sys::Virt

Fusic Co., Ltd. 82

Beccoame 1.0

process

process

process

Virtual Instances

process

process DB

MQ

Beccoame 1.0

Web API Amon2

Net::AMQP

Sys::Virt

Sys::Virt

Sys::Virt

Fusic Co., Ltd. 83

Beccoame 1.0

process

process

process

Virtual Instances

process

process DB

MQ

Beccoame 1.0

Web API Amon2

Net::AMQP

Teng

Sys::Virt

Sys::Virt

Sys::Virt

Fusic Co., Ltd.

仕事の話 84

仕事の話 複数の物理サーバ上に多数(50台とか100台とか)の仮想サーバを迅速に配備する仮想化環境の構築 要件: Amazon EC2互換のWeb APIを持つ 要件:

Fusic Co., Ltd.

福岡 85

From : 福岡から来ました

Fusic Co., Ltd.

福岡 86

Fukuoka : 推しメンはRuby

Fusic Co., Ltd.

福岡 87

Fukuoka : 推しメンはRuby

フクオカRuby大賞

Fusic Co., Ltd.

福岡 88

Fukuoka : 推しメンはRuby

Rubyセンター

Fusic Co., Ltd.

福岡 89

Fukuoka : 推しメンはRuby

福岡Rubyビジネス拠点推進会議

Fusic Co., Ltd.

福岡 90

Fukuoka : 推しメンはRuby

福岡Rubyビジネス拠点推進会議 弊社(Fusic)の社長が理事の一人

Fusic Co., Ltd.

仕事の話 91

仕事の話 複数の物理サーバ上に多数(50台とか100台とか)の仮想サーバを迅速に配備する仮想化環境の構築 要件: Amazon EC2互換のWeb APIを持つ 要件: Rubyで開発されていること

Fusic Co., Ltd.

仕事の話 92

ですよねー

Fusic Co., Ltd. 93

Beccoame 1.0

process

process

process

Virtual Instances

process

process DB

MQ

Beccoame 1.0

Web API Amon2

Net::AMQP

Teng

Sys::Virt

Sys::Virt

Sys::Virt

Fusic Co., Ltd. 94

Becco...

process

process

process

Virtual Instances

process

process DB

MQ

Becco...

Web API

Fusic Co., Ltd. 95

Perl → Ruby

Volante

Sweeper

Striker

Virtual Instances

Striker

Striker DB

Field

Volante Cloud

Web API

Sinatra

Carrot

Mongo Mapper

ruby-libvirt

ruby-libvirt

ruby-libvirt

Fusic Co., Ltd.

大人の事情 96

といった大人の事情で、Beccoameはお蔵入り。

Fusic Co., Ltd.

社内で仮想サーバ制御 97

社内で仮想サーバ制御

Fusic Co., Ltd.

社内で仮想サーバ制御 98

社内で仮想サーバ制御 Fusic

Fusic Co., Ltd.

社内で仮想サーバ制御 99

社内で仮想サーバ制御 Fusic Webシステムがメインの会社です

Fusic Co., Ltd.

社内で仮想サーバ制御 100

社内で仮想サーバ制御 Fusic Webシステムがメインの会社です PHP(CakePHP)とRuby(Ruby on Rails)がメインです

Fusic Co., Ltd.

社内で仮想サーバ制御 101

社内で仮想サーバ制御 Fusic Webシステムがメインの会社です PHP(CakePHP)とRuby(Ruby on Rails)がメインです 受託開発のお仕事が圧倒的に多いです

Fusic Co., Ltd.

社内で仮想サーバ制御 102

社内で仮想サーバ制御 Fusic Webシステムがメインの会社です PHP(CakePHP)とRuby(Ruby on Rails)がメインです 受託開発のお仕事が圧倒的に多いです シンプルな構成の案件がやっぱり多いです

Fusic Co., Ltd.

社内で仮想サーバ制御 103

社内における仮想サーバ制御の要件

Fusic Co., Ltd.

社内で仮想サーバ制御 104

社内における仮想サーバ制御の要件 名前で管理できる

Fusic Co., Ltd.

社内で仮想サーバ制御 105

社内における仮想サーバ制御の要件 名前で管理できる CentOSのサーバである

Fusic Co., Ltd.

社内で仮想サーバ制御 106

社内における仮想サーバ制御の要件 名前で管理できる CentOSのサーバである CakePHPやRuby on Railsがすぐに使える

Fusic Co., Ltd.

社内で仮想サーバ制御 107

社内における仮想サーバ制御の要件 名前で管理できる CentOSのサーバである CakePHPやRuby on Railsがすぐに使える 複数同時になにそれおいしいの

Fusic Co., Ltd.

社内で仮想サーバ制御 108

社内における仮想サーバ制御の要件 名前で管理できる CentOSのサーバである CakePHPやRuby on Railsがすぐに使える 複数同時になにそれおいしいの 今のところホスト1台しかないよ

Fusic Co., Ltd.

社内で仮想サーバ制御 109

社内における仮想サーバ制御の要件 名前で管理できる CentOSのサーバである CakePHPやRuby on Railsがすぐに使える 複数同時になにそれおいしいの 今のところホスト1台しかないよ 増えてもあと1台くらいだよ

Fusic Co., Ltd.

社内で仮想サーバ制御 110

社内における仮想サーバ制御の要件 名前で管理できる CentOSのサーバである CakePHPやRuby on Railsがすぐに使える 複数同時になにそれおいしいの 今のところホスト1台しかないよ 増えてもあと1台くらいだよ IPアドレス指定できるといいな

Fusic Co., Ltd.

社内で仮想サーバ制御 111

社内における仮想サーバ制御の要件 名前で管理できる CentOSのサーバである CakePHPやRuby on Railsがすぐに使える 複数同時になにそれおいしいの 今のところホスト1台しかないよ 増えてもあと1台くらいだよ IPアドレス指定できるといいな 定期バックアップあると嬉しいかもね

Fusic Co., Ltd. 112

process

Web

社内で仮想サーバ制御

Virtual Instances

Fusic Co., Ltd.

社内で仮想サーバ制御 113

DevOps ... ?

Fusic Co., Ltd.

社内で仮想サーバ制御 114

use Sys::Virt;

Fusic Co., Ltd.

社内で仮想サーバ制御 115

use Sys::Virt; use Sys::Guestfs;

Fusic Co., Ltd.

社内で仮想サーバ制御 116

use Sys::Virt; use Sys::Guestfs; use Amon2; (or use Dancer;)

Fusic Co., Ltd.

社内で仮想サーバ制御 117

use Sys::Virt; use Sys::Guestfs; use Amon2; (or use Dancer;) use Teng;

Fusic Co., Ltd.

社内で仮想サーバ制御 118

use Sys::Virt; use Sys::Guestfs; use Amon2; (or use Dancer;) use Teng; use AnyEvent;

Fusic Co., Ltd.

社内で仮想サーバ制御 119

use Sys::Virt; use Sys::Guestfs; use Amon2; (or use Dancer;) use Teng; use AnyEvent; な簡易アプリを作る予定です。

Fusic Co., Ltd.

CM 120

http://zenpre.net/

Fusic Co., Ltd.

CM 121

http://zenpre.net/ オンラインプレゼンツール

Fusic Co., Ltd.

CM 122

http://zenpre.net/ オンラインプレゼンツール iPhoneアプリで操作できます

Fusic Co., Ltd.

CM 123

http://zenpre.net/ オンラインプレゼンツール iPhoneアプリで操作できます ustreamの動画と同期できます

Fusic Co., Ltd.

CM 124

http://zenpre.net/ オンラインプレゼンツール iPhoneアプリで操作できます ustreamの動画と同期できます - 動画とセットで後から視聴できます

Fusic Co., Ltd.

CM 125

http://zenpre.net/ オンラインプレゼンツール iPhoneアプリで操作できます ustreamの動画と同期できます - 動画とセットで後から視聴できます

※Ruby製です

Fusic Co., Ltd.

まとめ 126

今日の話 ・Perlで仮想サーバを動かす話 → Sys::Virt

Fusic Co., Ltd.

まとめ 127

今日の話 ・Perlで仮想サーバを動かす話 → Sys::Virt ・仕事の話 → 大人の事情とか

Fusic Co., Ltd.

ご清聴ありがとうございました。

128

top related