朝日ネットシステム部の223です。
前回は育休を取得した時の話を書いたのですが、今回はインターネット接続サービスを支えるにあたって、技術系の部門が取り扱っているものの概要を簡単に説明したうえで、トラブルに焦点を当てて、私が考えている事を書いてみたいと思います。
どんなもの扱っているの?
朝日ネットの技術部門は大きくサーバ管理、ネットワーク管理、アプリケーション開発、運用監視の4つの部門に分かれていますが、どんな感じのものを面倒を見ているかを書いてみます。例を挙げると
サーバ管理:ISPサービス(接続認証、DNS、メール、WEBページなどなど)やmanabaを提供するためのサーバインフラの構築、管理
- サービスがきちんと提供できるように、どんなサーバをどんな構成でどんな設定で動かせばよいかを考えて、それを準備する
- データが増えてストレージが足りなくならないように増強計画を考えて実行する
- サーバが古くなれば新しいものに置き換える
- 出来上がったサーバを運用部門がきちんと面倒を見ることができるように、運用手順を整備して引き継ぐ
- などなど
ネットワーク管理:朝日ネットのネットワークインフラの構築、管理
- 日々インターネットのトラフィックが増大するなかで、インターネットの利用がきちんとできるように、朝日ネットのネットワークの信頼性向上のために何をすればよいかを考えて実行する
- コアネットワークの構築、増強
- お客様に払い出すIPアドレスなどのネットワーク的な資源の管理
- などなど
アプリケーション開発:お客様、あるいは社内利用のアプリケーション開発
- 新サービスを始めるにあたっての入会画面、オンライン手続き画面、社内のサポート用のツールなどを整備する
- 外部連携業者と連携の際の仕様を確認し、APIや連携バッチをプログラムする
- manabaのバージョンアップ
- などなど
運用監視: 稼働しているサーバやネットワーク機器の運用監視
- アラートが発生していないか監視を行い、アラート発生時は1次対応を行う
- 監視の精度を上げるための取り組み
- 障害発生時に障害アナウンス掲載やメール送信など、通知に必要な行動を行う
- などなど
というような感じで、他にもいろいろありますが、ざっくりとこんな感じのものを扱っています。
指先一つでダウンさ
そんなものを扱う技術系の現場の人間は、やろうと思えば指先一つで何十万人のお客様にご利用いただいているISPサービスやmanabaをダウンさせることができてしまいます。ものすごく極端な例ですが、軽く基幹サーバやスイッチにログインして shutdown (Enter)と打つという、たったそれだけの動作で、サービスに壊滅的な影響を出すことができます。 軽い動作でシステムが落ちるのを、私はよく北斗の拳に出てくる、モヒカンが経絡秘孔を軽く突かれるだけで謎の断末魔とともに飛び散る場面に例えて、新人君がきたときに「あなたはうちのシステムに対しては秘孔を簡単に突けます。ケンシロウみたいに強いんだから間違った事が何かをきちんと知ってね。」というようなニュアンスのフレーズをよく使っていた時期がありました。(が、最近ネタが通じない場面が増えているので、新しい例えを模索中)
余談ですが、朝日ネットでは(いまはコロナの影響で中止していますが)定期的に誕生会を開催して、直近何か月かの誕生日の社員をお祝いするという名目で集まって飲み食いする会を行っており、最近は単純に集まって飲んで食べてしゃべる会になっていますが、以前、誕生月の社員にお題を出されてそれを発表するというノリでやっていた時期がありました。何年か前に、「あなたのお仕事を表現して」という事で色紙を渡されたことがあったのですが、その時に私は北斗の拳でごく一部からカルト的な人気がある「汚物は消毒だ!!」の雑魚を書いて「指先一つで朝日ネットをダウンできる怖いお仕事」を表現したつもりだったのですが、初見ではほぼ分かってもらえませんでした。
そんなことにならないために
とはいえ、意図的にシステムを落とそうなんて技術者がいるはずもなく、大体の場合、オペレーション起因でトラブルを起こすのは「やっちまった」もしくは「こんな挙動になると想定していなかった」の2通りだと思います。もちろん、それなりのオペレーションはそれなりの人に限定できるように権限は管理されているし、人は間違いをするという前提で、冗長構成になっている、テストを通していない修正は本番環境に反映できないように仕込まれている、設定反映前に文法チェックが挟まれているなど、システムとして事故を未然に防げるように仕組みとして考えられている個所も多数ありますが、そもそも設定する内容を間違えた、巻き込みで変なものをリリースした等、いろんなパターンがあり、それをゼロにすることは不可能だと思います。
そうは言っても、それを減らすための努力はすべきだと思うので、今回は、システム以前の人間の部分で自分なりに考えたり実行している小ネタをつらつらと書いてみたいと思います。(効果には個人差があります。あくまでも実例としてとらえてください。)
俺、戦闘モードに移行します
業務中は良いのですが、(最近はその機会がめっきり減っていますが)夜間に障害対応で増援を求められることがあります。そういったタイミングではどうしても私も人間なので頭がぼーっとした状態から抜けないままPCを取り出すことがあります。昔、そういった状態でコマンドを打つホストを間違えそうになったことがありました。その後、自分なりに反省した結果として、頭が働いてない時に強制的にスイッチを入れる儀式を持つことにしました。私はプライベートでJazzとかFusion系のベースを触っているのですが、一時期30秒間できる限りの技巧系のフレーズを弾く、というので目を覚ました後に対応にあたった時期がありました(30秒のコストをかけることでその後の対応品質をそれ以上に上げる、という考えです)。最近では自宅にいる小悪魔の破壊活動から楽器を守るために封印しているので、スクワット30秒で落ち着ています(腕立ても試したのですが、キーボードを打つ手がプルプルするので不採用としました)。
時間勝負の場面だとしても、パフォーマンスが出なさそうなときは一呼吸置くのも、それはそれで有効なのではないかと思います。
指さし確認
アナログですが意外と効くなと思います。以前間違ったホストを落としてしまったことがあり(冗長系の1つだったので影響はたまたまなかったのですが)、それ以降、シャットダウン系のオペレーションやるときは3回くらいホスト名に対してやるようになりました。削除や更新系のオペレーションやるときも同様です。故障ディスクを抜くときは故障点灯しているLEDを3回くらい見ます。熱ものに懲りてなますを吹いている感がありますが、前述のとおり、やっちまった時の影響が大きい職種なので、臆病なくらいがちょうどいいと思います。
お前のトラブルおれのトラブル
想定外を減らす取り組みですが、結局のところ、システムを深く理解するしかないと思っています。その教材として、実は原因、対処、影響範囲の情報がまとまっているトラブル対応はかなり良い教材なのですが、トラブルを減らすためにトラブルを起こすというのも本末転倒なので、私の場合、自分が担当でなくても監視サーバがアラート上げたらとりあえず首を突っ込んで自分なりの調査をする、他人が報告したログや設定ファイルは自分も確認する、復旧のためのオペレーションはなぞってみる、という事を繰り返しました。魔女がよくわからない薬を使った場合、まずはそのレシピを読む、の精神でいました。
おわりに
以上、簡単ですが、技術部門の概要とトラブル防止に関して自分なりに考えている事を書いてみました。他にも小ネタはいくつかあるのですが、またの機会にしたいと思います。全部個人の体験に基づくものですが、参考になればと思います。
採用情報
朝日ネットでは新卒採用・キャリア採用を行っております。