2023-02-16 BBSakura公開社内勉強会 Vol. 1 で発表の資料共有です。 新卒として自動化業務に携わった時のお話です。
新卒でもできることはある!〜OCX自動化奮闘記〜2023/02/16四半期会議 公開社内勉強会BBSakura Networks 株式会社 秋山正道
View Slide
自己紹介● 秋山正道● 2022年7月から新卒入社● 学生の時はロボットとかAIとか● OCX開発グループでOCXを栽培してます● OCXで自動化バッチを作ったりしたので、本日はその様子についてお話します
OCXとはクラウドサービスやデータセンターに接続する閉域網をオンデマンドで構築!
OCXの便利なところ1. OCXNW接続用の機器を用意する2. ポータルサイトから購入3. 構内配線の準備手配これだけでOCXを利用可能!①②③データセンター所有ラック
OCXの裏側1. 構内配線がされる2. Linkup確認&開通設定リソースとして使用可能に!データセンター所有ラック OCXラック①②OCX側の機器がLinkupを検知↓PhysicalPortとして利用可能になるように設定
かつては開通を支える妖精さんがいたPhysicalPortID: 1 Status: 開通待ち ポート: Ethernet1ID: 2 Status: 開通待ち ポート: Ethernet3ID: 5 Status: 開通待ち ポート: Ethernet7# show interface Ethernet1# show interface Ethernet3# show interface Ethernet7まだLinkupしてないな...
開通までタイムラグがあるという声● Linkup準備ができてから開通まで1営業日かかっていた● Linkup準備ができていなかった場合、知るのにも時間がかかる● 開通待ちのPhysicalPortが増えるほど、管理が大変になる開通待ちのPhysicalPortが増えており、早急に自動化をしたかった→スピード重視で自動化の開発を行いたい
PhysicalPort自動開通化スイッチ用に提供されたライブラリでバッチからCLI実行、返答を文字列で受け取れる!楽さ優先で強引に改行(¥n)でparse#show interfaces eth1Ethernet1 is up, line protocol is up (connected)Hardware is Ethernet, address is …Description: **********Ethernet MTU 1504 bytes , BW 10000000 kbitFull-duplex, 10Gb/s, auto negotiation: off, uni-link: n/aUp 127 days, 8 hours, 37 minutes, 54 secondsLoopback Mode : None…文字列CLIコマンドバッチ処理PhysicalPortとして利用可能になるように設定文字列をこねて投稿
Tranceiver情報の取得tranceiver情報も必要だがparseでは欲しい値が取れなさそう#show interfaces Ethernet1 transceiverIf device is externally calibrated, only calibrated values areprinted.N/A: not applicable, Tx: transmit, Rx: receive.mA: milliamperes, dBm: decibels (milliwatts).Bias Optical OpticalTemp Voltage Current Tx Power Rx PowerPort (Celsius) (Volts) (mA) (dBm) (dBm) Last Update----- --------- -------- -------- -------- -------- -------------------Et1 30.02 3.32 7.19 -2.33 -2.49 0:00:01 agoCLIコマンド文字列文字列をこねて投稿バッチ処理PhysicalPortとして利用可能になるように設定
ありがたいサポートtranceiver情報がcsv出力可能だったので、あとは強引に改行(,)でparsestring配列のインデックス指定#show interfaces Ethernet1 transceiver csvLast 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として利用可能になるように設定
欠点と対策欠点:● OSのアップデートやマルチベンダによって文字列の形式が変わると機能しない● slackでエラー通知を入れて少しでも対策文字列文字列をこねて投稿CLIコマンドバッチ処理PhysicalPortとして利用可能になるように設定
ミス購入キャンセル機能がリリース2/15にリリースされた新機能
いわゆる返品機能が欲しいという声● リソース作成時に不具合が出たら、消して新しく正しいものを作りたい● 請求の問い合わせ等が必要でなかなか簡単にリソース作り直せない● 削除しただけで請求も調整されると嬉しい● リソース作成時に誤った設定を入れてしまってもキャンセルできる新機能により間違った課金情報が入ると調整のために労力が増える→慎重に進めたいので、なるべく簡潔な仕組みにしたい
かつては請求処理を支える妖精さんがいた請求処理の問い合わせ請求データを手動で削除ポータルサイトから購入請求データがDBに登録される事務処理等もあるよ
従来の購入時フローAPIサーバーAPIリクエストポータルサイト機器への設定請求情報をDB登録請求情報DB
キャンセルが入るとややこしくなる多様な請求情報が入るようになると管理が難しくなるこれはキャンセル可能リソースの購入 →キャンセル...これはキャンセル不可リソースの購入 →更新→削除...これはキャンセル可能リソースの購入 →更新→削除...これはリソースの購入 →更新→削除...これはリソースの購入 →更新→削除...リソースの購入、更新、削除だけ!
ミス購入キャンセル自動化APIサーバーAPIリクエストポータルサイト機器への設定請求情報の管理のみが変わるので、従来通りリソースはすぐに利用できるバッチ処理 請求情報DB請求情報を一時的に保管するDBを用意し、キャンセルの期限を超えたデータのみをバッチでDBに登録する
ユーザーの声から日々成長するOCX● Linkupを自動検知し、3時間程度で自動開通● 72時間以内のリソース削除については減免処理が自動で入る● 最近は毎月リリースが入っていて成長期● ユーザーの要望に応えるのは楽しい