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

新卒でもできることはある! 〜OCX自動化奮闘記〜 /newcommer working with ocx automation in bbsakura

新卒でもできることはある! 〜OCX自動化奮闘記〜 /newcommer working with ocx automation in bbsakura

2023-02-16 BBSakura公開社内勉強会 Vol. 1 で発表の資料共有です。
新卒として自動化業務に携わった時のお話です。

BBSakura Networks, Inc

February 21, 2023
Tweet

More Decks by BBSakura Networks, Inc

Other Decks in Technology

Transcript

  1. 新卒でもできることはある!
    〜OCX自動化奮闘記〜
    2023/02/16四半期会議 公開社内勉強会
    BBSakura Networks 株式会社 秋山正道

    View full-size slide

  2. 自己紹介
    ● 秋山正道
    ● 2022年7月から新卒入社
    ● 学生の時はロボットとかAIとか
    ● OCX開発グループでOCXを栽培してます
    ● OCXで自動化バッチを作ったりしたので、
    本日はその様子についてお話します

    View full-size slide

  3. OCXとは
    クラウドサービスやデータセンターに接続する閉域網をオンデマンドで構築!

    View full-size slide

  4. OCXの便利なところ
    1. OCXNW接続用の機器を用意する
    2. ポータルサイトから購入
    3. 構内配線の準備手配
    これだけでOCXを利用可能!



    データセンター
    所有ラック

    View full-size slide

  5. OCXの裏側
    1. 構内配線がされる
    2. Linkup確認&開通設定
    リソースとして使用可能に!
    データセンター
    所有ラック OCXラック


    OCX側の機器がLinkupを検知

    PhysicalPortとして利用可能になるように設定

    View full-size slide

  6. かつては開通を支える妖精さんがいた
    PhysicalPort
    ID: 1  Status: 開通待ち  ポート: Ethernet1
    ID: 2  Status: 開通待ち  ポート: Ethernet3
    ID: 5  Status: 開通待ち  ポート: Ethernet7
    # show interface Ethernet1
    # show interface Ethernet3
    # show interface Ethernet7
    まだLinkupしてないな...

    View full-size slide

  7. 開通までタイムラグがあるという声
    ● Linkup準備ができてから開通まで1営業日かかっていた
    ● Linkup準備ができていなかった場合、知るのにも時間がかかる
    ● 開通待ちのPhysicalPortが増えるほど、管理が大変になる
    開通待ちのPhysicalPortが増えており、早急に自動化をしたかった
    →スピード重視で自動化の開発を行いたい

    View full-size slide

  8. PhysicalPort自動開通化
    スイッチ用に提供されたライブラリでバッチからCLI実行、
    返答を文字列で受け取れる!
    楽さ優先で強引に改行(¥n)でparse
    #show interfaces eth1
    Ethernet1 is up, line protocol is up (connected)
    Hardware is Ethernet, address is …
    Description: **********
    Ethernet MTU 1504 bytes , BW 10000000 kbit
    Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a
    Up 127 days, 8 hours, 37 minutes, 54 seconds
    Loopback Mode : None

    文字列
    CLIコマンド
    バッチ処理
    PhysicalPortとして利用可能
    になるように設定
    文字列をこねて投稿

    View full-size slide

  9. Tranceiver情報の取得
    tranceiver情報も必要だがparseでは欲しい値が取れなさそう
    #show interfaces Ethernet1 transceiver
    If device is externally calibrated, only calibrated values are
    printed.
    N/A: not applicable, Tx: transmit, Rx: receive.
    mA: milliamperes, dBm: decibels (milliwatts).
    Bias Optical Optical
    Temp Voltage Current Tx Power Rx Power
    Port (Celsius) (Volts) (mA) (dBm) (dBm) Last Update
    ----- --------- -------- -------- -------- -------- -------------------
    Et1 30.02 3.32 7.19 -2.33 -2.49 0:00:01 ago
    CLIコマンド
    文字列
    文字列をこねて投稿
    バッチ処理
    PhysicalPortとして利用可能
    になるように設定

    View full-size slide

  10. ありがたいサポート
    tranceiver情報がcsv出力可能だったので、あとは強引に改行(,)でparse
    string配列のインデックス指定
    #show interfaces Ethernet1 transceiver csv
    Last Update,Port (Interface Name),Xcvr Serial Number,Media type,Temperature
    (Celsius),Voltage (Volts),Current (mA),Tx Power (dBm),Rx Power (dBm)
    0:00:00 ago,Et1,XHN194604118,10GBASE-SR,30.27,3.32,7.19,-2.33,-2.49
    文字列
    CLIコマンド
    文字列をこねて投稿
    バッチ処理
    PhysicalPortとして利用可能
    になるように設定

    View full-size slide

  11. 欠点と対策
    欠点:
    ● OSのアップデートやマルチベンダによって
    文字列の形式が変わると機能しない
    ● slackでエラー通知を入れて少しでも対策
    文字列
    文字列をこねて投稿
    CLIコマンド
    バッチ処理
    PhysicalPortとして利用可能
    になるように設定

    View full-size slide

  12. ミス購入キャンセル機能がリリース
    2/15にリリースされた新機能

    View full-size slide

  13. いわゆる返品機能が欲しいという声
    ● リソース作成時に不具合が出たら、消して新しく正しいものを作りたい
    ● 請求の問い合わせ等が必要でなかなか簡単にリソース作り直せない
    ● 削除しただけで請求も調整されると嬉しい
    ● リソース作成時に誤った設定を入れてしまってもキャンセルできる
    新機能により間違った課金情報が入ると調整のために労力が増える
    →慎重に進めたいので、なるべく簡潔な仕組みにしたい

    View full-size slide

  14. かつては請求処理を支える妖精さんがいた
    請求処理の問い合わせ
    請求データを手動で削除
    ポータルサイトから購入
    請求データがDBに登録される
    事務処理等もあ
    るよ

    View full-size slide

  15. 従来の購入時フロー
    APIサーバー
    API
    リクエスト
    ポータルサイト
    機器への設定
    請求情報をDB登録
    請求情報DB

    View full-size slide

  16. キャンセルが入るとややこしくなる
    多様な請求情報が入るようになると管理が難しくなる
    これはキャンセル可能リソースの購入 →キャンセル...
    これはキャンセル不可リソースの購入 →更新→削除...
    これはキャンセル可能リソースの購入 →更新→削除...
    これはリソースの購入 →更新→削除...
    これはリソースの購入 →更新→削除...
    リソースの購入、更新、削除だけ!

    View full-size slide

  17. ミス購入キャンセル自動化
    APIサーバー
    API
    リクエスト
    ポータルサイト
    機器への設定
    請求情報の管理のみが変わるので、
    従来通りリソースはすぐに利用できる
    バッチ処理 請求情報DB
    請求情報を一時的に保管する
    DBを用意し、キャンセルの期
    限を超えたデータのみをバッチ
    でDBに登録する

    View full-size slide

  18. ユーザーの声から日々成長するOCX
    ● Linkupを自動検知し、3時間程度で自動開通
    ● 72時間以内のリソース削除については減免処理が自動で入る
    ● 最近は毎月リリースが入っていて成長期
    ● ユーザーの要望に応えるのは楽しい

    View full-size slide