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

B722d457f803a630f3c55429b526510b?s=47 komeinw
June 13, 2016

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

B722d457f803a630f3c55429b526510b?s=128

komeinw

June 13, 2016
Tweet

Transcript

  1. アドテクに必要なSDN/NFV サイバーエージェント アドテク本部 山本 孔明 @Interop Tokyo 2016

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

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

    2016 アドテクに必要なSDN • 「ネットワークを監視するZabbixの活用事例」 • Mellanox@Interop Tokyo 2015   など https://speakerdeck.com/komeiy/ プロフィール@komeinw
  4. サイバーエージェントについて 1998年の創業以来、インターネットを軸に事業を展開し 現在では代表的なサービスである「Ameba」をはじめ、 スマートフォン向けに多数のコミュニティサービスやゲームを提供しています。 アドテク本部とは インターネット広告において、広告配信の最適化やメディアの収益最大化という観点から アドテクノロジーの重要度が高まっています。 サイバーエージェントではアドテクノロジー分野におけるこれらのサービスについて 各子会社を通じ開発しておりましたが、各サービスの開発部門を横断して組織化する専門部署としてアドテク 本部が設立されました。

    Interop Tokyo 2016
  5. None
  6. アドテク本部のインフラついて Interop Tokyo 2016 https://www.cyberagent.co.jp/ir/personal/adtech/adtech_05/  広告に関する多数のプロダクトが存在。 アドテクと一言で表現していますが、その 中の各プロダクトではそれぞれ別の役割を 持ったシステムが稼働しています。  アドテク本部のインフラとしては、各プロ

    ダクトのサービスに合わせて柔軟かつス ピードをもったインフラを提供すべくパブ リック・プライベートから最適なインフラを提 供しています。
  7. サイバーエージェントのアドテク 詳細は「日本一やさしいアドテク教室」を御覧ください! https://www.cyberagent.co.jp/ir/personal/adtech/adtech_01/ Interop Tokyo 2016

  8. Interop Tokyo 2016 今日は主にオンプレ環境の お話をします

  9. 求められるネットワークって? Interop Tokyo 2016 Not 手作業 but 自動化

  10. Interop Tokyo 2016 自動化? セルフサービス化? 求められるネットワークって?

  11. SDNで解決? Interop Tokyo 2016  SDNとは、コンピュータネットワークを構成する通信機器を単一のソフトウェアによって集中的に制御し、ネットワークの 構造や構成、設定などを柔軟に、動的に変更することを可能とする技術の総称。  また、そのような技術により、ネットワークの装置の配置や配線などの物理的構成とはある程度独立に、目的に応じて 複数の仮想的なネットワークを構築することや、そのようにして構築されたネットワークのこと。これは「ネットワーク仮想 化」とも呼ばれ、厳密にはSDNの応用の一つであり、また、SDNによらず別の技術によって実現する手法もあるため、 SDNそのものとは区別する必要がある。

    出展: http://e-words.jp/w/SDN.html ざっくりまとめると、いわゆるSDNコントローラに相当するもの がプライベートクラウド基盤のデータベースと連携して動的に 仮想的に作られたネットワークの設定を実行
  12. 弊社のネットワーク構成 Interop Tokyo 2016 • SDN な環境はある。 新たに作った一部の環境で採用 • 必要に応じてその時々で最適なハードウェアを選択し採用している

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

    ACL追加 • トラフィック確認 • VPNユーザ追加/変更 Interop Tokyo 2016 • 増強などの構成変更 • 新技術の検証 • トラブルシュート • 構成管理 • ベンダーコントロール etc… エンジニアとしては、 ここに注力したい
  14. ネットワークエンジニアの悩み Interop Tokyo 2016 「ACL追加してほしいんだけど。今日」 「VPNユーザって今誰が登録されてましたっけ?」 「トラフィックっていまどのくらい出てます?」 面倒に思ったり後回しにしたと思いながら作業した 経験はありませんか??

  15. 仕組み的によくないので、 SDNではない環境でも 楽な運用にしたい (全部SDNなら・・・ボ ソ)

  16. ということで、作ってみました。 Interop Tokyo 2016

  17. 何を作った?どんな効果? • 公開用API Gateway • AWS CLIやgsutilみたいなコマンドの提供 Interop Tokyo 2016

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

    思い立ったときにすぐインフラの操作ができる こんな感じでのルータ・スイッチ・ロードバ ランサー、Neutronの設定ができる。 Regionの概念も持たせています
  19. Interop Tokyo 2016 サービスメニュー • 新規サービスが立ち上がるごとに増えるもの や操作するものを基本に構成 • 基幹系の作業は特定のユーザ権限のみでし か触れないように制御

    • サービスメニューは右記以外にも複数存在 • DC内のローカルレポジトリから配布
  20. 構成イメージと使用技術 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を抽象化
  21. なぜREST APIを 採用したのか Interop Tokyo 2016

  22. REST APIの話 Interop Tokyo 2016 • エラー処理が楽 • ヒューマンエラーさようならに近づく •

    ネットワークエンジニア以外でも操作しやすい • 構成管理は苦手 • 適材適所で使いましょう アプリケーションプログラミングインタフェース (API、英: Application Programming Interface) とは、ソフトウェアコンポーネントが互いにやりと りするのに使用するインタフェースの仕様である。 APIには、サブルーチン、データ構造、オブジェクトクラス、変数などの仕様が含まれる。 出展:API - ウィキペディア https://ja.wikipedia.org/wiki/アプリケーションプログラミングインタフェース
  23. Interop Tokyo 2016 Chatで話かけると・・・ SVI / VLAN作成、LB設定、Neutron設定、テスト、テスト環境削除 までの一連の流れを実施。結果はChatで通知。 API化するとChatOpsが楽になる

  24. Interop Tokyo 2016 API化するとChatOpsが楽になる

  25. Interop Tokyo 2016 • グラフィカルな部分はChatでできるようにして おくと以外と便利。 • “頼まれる側” も ”頼む側”

    に取ってもストレス フリー • 他にも可視化と簡単なプロビジョンで活用 • Jobに組み込んだりする可能性があるものは、 CLIないしはAPIで提供した方がよい API化するとChatOpsが楽になる
  26. Interop Tokyo 2016 世間一般のSDNとは違うけど、 これも一つの Software Defined Network

  27. 苦労したポイント Interop Tokyo 2016 • APIなしの機器を操作する場合、expectで対応せざるを得ない   →処理が途中で止まるとか・・・    負担にならない程度のエラー処理を。 • 問題があった時の切り分けをどうするか

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

      → コントローラー乱立もちょっと・・・ • でも自作で属人化にも注意。エンジニアに一定のレベルを   → チーム開発できる環境を
  29. まとめ 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.
  30. サイバーエージェント アドテク本部 Tech Blog 始めました! Interop Tokyo 2016 http://adtech.cyberagent.io/techblog/ 一緒にアドテク本部を盛り上げてくれる方

    絶賛募集中です
  31. なにかご質問があればお願いします Q and A Interop Tokyo 2016

  32. アドテクに必要なSDN/NFV サイバーエージェント アドテク本部 山本 孔明 @Interop Tokyo 2016 ご清聴ありがとうございました!