ネットワークプログラマビリティ勉強会 2回目

ネットワークプログラマビリティ勉強会 2回目に参加した際のメモです。
- 12/16
- 19:00-19:05 はじめに
- 19:05-20:00 結局、OpenStackとは何なのか?
- 20:15-21:00 Docker入門: コンテナ型仮想化技術の仕組みと使い方
http://network-programmability.connpass.com/event/10338/
結局、OpenStackとは何なのか? ユーザ会 中嶋氏
今回は、OpenStackって何?という入門の話です。
■自己紹介
- 日本OpenStackユーザ会長
- @IT OpenStack超入門
■日本OpenStacckユーザ会とは
日本は世界で最も活発なコミュニティの一つ
- 22団体
- 約1800名
- メーリングリスト
- ローカライズ、翻訳
■OpenStackの概要
概要
- OSSで開発されるCloudOS
- IaaSからPaaS
- Juno→Kilo
- コンポーネント紹介(図)
- 機能で分割したマイクロコード構造
- Pythonで実装
ネットワーク例
- Linux Bridge/OVSを使った場合のネットワーク例の紹介(Virtual/Physical)
- 操作イメージ(Neutron API/SDK)
■エコシステム
どんな人が何のために使っているの?
当初、RackspaceがAWSに対抗するために始めたもの
- Phase1 IaaS基盤
- PublicをターゲットにしたIaaS基盤を作りたい
- 研究開発に大規模なリソースを使いたい
- Phase2 サービス基盤
- 標準化による効率化を目的として、自社サービス基盤として採用
- 現在、最も活発に活用されている領域
- Phase3 クラウドネイティブ
- フルプログラマビリティな世界
事例に関して
- 公式サイトのユーザストーリーに事例が多数あり
- Marketplaceでも登録したユーザを多数確認可能
- BMW
- BestBuyなど
ディズニーの話。
Good/Cheap/Fast→Fast/Fast/Fastへの転換。
■よくある質問
- 一般的なk草加ソフトウェアとどう違うの?
- どんなメリットがあるの?
- 非IT企業で使うメリットは?
- ミッションクリティカルなところは・・・
→回答略
■OpenStackって何なのか?
横に見るのではなく
- 個別の技術要素(コンポーネント)をそれぞれ見ても・・・
縦に見る
- 人での作業から解放する
抽象化と標準化を進めてくれる
抽象化と標準化を良しとする
- 当然、HyperVでもVMWareでもKVMでも
- 細かい機能を細かく使うのではない
- 結果、完全な自動化を実現していこう
■まとめ
- とりあえず触ってみる(BMWがそうだった)
- OpenStack Days 2015 2/3-4
- OpenStack Summit 2015/OctはTokyo
■質問
規模が大きく開発チームが必要なイメージがあるがどうか?
→ 規模が大きいと大変。ただし小規模からスタートして行くことが大事である。OpenStackを意識して開発しておくべきか
→ PublicからPrivateに持っていくのもAPIに準拠していれば簡単です。逆も簡単です。IaaSからPaaSまでのPaaSってどのあたりまで?HerokuだとGitとの連携などあるけど。
→ プロジェクトが増えてきている。今回紹介したのはコアコンポーネントでPaaSでいうとHeat/Sahara/Troveあたり。エッジオーバーレイの話はNeutronのAPIを持っているものが多いが、ネットワーク系のデファクトはNeutornになってきている?
→ NFVはOpenStackに近づいてきている。そんな印象を受けます。NovaとNeutronが連携してサーバ/NWのプロビジョニングはKVMだけという話を聞いたが、他の事例は?
→ HyperVは7から盛り上がっている。VMは楽天が使っている。
→ VMだとNSX使わない場合、裏で作り込みが必要と聞いたが?
→ KVMが一番実績がある
Openstackはリソースを調達するとこまで、アプリケーションの管理はDockerという流れもある。
Docker入門: コンテナ型仮想化技術の仕組みと使い方 Cisco TAC伊藤氏
Dockerの基礎です。
- Dockerって何?
- なぜNEがDocker?
- 基本的な使い方と応用例
- 次回あれば:Dockerとその足回りと実運用
■自己紹介
- Cisco TAC
- Docker仕事ではなく個人利用
- 最近作ったサービスとして「ゆくも」を紹介
- 「ゆくも」の裏ではDockerが動いている
■Dockerの概要
Dockerって何?
- Linuxで利用される仮想化技術です
- コンテナと呼ばれる仮想化技術を使う
コンテナ型って何?
- OSの一部のみを仮想化
- LinuxのKernelの機能でリソースを分離
- JVMとJarに近い
- 実際はnamespacesやcgroupsをまとめている
Infrastructure as a Code
- サーバのイメージがCodeとして扱われる
- Codeをコンテナとしてイメージ化
- コンテナ切り替えが容易
Dockerの強み
- OS on OSではないのでオーバーヘッドが少ない
- Linpackを使った演算性能測定でNativeとパフォーマンスが近い結果が
- 「コード」でインフラの構成を管理
なぜNetwork EngineerがなぜDockerをやるか
- ネットワーク機器への接続を意識する
- Ambassadorパターン
- コンテナがネットワーク機器の内部で使われる可能性があるよね
- トラフィックジェネレータとしてのDocker
■Dockerの使い方のデモ
Dockerのコンポーネント
- Docker Client:Daemonに対して命令を与える
- Docker Daemon:コンテナを実際に動かす
- Docker Repository:イメージを保存
Dockerの状態遷移
- running
- paused
- stopped
- image
- removed
Dockerのイメージ取扱い
- docker run
- docker build
- docker commit
- docker push
- docker pull
- docker rmi
- import
Docker Demo
まずはdocker searchコマンドでイメージを探す
docker pullでイメージを取ってくる
docker imageで確認
docker run ubuntu:14.04 echo “hello docker”で応答を確認
docker run ubuntu:14.04 cat /etc/issue でOSも確認
docker run ubuntu:14.04 cat uname -a とするとカーネルは同じに見える
docker run -t -i ubuntu:14.04 /bin/bash でシェルに入る(tty/interactive)
新しいコンテナを立ち上げると別のコンテナでの操作は見えない
docker run -d -p 80:5000 コンテナ名 で外と中をマッピングして導通確認
docker ps で状態確認 -aで停止中のコンテナも表示
docker stop / start の紹介
docker commitでイメージ化(IDを指定)
docker pushでレポジトリへ追加する
docker fileからイメージを作成。Scriptファイルのようなもの。docker buildで実行。
■Dockerのネットワーク
Dockerのネットワーク構成
- docker0 Bridgeにvethが接続されている。
- vethの先にコンテナのeth0が接続
- eth0は不定のIPが割り当てられる
- 物理NICでNAPT
DockerのPort Forwarding
- 外部からのNAT越えはポートフォワードする
- docker run -p Port_X:PORT_Y
DockerでのIP不定対策
- IPではなく「Link」
- –linkを使用
- envで参照可能
3階層の例
- Nginx Python MySQL
- 階層間の接続には必ずLinkを使う
- イメージ化しましょう
- 各コンテナにサービスをすべて入れて、Nginxでドメイン振り分け
■まとめ
- 従来の仮想化と違いリソースを効率的に利用
- 環境を適度に分離する
- 不変なイメージをコンテナ化する
- 大規模環境ではKubernetesのようなオーケストレーションツールで管理する必要性が高まる
- Dockerを挟むとベンダ依存が減る
- コンテナ間の連携は苦労する。DNSによる連携の補足スライドあり(パフォーマンス面で難あり)
質問は大分聞き逃したので省略します・・・
次回はOpenDayLightの話を予定しています
その他のセミナー参加メモ
日本OpenStackユーザ会(Neutron deep dive)に参加してきた
OpenStack最新情報セミナー@渋谷に参加してきた
紹介がありましたがOpenStackは日本語の参考書も出ています。勉強しておいた方が良いと思います
KADOKAWA/アスキー・メディアワークス
売り上げランキング: 33,738
翔泳社
売り上げランキング: 2,697