Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Interop2016_SDI_OpenStage-アドテクに必要なSDN_NFV_ca_ya...

komeinw
June 13, 2016

 Interop2016_SDI_OpenStage-アドテクに必要なSDN_NFV_ca_yamamamoto.pdf

komeinw

June 13, 2016
Tweet

More Decks by komeinw

Other Decks in Technology

Transcript

  1. Interop Tokyo 2016 1. はじめに 2. ネットワーク自動化をやってみた話 3. REST APIの話

    4. 苦労したポイントとわかったこと 5. おわりに Agenda
  2. 自己紹介 Interop Tokyo 2016 アドテク本部のインフラエンジニア。 主にオンプレのネットワーク(物理/仮想)および OpenStackの一部を担当。 • SDN Japan

    2016 アドテクに必要なSDN • 「ネットワークを監視するZabbixの活用事例」 • Mellanox@Interop Tokyo 2015   など https://speakerdeck.com/komeiy/ プロフィール@komeinw
  3. 弊社のネットワーク構成 Interop Tokyo 2016 • SDN な環境はある。 新たに作った一部の環境で採用 • 必要に応じてその時々で最適なハードウェアを選択し採用している

    • 採用しているハードウェアについてはマルチベンダーで構成 なるべくオープンな技術でSDNな環境と そうでない環境の両方をケアする必要 がある
  4. Software Defined ではないネットワークのお仕事 • VLAN追加/変更 • ルーティング追加/変更 • ロードバランサー設定追加 •

    ACL追加 • トラフィック確認 • VPNユーザ追加/変更 Interop Tokyo 2016 • 増強などの構成変更 • 新技術の検証 • トラブルシュート • 構成管理 • ベンダーコントロール etc… エンジニアとしては、 ここに注力したい
  5. 何を作った?どんな効果? • 公開用API Gateway • AWS CLIやgsutilみたいなコマンドの提供 Interop Tokyo 2016

    • 少人数での運用をカバー • 新規サービスの立ち上げスピードを損なわない仕組み • つまらない作業は極力やりたくない ダメ。作業ミス、リリース日への影響、エンジニアのモチベーション低下 この二つがあれば自動化・セルフサービス化は促進できる
  6. Interop Tokyo 2016 プライベートクラウドの操作イメージ • 学習コストが低い(アプリケーションの開発者が  各製品固有のコマンドを覚える必要がない) • 簡単にJOBに組み込んだりすることが可能 •

    思い立ったときにすぐインフラの操作ができる こんな感じでのルータ・スイッチ・ロードバ ランサー、Neutronの設定ができる。 Regionの概念も持たせています
  7. 構成イメージと使用技術 Interop Tokyo 2016 • 言語 Python Shell Script •

    ソフトウェア   Flask Nginx Gunicorn その他 API Server 出展:https://dzone.com/articles/learn-python-overtakes-learn-java "Learn Python" Overtakes "Learn Java" on Google Trends 認可・認証 REST API REST API REST API SSH command 他には ・・・ リージョンごとに NWを抽象化
  8. REST APIの話 Interop Tokyo 2016 • エラー処理が楽 • ヒューマンエラーさようならに近づく •

    ネットワークエンジニア以外でも操作しやすい • 構成管理は苦手 • 適材適所で使いましょう アプリケーションプログラミングインタフェース (API、英: Application Programming Interface) とは、ソフトウェアコンポーネントが互いにやりと りするのに使用するインタフェースの仕様である。 APIには、サブルーチン、データ構造、オブジェクトクラス、変数などの仕様が含まれる。 出展:API - ウィキペディア https://ja.wikipedia.org/wiki/アプリケーションプログラミングインタフェース
  9. Interop Tokyo 2016 • グラフィカルな部分はChatでできるようにして おくと以外と便利。 • “頼まれる側” も ”頼む側”

    に取ってもストレス フリー • 他にも可視化と簡単なプロビジョンで活用 • Jobに組み込んだりする可能性があるものは、 CLIないしはAPIで提供した方がよい API化するとChatOpsが楽になる
  10. 苦労したポイント Interop Tokyo 2016 • APIなしの機器を操作する場合、expectで対応せざるを得ない   →処理が途中で止まるとか・・・    負担にならない程度のエラー処理を。 • 問題があった時の切り分けをどうするか

      → Debugオプションを実装。Client側で取れるように。     APIのエラーコードとメッセージをクライアント側へ出力 • REST APIの設計   → 素人がやったので汚い。苦労した方が良かったポイント。     後悔。
  11. わかったこと Interop Tokyo 2016 • 権限周りは自分で作ったほうがいい   → 各機器の機能差を吸収する必要あり • 商用に頼りすぎてベンダーロックインにならないよう注意

      → コントローラー乱立もちょっと・・・ • でも自作で属人化にも注意。エンジニアに一定のレベルを   → チーム開発できる環境を
  12. まとめ Interop Tokyo 2016 OpenStackにネットワークを追従させることは可能 少しの工夫でネットワークの運用を変えるができる 5分の手作業より15分でコードを書きましょう(そんな時代?) Automation is the

    new skillset that network engineers need to pick up. Much like sysadmins have had to learn how to use new tools like Chef and Puppet, network engineers are learning that they just can't do things manually anymore. With examples in each chapter, this practical book provides you with baseline skills in network programmability and automation, using a range of technologies including Linux, Python, JSON, and XML. No previous knowledge of software development, programming, automation, or DevOps is required.