ネットワークプログラマビリティ勉強会#2@六本木に参加してきた

ネットワークプログラマビリティ勉強会 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

  1. まずはdocker searchコマンドでイメージを探す

  2. docker pullでイメージを取ってくる

  3. docker imageで確認

  4. docker run ubuntu:14.04 echo “hello docker”で応答を確認

  5. docker run ubuntu:14.04 cat /etc/issue でOSも確認

  6. docker run ubuntu:14.04 cat uname -a とするとカーネルは同じに見える

  7. docker run -t -i ubuntu:14.04 /bin/bash でシェルに入る(tty/interactive)

  8. 新しいコンテナを立ち上げると別のコンテナでの操作は見えない

  9. docker run -d -p 80:5000 コンテナ名 で外と中をマッピングして導通確認

  10. docker ps で状態確認 -aで停止中のコンテナも表示

  11. docker stop / start の紹介

  12. docker commitでイメージ化(IDを指定)

  13. docker pushでレポジトリへ追加する

  14. 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は日本語の参考書も出ています。勉強しておいた方が良いと思います

オープンソース・クラウド基盤 OpenStack入門 構築・利用方法から内部構造の理解まで
中井悦司 中島倫明
KADOKAWA/アスキー・メディアワークス
売り上げランキング: 33,738


 シェアして頂けると嬉しいです

参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。