「走りながら作るネットワークテンプレートシステム」ってナンだ!?

こんにちは。企画編成委員の海野です。
JANOG47のDay2(1/28)に登壇するミクシィの小島さんに「走りながら作るネットワークテンプレートシステム」に取り組んだ経緯などをプログラム委員の大塚さんと一緒に話を聞きました。
当日の議論の一助になればと思ってニュースレターとして公開します。ご一読ください。

左上:ミクシィ小島さん / 右上:プログラム委員長:後藤 / 左下:担当プログラム委員 大塚 / 右下 企画編成委員:海野

実現したのはネットワークのモデル化

海野:従来の運用では何等か課題があって今回のアプローチとなっていると思うのですが、従来の課題は何だったのですか。

小島さん:⼿動オペレーションが中⼼で⾃動設定に⾄っていなかったので、⾃動化に取り組み始めました。ミクシィでは「定型業務が大量にある」というより「都度ちょっとずつ違う業務を行う」運用で、パターンを全て標準化するのは時間がかかります。Ansibleに例えれば、書き捨てのPlaybookを量産する感じになってしまいます。

別のポイントですが「手動オペレーションを許容したい」という思いがあります。ただ、この取り組みを始めてから可視化できたのですが、手動オペレーションによって入ってしまった設定ゆれが、思ってた以上に大量にありました。それも含めてチェックしたい。手動で設定したとしても、それがあるべき形に沿っていることを確認したいと考えています。

こういった理由で、「ネットワークをモデル化し、そこから完全なネットワーク設定を生成しよう」というアプローチになりました。将来的にはClosed loop automationを目指したいと思っていますが、今回作ったネットワークモデル = 「あるべき形の宣言」は、そこでも利用できると思っています。

まだまだ道半ばですが、最初の⼀歩としては⼗分な効果を得ることができたかなと…
効果や課題はプログラムの中でお話しできればと思います。

海野:そういえば、大塚さんのところも自動化取り組んでいると聞いていますが、どんな部分の自動化に取り組んでますか?

大塚:法人向けVPNサービスを担当しているのですが、手続きや設定投入に人手がかかっていたり、時間がかかる部分から自動化をしてます。

小島さん:その部分の自動化でどんな効果が得られてますか?

大塚:作業手順を作って、レビューして…等々、工数のかかる部分を短縮できているので、リードタイム短縮につながって、お客さんに良いサービスをより早く提供できるようになりました。

小島さん: 通信事業者とコンテンツ事業者でビジネス背景が違うので、課題やアプローチも変わってくるというのは興味深いですね。ミクシィの場合でも、ビジネス要件の変化に対応できる、柔軟だけどスピード感のあるインフラ運用を心がけています。

標準化しながら自動化したい&標準外も許容したい

海野:ビジネス背景も踏まえて、このシステムでここがイケてる!という部分を教えてください。

小島さん:がんばって取り組んだところは、モデル (.yaml) には⾃由記述欄 (ここポイント!) があって、とりあえず今の running-config をシステムに乗せられるようにした点です。 ⾃由記述もできるしコードから⽣成もできる、という感じのテンプレシステムにしたところですね。

例えていうと「今まで .txt で書いてたものを、MS word のマクロで生成しましょう!」というとき、

1. いったん .txt をまるっとコピペして .docx に書く

2. 1 と同じ結果になるようなマクロを書く → これが時間かかる

3. 2 書き切ったら完成

たとえですがこんな感じのテンプレートシステムになっています。 1 はすぐ終わる & 時間のかかる2をやってる最中もシステムが動いてる、というのが嬉しいポイントです。

大塚:自由記述欄があることで、標準化をするめる部分と、標準化が難しい部分の共存ができるわけですね!

「走りながら作った」からできた

海野:タイトルにある「走りながら作る」というのはどういうことですか?

小島さん:まず運用し始めること。「100%完成してから入れましょう」では時間がかかります。開発中にもネットワークは変化するからです。未完でも早くデプロイし、運用メンバーに見えるところで改善していくことで、メンバー全員がシステムとのかみ合わせを考えながら運用するようになりました。みんなで改善するスタイルに持っていけた感じです。
こういうところはほかの企業でも真似しやすく、失敗しにくいアプローチではないかと思っています。

大塚:とはいえ、小島さんがいるから開発できているシステムですか?どうしても属人的になりませんか?属人化も企業が自動化に取り組む際の課題によくあげられますが・・・

小島さん:言い出したのは私ですが、開発は私だけではなくて、インフラチームにコードかける人がいて、チームとして取り組んでいます。

Let’s discuss!!

大塚:端的にこのシステムの一番すごい部分は、「考え方+世界観」だと思います。アプリ側は宣言的な考え方が進んでいる思いますが、ネットワークにこのような考えを導入するのは素晴らしいと思いました。こういった考えを知ってもらいたいし、当日は私も議論に参加したいと思ってます。今から当日が楽しみです!

小島さん:今回の取り組みと、抱えている課題を共有します。すでにこのような取り組みをされている方も、そうでない方もいると思いますが、双方向のコミュニケーションができればと思いますので、よろしくお願いします。
発表終了後に懇親会などでコミュニケーションできないのは残念ですが、JANOG Slackでも質問受付や議論ができればと思いますので、よろしくお願いします。

大塚/海野:ありがとうございました!

タイトルとURLをコピーしました