Share
Embed
Transcript
32 slides
-
Interop Tokyo 2016 1. はじめに 2. ネットワーク自動化をやってみた話 3. REST APIの話
4. 苦労したポイントとわかったこと 5. おわりに Agenda -
自己紹介 Interop Tokyo 2016 アドテク本部のインフラエンジニア。 主にオンプレのネットワーク(物理/仮想)および OpenStackの一部を担当。 • SDN Japan
2016 アドテクに必要なSDN • 「ネットワークを監視するZabbixの活用事例」 • Mellanox@Interop Tokyo 2015 など https://speakerdeck.com/komeiy/ プロフィール@komeinw -
アドテク本部のインフラついて Interop Tokyo 2016 https://www.cyberagent.co.jp/ir/personal/adtech/adtech_05/ 広告に関する多数のプロダクトが存在。 アドテクと一言で表現していますが、その 中の各プロダクトではそれぞれ別の役割を 持ったシステムが稼働しています。 アドテク本部のインフラとしては、各プロ
ダクトのサービスに合わせて柔軟かつス ピードをもったインフラを提供すべくパブ リック・プライベートから最適なインフラを提 供しています。 -
SDNで解決? Interop Tokyo 2016 SDNとは、コンピュータネットワークを構成する通信機器を単一のソフトウェアによって集中的に制御し、ネットワークの 構造や構成、設定などを柔軟に、動的に変更することを可能とする技術の総称。 また、そのような技術により、ネットワークの装置の配置や配線などの物理的構成とはある程度独立に、目的に応じて 複数の仮想的なネットワークを構築することや、そのようにして構築されたネットワークのこと。これは「ネットワーク仮想 化」とも呼ばれ、厳密にはSDNの応用の一つであり、また、SDNによらず別の技術によって実現する手法もあるため、 SDNそのものとは区別する必要がある。
出展: http://e-words.jp/w/SDN.html ざっくりまとめると、いわゆるSDNコントローラに相当するもの がプライベートクラウド基盤のデータベースと連携して動的に 仮想的に作られたネットワークの設定を実行 -
弊社のネットワーク構成 Interop Tokyo 2016 • SDN な環境はある。 新たに作った一部の環境で採用 • 必要に応じてその時々で最適なハードウェアを選択し採用している
• 採用しているハードウェアについてはマルチベンダーで構成 なるべくオープンな技術でSDNな環境と そうでない環境の両方をケアする必要 がある -
Software Defined ではないネットワークのお仕事 • VLAN追加/変更 • ルーティング追加/変更 • ロードバランサー設定追加 •
ACL追加 • トラフィック確認 • VPNユーザ追加/変更 Interop Tokyo 2016 • 増強などの構成変更 • 新技術の検証 • トラブルシュート • 構成管理 • ベンダーコントロール etc… エンジニアとしては、 ここに注力したい -
何を作った?どんな効果? • 公開用API Gateway • AWS CLIやgsutilみたいなコマンドの提供 Interop Tokyo 2016
• 少人数での運用をカバー • 新規サービスの立ち上げスピードを損なわない仕組み • つまらない作業は極力やりたくない ダメ。作業ミス、リリース日への影響、エンジニアのモチベーション低下 この二つがあれば自動化・セルフサービス化は促進できる -
Interop Tokyo 2016 プライベートクラウドの操作イメージ • 学習コストが低い(アプリケーションの開発者が 各製品固有のコマンドを覚える必要がない) • 簡単にJOBに組み込んだりすることが可能 •
思い立ったときにすぐインフラの操作ができる こんな感じでのルータ・スイッチ・ロードバ ランサー、Neutronの設定ができる。 Regionの概念も持たせています -
Interop Tokyo 2016 サービスメニュー • 新規サービスが立ち上がるごとに増えるもの や操作するものを基本に構成 • 基幹系の作業は特定のユーザ権限のみでし か触れないように制御
• サービスメニューは右記以外にも複数存在 • DC内のローカルレポジトリから配布 -
構成イメージと使用技術 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を抽象化 -
REST APIの話 Interop Tokyo 2016 • エラー処理が楽 • ヒューマンエラーさようならに近づく •
ネットワークエンジニア以外でも操作しやすい • 構成管理は苦手 • 適材適所で使いましょう アプリケーションプログラミングインタフェース (API、英: Application Programming Interface) とは、ソフトウェアコンポーネントが互いにやりと りするのに使用するインタフェースの仕様である。 APIには、サブルーチン、データ構造、オブジェクトクラス、変数などの仕様が含まれる。 出展:API - ウィキペディア https://ja.wikipedia.org/wiki/アプリケーションプログラミングインタフェース -
Interop Tokyo 2016 • グラフィカルな部分はChatでできるようにして おくと以外と便利。 • “頼まれる側” も ”頼む側”
に取ってもストレス フリー • 他にも可視化と簡単なプロビジョンで活用 • Jobに組み込んだりする可能性があるものは、 CLIないしはAPIで提供した方がよい API化するとChatOpsが楽になる -
苦労したポイント Interop Tokyo 2016 • APIなしの機器を操作する場合、expectで対応せざるを得ない →処理が途中で止まるとか・・・ 負担にならない程度のエラー処理を。 • 問題があった時の切り分けをどうするか
→ Debugオプションを実装。Client側で取れるように。 APIのエラーコードとメッセージをクライアント側へ出力 • REST APIの設計 → 素人がやったので汚い。苦労した方が良かったポイント。 後悔。 -
わかったこと Interop Tokyo 2016 • 権限周りは自分で作ったほうがいい → 各機器の機能差を吸収する必要あり • 商用に頼りすぎてベンダーロックインにならないよう注意
→ コントローラー乱立もちょっと・・・ • でも自作で属人化にも注意。エンジニアに一定のレベルを → チーム開発できる環境を -
まとめ 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.