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

ネットワークエンジニアこそGASを覚えた方がよいと思った話 / network-engineer-gas

komeinw
January 12, 2018

ネットワークエンジニアこそGASを覚えた方がよいと思った話 / network-engineer-gas

komeinw

January 12, 2018
Tweet

More Decks by komeinw

Other Decks in Technology

Transcript

  1. ネットワークエンジニア
    こそGASを覚えるべきと思っ
    た話
    CyberAgent アドテク本部
    山本 孔明

    View Slide

  2. ❏ 山本 孔明
    アドテク本部のインフラ組織所属のエンジニア
    今はプライベートクラウドチームのリーダーをやっていま

    主な業務
    ● オンプレとパブリックのネットワーク(物理/仮想)
    ● OpenStack / CircleCI / Aritifactory ...etc
    ● チームマネジメント
    自己紹介

    View Slide

  3. アドテク本部について
    インターネット広告において、広告配信の最適化やメディアの収益最大化という観点から
    アドテクノロジーの重要度が高まっています。
    サイバーエージェントではアドテクノロジー分野における
    これらのサービスについて各子会社を通じ開発しておりましたが、
    各サービスの開発部門を横断して組織化する専門部署として
    アドテク本部が設立されました。

    View Slide

  4. サイバーエージェントのアドテク
    詳細は「日本一やさしいアドテク教室」を御覧ください!
    https://www.cyberagent.co.jp/ir/personal/adtech/adtech_01/

    View Slide

  5. ポート表の作成ってめんどくさい・・・
    ● モデルごとに違うポート番号
    ● ディスクリプションに書いてあることを転記する無駄感
    ● スイッチの VLAN 変えたらポート表を変えないといけない二度手間感
    ● 更新を何回か忘れて管理が事実上崩壊
    そもそもポート表を作るのが本質ではない・・・!!

    View Slide

  6. で、どうする?
    ● Ansible で管理すればいいのでは?
    ○ ios_config 並べるみたいな管理を全メーカーやる・・・?
    ○ ( 割とありかもしれない )
    ● GitHub にコンフィグを自動でアップしておけばいいのでは?
    ○ 簡単だけどネットワークエンジニア以外の可読性がいまいち問題
    ○ ( 便利っちゃ便利なので活用はしている )
          そういえば、ポート表を自動生成する方法はないのかな?

    View Slide

  7. Ansible 2.4の話
    Ansible 2.4 でネットワークプログラマビリティな運用を考える
     https://adtech.cyberagent.io/techblog/archives/3801
    ● parse_cli_textfsm + ntc-templates がスーパー便利
    ● ios_command などで各メーカーの
    ネットワーク機器を操作するのは割と楽
    ● json で情報取れるので加工しやすい

    View Slide

  8. あ、Databaseに入れちゃえば
    いいんじゃない??

    View Slide

  9. Databaseに入れることで
    ● いろんな場面で二次利用できる
    ● フロントに Redash 使ったりして可視化が楽
    ● スプレッドシート使えばまさにポート表いらない
    ファイル共有のしやすさ、同時編集などを考えると CSV よりスプレッドシートがおすすめ。

    View Slide

  10. 構成概要
    MySQL
    Switch
    Jenkins



    定期取得

    View Slide

  11. GAS (Google App Script) について
    ● JavaScript をベースにしている
    ● カレンダーやスプレッドシートなど多数の Google Apps を操作可能
    ● マニュアルがしっかりしている
    ● こういうレベルの活用なら学習コストが意外と低い
    Let’s Try GAS!!

    View Slide

  12. 結構簡単にできちゃう
    ● DB に接続してテーブル作る例
    SQL そのまんま !!

    View Slide

  13. 今回GASでやること
    ● DB に接続
    ● 任意のテーブルを select する
    ● 目的のシートに書き出す
    すごく Simple !!

    View Slide

  14. 今回GASでやること
    ● DB に接続
    ○ var conn = Jdbc.getConnection(dbUrl, user, userPwd);
    ○ var stmt = conn.createStatement();
    ● 任意のテーブルを select する
    ○ var result = stmt.executeQuery(sql);
    ● 目的のシートに書き出す
    ○ var sheet = SpreadsheetApp.getActiveSheet();
    ○ var cell = sheet.getRange('A1');
    ○ cell.offset(row, 0).setValue(results.getString(1));
    やっぱり Simple !!

    View Slide

  15. 技術的なハードルは
    意外と低い?

    View Slide

  16. まとめ
    ● とりあえず DB へ入れておくとなにかと便利
    ● フロントにはスプレッドシートがおすすめ
    ● この用途なら GAS はそんなに難しくない
    ● 自動化するコストとポート表にかけてるコストと要相談
    プライベートクラウドでそもそも
    ポート表に管理コストそんなにか
    かってない疑惑・・・。

    View Slide