Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

OCXの便利なところ 1. OCXNW接続用の機器を用意する 2. ポータルサイトから購入 3. 構内配線の準備手配 これだけでOCXを利用可能! ① ② ③ データセンター 所有ラック

Slide 5

Slide 5 text

OCXの裏側 1. 構内配線がされる 2. Linkup確認&開通設定 リソースとして使用可能に! データセンター 所有ラック OCXラック ① ② OCX側の機器がLinkupを検知 ↓ PhysicalPortとして利用可能になるように設定

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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として利用可能 になるように設定 文字列をこねて投稿

Slide 9

Slide 9 text

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として利用可能 になるように設定

Slide 10

Slide 10 text

ありがたいサポート 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として利用可能 になるように設定

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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