本記事はBBSakura Networksアドベントカレンダー2022、22日目の記事です。
こんにちは。@voice726 です。またもや遅刻しました……今回は「ネットワークなにもわからないマンが何もわからないままラボ構築プロジェクトのリーダーになった話」と題しまして、私がリーダーをしていたラボ構築のプロジェクト(通称石狩ラボプロジェクト)のお話をしたいと思います。
石狩ラボプロジェクトが始まるまで
このプロジェクトの話はある日突然降ってきました。そうそれは6月のできごと。 テックリードからSlackにこんな投稿が。
上の概要で語られていたことを大雑把にまとめると
- 雑に触ることができる物理環境によって、さくらのクラウドのようなサービスが生まれたり、その後新機能が追加されたりしている
- BBSakuraではBBIXの物理インフラをうまく使い、ソフトウェア技術によってOCXのような新しいサービスを作っていくことが求められているため、物理インフラがわかっていないことは新しいサービスを作っていくときに足かせになる
- 最近では動画学習などもあるけど、実際の経験に勝るものはない
- 要は社内で下のスライドのようなことをやりたい(PDF注意)
ということが語られていました。
それに対しての弊社CEO佐々木からの返答がこちら。
(補足しておくと、「けしからん」とは上記の登氏のスライドの中に頻繁に登場する用語です。氏は技術者が自由に触って試せるラボ環境の重要性を説いており、そのような環境を構築することを「けしからんこと」と表現しています。詳しくは上記の氏のスライドをご一読ください。)
ということで、一瞬で始まりました。チャンネルが作成され、早速初期構築にむけてメンバーとリーダーの募集が始まりました。
リーダーに関しては当初「自分はネットワーク何もわからないマンだし、少しでもわかる人のほうが良いのかな?」と思って様子を見ていたのですが、 テックリード曰く「教育を兼ねているので、若者か未経験者にリーダーをしていただきたい」とのことだったので、 若者かどうかは別として未経験だったので手をあげてみました。
突然ですがここで簡単に私の自己紹介をしてみようと思います。
- エンジニア歴4年目
こんな感じで、ネットワークエンジニアとしてもリーダーとしても超初心者な状態。 それでも思い切って立候補してみた理由としては、失敗していい環境でリーダーをやるという経験ができるチャンスってなかなかないのでは?と思ったからです。 自分の中での課題として、失敗に対する耐性がないなと思っていて、失敗を恐れながらディフェンシブに動くことが多いなと思っていました。 そんな中で、未経験の人に是非やってほしいというのはかなり後押しになりました。 かくしてネットワークやマネジメントに関しては全くの初心者だった私が、石狩ラボプロジェクトのリーダーとして動くことになりました。
メンバーもそれぞれ立候補式で参加。 チーム横断で全社から様々なバックグラウンドのメンバーが集まりました。 例えば入社2年目の若手メンバーからモバイルコア開発チームの歴10年以上ベテランなエンジニア、DCでの運用経験のあるメンバーまで、総勢10名ほど集まってスタートしました。
その他数名の有識者がアドバイザーとしてつくことになりましたが、基本的には「見守る」というスタンスで、基本的に構築に関してはメンバーだけで進め、疑問点や相談したいことがあったらアドバイザーに相談という形で進めることになりました。
プロジェクト、始動
さて、こうしてプロジェクトが無事に始動したわけですが、プロジェクト開始時点ではっきり決まっていたことは
- 年内くらいに初回構築できればうれしい
- 構成はサーバ4、スイッチ1、ルータ1くらい
というくらいで、最終的にどういう構成でいつまでにやるかもメンバー内で検討して良いとのこと。 前述のDC勤務経験のあるメンバーに全体の工程の叩きを作ってもらって大まかなフェーズ分けはしたものの、それ以外は全員はっきりとした知識がない状態でのスタートでした。 なのでみんなで手分けして調査をしながら、悩みながらも徐々に話が進んでいきました。
具体的にやったことをリストすると
- 構成の検討
- 機器の選定・調達
- 調達窓口の選定・やりとり・価格交渉
- 小物周りの選定・調達
- 予算管理・稟議
- ハウジング契約
- 電源・ハウジング回線スペックの検討
- ネットワーク設計(論理・物理)
- config検証
という感じで、内容としてはDCでの構築作業の標準的な内容かと思いますが、それぞれを実際に体験したことがないメンバーがほとんどで、解像度も低かったため、 道中は課題だらけ・わからないことだらけ。挙げるときりがないので、具体例をいくつか抜粋します。
何を選んだら良いかがわからない
「サーバ4、スイッチ1、ルータ1」と一口にいっても、スペックはかなり幅広いと思います。 サーバ1台選ぶだけでも、CPU・メモリ・NIC・OS・保守・諸々のライセンスなどなど、様々なオプションがあり選択に苦労しました。 特に大きかったのは、ラボでやりたいことがメンバー内できちんと定まっておらず、必要スペックが割り出せなかったという点かなと思っていますが、それについては後述します。
他にも調達に関連してのハマりごととしては、値段の相場観がわからないので、予算をレビューしてもらうときに、これはちょっと高いのでは?というツッコミを受けたりもしました。
ラボでなにがしたい?の具体例が出てこない
上で「ラボでやりたいことがきちんと定まっていない」という話をしましたが、じゃあ「ラボでやりたいことを考えよう!」となったときに、 そもそもネットワーク機器やラボで何ができるのかがわからない・イメージがつかない、という状態が発生しました。 結局選定としてはそれぞれ別業務で使ったことがあるからなんとなくスペックがわかる・汎用性がありそう、といった消極的選択に近い物が多く、そういった意味でラボとしての面白みには少し欠ける選択が多かったかなと思っています。 今回は初期構築ということで初心者メンバー中心での構築でしたが、今後ネットワークに詳しいメンバーがどういった点に面白みを感じてどういう機器を入れていくのかを楽しみにしたいと思っています。
他の優先度が高い業務に時間を取られてしまう
このプロジェクトのメンバーは様々なチームから横断でメンバーが集ったと上で述べましたが、基本的にメンバー全員それぞれ自チームでそれぞれのプロダクトに関する業務を持っています。 会社の事業と強く紐付いているプロダクトに関連するタスクと比較して、ラボ構築のような教育的側面の強いプロジェクトのタスクはどうしても優先度が低くなってしまうもの。 特にプロダクト側のタスクが忙しくなってくると、なかなかラボ構築プロジェクト側にはコミットできず、タスクが消化されなかったりというような状態も発生していました。
リーダーとして何をしていいかがわからない
これはリーダーとしての課題です。 まずリーダーとして手を上げてみたものの、実際リーダーって何したらいいんだっけ……?となりました。 一応気をつけていたこととしては
- プロジェクト全体に気を配ること
- 全体の進捗からマイルストーンに対して現在地がどれくらいなのかを把握し、スケジュール的に問題なさそうかを判断
- それぞれの課題(予算・発注・技術的なところなど)の状態を説明できるようにしておきたい
などがありますが、そもそも構築自体に対しての解像度も低い状態だったので、何にどれくらいかかるかが読めなかったり、 実際にどういう状態になったら構築に行っても大丈夫かという状態の判断が甘くなってしまったりと、進捗管理するだけでもかなりお腹いっぱいの状態でした。
いざ現地へ
そんなこんなでなんとか話を前に進めて、やっと現地での初回構築にまで到達。 プロジェクトがスタートしたのが6月で、実際に構築は12月中旬で行ったので、ここまで来るのに半年間かかりました。 しかし構築も一筋縄ではもちろん行かなかったのです。
当初は「ハウジング回線に接続したルーター経由でリモートからサーバ等に入れるようにして、現地に行かなくても機器の設定を触れるようにしよう」という点を目標の一つとしていました。 しかし、現地で実際に作業してみると、想定より時間がかかったり、検証ではOKでも実際はうまく動かないということがありました。 特にスイッチはCML2を使って検証を行っていたのですが、 ルータ周りの設定はスケジュール等の見積もりの甘さもあってあまり検証の時間が取れず、現地で検証しながら構築しているという感じになってしまいました。 現地でのリカバリがうまく行った部分もあったのですが、間に合わない部分も多く、最終的にはルーター経由ではリモートからサーバに入れないまま終了という結果になりました。
一応バックアップ策は機能していて、「RaspberryPiとモバイル回線(さくらのセキュアモバイルコネクト)」を使って遠隔ログインはできるようにはなっていたのですが、 やはりハウジング回線 → ルーターを経由してのリモートログインまでは達成したかったなー……
朝10時集合で、終わってみるともう22時を超えており、みんな疲労困憊。 タイムマネジメントや、焦っても休憩を入れることの大切さを身をもって味わいました。
おわってみて
「失敗していい」といいつつ、やっぱり凹みますね。 悔しい!って思いました。 振り返ってみると課題も山積で、ああしたらよかった、こうしたらよかったばかりで整理しきれていません。 実際いまこの記事を書いている間も反省会が進行中で、いろいろな意見が出ている中から次のアクションアイテムに落とす作業が進行しています。
でもこうして課題がいっぱい出てくるということは、それだけ構築に関する解像度が高くなったと前向きに捉えています。
他にもやってよかったなと思ったことは多くありました。 なんでもそうですが、やっぱり知識はインプットしたあとに実際に使うことが大切で、今回ネットワークの勉強をしながら実際に機器を触ることで、理解が更に深まったメンバーも多かったようです。 また、業務に還元できているといった手応えを早速感じているメンバーもいて、やはり手を動かすことは大切なんだなと感じています。
それ以外にも、わからないなりに社内有識者からのアドバイスは借りながら、でも手を動かすのはほぼ自分たちの力だけで構築までを一度通したことも良かった点だと思っています。 反省の中ではもっとアドバイザー方に積極的にレビュー等をお願いしたらスムーズに行ったのではないかというコメントもあったのですが、その一方であまりそれをせずにやろうとしたことのメリットも感じています。 経験者が見たら当然気づきそうな地雷なのかもしれないですが、それを実際に自分たちで踏み抜いていったことに価値があったのかなと感じています。
あとは大変なことも多かったけど、やっぱり「楽しかった!」の一言に尽きます。 初めてサーバをラックに乗せられて楽しかったという声や、pingが通ったときの「おお〜!」という歓声を聞くと、頑張った甲斐があったんだなーと思うと同時に、 もっと勉強していろいろなことができるようになったら、もっと楽しいんだろうな!と感じています。
初心者リーダーとしてこのプロジェクトに携わった視点で言うと、まず当該フィールド(=DCにおける構築)の知識が乏しい状態でもなんとか前に進めて、(内容はどうあれ)構築までこぎつけたという点は少し自信になったなという気がしています。 一方で、前述の通り、リーダーとしてもネットワーク技術者としても解像度が低かったゆえの課題は多くありました。 進捗管理だけではなくチームビルディングなどもっと気を配ったほうがよかったなと思うことも多く、今回リーダーの立場として経験したことを踏まえて,更に知識面でもインプットを増やせて行けたらと思っています。
今回プロジェクトを進めていく中で様々な迷いがありました。それはリーダーとしての経験・知識の少なさと技術的な知識・経験の少なさの両方から来るものでした。 プロジェクトを進めていく中では様々な判断をする箇所が出てくると思いますが、いろいろな自信のなさから判断に迷ったり、メンバーにお願いをしたりというところがうまくできなかったのが大きかったなと思っています。 それ以外にも、リーダーというポジションとして何をすべきか、どういう目線から関わるべきなのか、やってみないとわからないことって多いなーと思いました。
まとめ
今回の初回構築は当初立てた目標という観点から見ると決して成功とは言えず、そこまでに至る過程も経験者から見たらボロボロだったかもしれません。 でも今回失敗することで得られたものは大きかったし、貴重な経験ができました。 今後の業務でも今回得た学びを活かしてさらにいろいろな楽しいことができるようになっていけたらと思っています。リベンジしたい!!
最後にテックリードからラボ構築メンバーへのひとことを紹介したいと思います。
石狩ラボも初期構築のリベンジに留まらず、もっともっと発展していく予定です。 AS取得してみたいね!とか、オレオレISP運用したいね!とか、100G環境つくりたいね!とか、いろいろな夢が広がっています。 このようにBBSakuraはチャレンジできる環境が整っています。「私もラボで色々けしからんことをしたい!」と思った方は、 ぜひこちらのカジュアル面談からお話ができたら嬉しいです!