--- date: "2016-10-25T00:20:02+09:00" description: "" title: "多義化するOpsのミッションについて" --- 今年度から運用の担当になったんですけど、最近消化不良を起こしつつあります。立場としては言われたことだけやるオペレーターという形じゃなくて、いわゆるインフラエンジニアっぽい感じだけど構築はやりませんよって感じです。日々のオペレーションや障害対応をやりつつ、一方でDevOpsの整備とかに注力している感じ。でも自分のミッションはそこまで社内で明確化されているわけではなくて、どうもそのあたりに消化不良の原因がある。 Opsの担うミッションの変化 ---- そもそもにしてDevとOpsの境界ってどこなんだろうという定義はわりと曖昧な気もしますが、おそらくは「リリース」が境なんでしょう。基本的にはリリースまでを担当するのが「開発」で、リリース後のシステム稼働の面倒を見るのが運用、保守というイメージでいるのだけど、「運用」が担うミッションって最近かなり広がっているような気がするんですよね。 一番難易度の低い運用といえば、いわゆる手順書に沿った業務しかやらないオペレーター作業になるわけですが、そういう運用と開発の業務内容、職掌をガッツリと分けた状態って最近は主流ではなくて、いわゆるDevOps的に開発フェーズからデプロイされて本番運用へと移っていく過程がシームレスになっていくのが常識化しつつある。あと運用というのも、システムを単に放っておいてトラブルが起きたら対応、という受動的なものではなくて、能動的にメトリクスやログを解析して、SREのようにソースコードにまで手を入れて、安定運用のための方策を講じていくスタンスが生まれつつあります。 少し前だと、いわゆるインフラエンジニアが運用も担っているようなケースは特にWeb系だと多く見られていたし、Infrastructure as Codeの黎明期には「インフラエンジニアもコードを書けるべき」ということが盛んに言われていましたが、もはや時代は「運用の中でソフトウェアのコードを編集する」というところまで来ていて、だいぶ時代が移り変わったように見える。 Ops先鋭化へのジレンマ ---- もともとインフラエンジニアが運用を担っていたパターンにおいて、SREのような業務を来月からやりましょうってのはまず無理だと思っています。スキルの畑があまりに違うので。やるのであれば人員の配置換えをするか、インフラエンジニアにかなりの学習コストを払わせることが必要になる。ので、ちょっとSREの話は先鋭的すぎるとして置いておくとしても、いわゆる「インフラエンジニアもコードを書けるべき」は求められる場面が多くなってきたように思う。 そもそも旧来の運用業務にしたところで、一切コードを書けない人間が担えたとは思えないんですよね。まぁ「手順書運用」は一切スキル不要なので別として、何か処理を自動化して効率化しましょうとなればスクリプトぐらいは書ける必要があるし、OSSの監視ツールを使いましょうとなれば、ソースを読む機会ぐらいはある。ただ、実際に運用業務に携わっていて思うのは、それを出来る人間というのは現実として限られてもいる。インフラエンジニアが運用を兼ねるようなケースであれば尚更です。 堅牢性を求めて保守的なシステム運用をしようとすれば、運用は「決められたことだけをやる」「引き継いだことだけをやる」という方向にシフトしがちなわけで、そうなってくるとコードを読み書きするスキルが必要とされる場面は当然ながら減ります。その場合のスキルはインフラ周りに重点が置かれて、コードの修正はソフトウェアエンジニアに任せることになる。手作業のオペレーションが煩雑であるならば、ソフトウェアエンジニアへ自動化を依頼するかもしれない。 どちらが良い、どちらが悪いという話ではなく、スキルと職掌による問題なんだろうと思っています。同じシステムを運用していても、コーディングスキルがあるエンジニアであれば自ら自動化をしよう、ソースコードを確認してみようという手の動かし方になるし、コードに携わるのは自分の職務ではないと認識していて、スキルも持ち合わせていないエンジニアであれば、誰かに任せればいいという思考になる。 (運用も担っていた)インフラエンジニアの役割が変わってきた、というよりは、スキルやマインド、スタンスの面で、コーディングスキルのあるOpsエンジニアが別の方向へ進み始めたというように思えます(繰り返しになりますが、どちらが良し悪しということではなく、決められた手順だけを実施させることで運用のコストを下げる、というのも一つの考え方だとは思っています)。 圧倒的技術力の必要性 ---- ところで、DevOpsはさておき「システム運用」全体を網羅したような本ってあんまりないです。最近は少し出るようになっていて『インフラエンジニアの教科書』などはそれに近いですが、(サーバー)構築の話も入ってくるので、純粋な運用というとオライリーの『ウェブオペレーション』が一番ハマっているかなと。