Share
Embed
Transcript
18 slides
-
4%/+BQBO 1. はじめに ~∼会社紹介と今回のテーマ〜~ 2. ネットワーク⾃自動化(?)をやってみた話 3. REST APIの話 4.
苦労したポイントとわかったこと 5. おわりに Agenda -
サイバーエージェントについて 1998年年の創業以来、インターネットを軸に事業を展開し 現在では代表的なサービスである「Ameba」をはじめ、 スマートフォン向けに多数のコミュニティサービスやゲームを 提供しています。 アドテク本部とは インターネット広告において、広告配信の最適化やメディアの収益最⼤大化と いう観点からアドテクノロジーの重要度度が⾼高まっています。 サイバーエージェントではアドテクノロジー分野における これらのサービスについて各⼦子会社を通じ開発しておりましたが、
各サービスの開発部⾨門を横断して組織化する専⾨門部署として アドテク本部が設⽴立立されました。 4%/+BQBO -
⾃自⼰己紹介 4%/+BQBO アドテク本部のインフラエンジニア。 主にオンプレのネットワーク(物理理/仮想)を担当。 • 「ネットワークを監視するZabbixの活⽤用事例例」 • Mellanox@Interop Tokyo
2015 など https://speakerdeck.com/komeiy/it-‐‑‒infra-‐‑‒summit-‐‑‒2014-‐‑‒ network-‐‑‒zabbix プロフィール@komeinw -
⼀一般的なネットワークのお仕事 • VLAN追加/変更更 • ルーティング追加/変更更 • ロードバランサー設定追加 • ACL追加 •
トラフィック確認 • VPNユーザ追加/変更更 4%/+BQBO • 増強などの構成変更更 • 新技術の検証 • トラブルシュート • 構成管理理 etc… ここに注⼒力力したい -
コンセプト • ⾃自動化というよりセルフサービス化 • AWS CLI や gsutil みたいな感じ 4%/+BQBO
• 少⼈人数で運⽤用してるから • 新規サービスの⽴立立ち上げスピードを損なわないため • つまらない作業は極⼒力力やりたくない ダメ!! 作業ミス、リリース⽇日への影響、エンジニアのモチベーション低下 なんで? -
4%/+BQBO 操作イメージと効果 • 学習コストが低い(アプリケーションの開発者が 固有のコマンド・GUI操作を覚える必要がない) • 簡単にJOBに組み込んだりすることが可能 • 思い⽴立立ったときにすぐインフラの操作ができる ͜Μͳײ͡ͰͷϧʔλɾεΠο
νɾϩʔυόϥϯαʔɺNeutron ͳͲ༷ʑͳઃఆ͕Ͱ͖Δɻ Regionͷ֓೦͍࣋ͨͤͯ·͢ -
ߏΠϝʔδͱ༻ٕͨ͠ज़ 4%/+BQBO • ⾔言語 Python
Shell Script • ソフトウェア Flask Nginx Gunicorn その他 ・構成管理理ツール Ansible "1*4FSWFS ग़లɿIUUQTE[POFDPNBSUJDMFTMFBSOQZUIPOPWFSUBLFTMFBSOKBWB -FBSO1ZUIPO0WFSUBLFT-FBSO+BWBPO(PPHMF 5SFOET ೝՄɾೝূ 3&45"1* 3&45"1* 44) -
その他 4%/+BQBO • ⼀一般的なWEBサーバと同様に ヘルスチェック⽤用のURLを 使って分散/冗⻑⾧長 • 操作履履歴はAPI Server側で簡 易易取得
• VLAN変更更などはAnsibleとか Chefでまとめたい(障壁あ り) • CI的な観点では、Develop⽤用ブランチでつけたTagを監視して Act/Stbをローリングアップデート • テストをした上で本番へ組み込む -
Chatも活⽤用した⽅方が良良い 4%/+BQBO • グラフィカルな部分はChatで完結でき るようにしておくと意外と便便利利 • “頼まれる側”も “頼む側” に取ってもス トレスフリー
• 他の可視化や簡単なデプロイ⽤用途で活 ⽤用 -
REST APIͷ 4%/+BQBO • REST APIってエラー処理理が楽 • ヒューマンエラーさようなら(に近づく) • ネットワークエンジニア以外でも理理解しやすい
• 監視装置は情報の宝庫 • 構成管理理は苦⼿手 • 適材適所で使いましょう アプリケーションプログラミングインタフェース (API、英: Application Programming Interface) とは、 ソフトウェアコンポーネントが互いにやりとりするのに使⽤用するインタフェースの仕様である。 APIには、サブルーチン、データ構造、オブジェクトクラス、変数などの仕様が含まれる。 出展 https://ja.wikipedia.org/wiki/アプリケーションプログラミングインタフェース -
苦労したポイント 4%/+BQBO • APIなしの機器を操作する場合、expectで対応せざるを得ない →処理理が途中で⽌止まるとか・・・ 負担にならない程度度のエラー処理理を。 • 問題があった時のDebugをどうするか → Debugオプションを実装。Client側で取れるように。
APIのエラーコードとメッセージをクライアント側へ出⼒力力 • REST APIの設計 → 素⼈人がやったので汚い。苦労した⽅方が良良かったポイント。 後悔。 -
わかったこと 4%/+BQBO • 権限周りは⾃自分で作ったほうがいい → 各機器の機能差を吸収する必要あり • 商⽤用に頼りすぎてベンダーロックインにならないよう注意 → コントローラー乱⽴立立もちょっと・・・
• でも⾃自作で属⼈人化にも注意。エンジニアに⼀一定のレベルを → チーム開発できる環境を NWエンジニアの世界は狭いかもしれない こうやって学んだことは⾊色々応⽤用できるので スキルアップの観点でもGood! -
おわりに 4%/+BQBO • REST APIの設計はメーカにより設計の質が異異なる • REST APIもAnsibleなどの構成管理理も適材適所 • SDN
/ NFVは別のモチベーションがあってアプローチ。 Overlay! 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.