orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

システム運用とシステム構築、どちらが先か

 

インフラエンジニアっぽい記事をたまには。

システムには、構築の時期があって、そして運用の時期が訪れる。

構築時期をあらかじめ顧客と決め、ある時期から顧客が使い続ける。使い続けている中でいろいろと変更対応は必要になるので、これを運用と言う。

構築、運用。

あまりにも相対している概念なので、システムに携わる人々は、必ず構築部門か、運用部門の二つに分けられる。

ちなみに、私は構築から運用まで全部やってきた。区切りなく全部。ただ、業務が増えていくに従い全部自分でやるのはかえって無責任ということになった。なぜなら、私がいなくなったら誰もできなくなるからだ。会社ならば、誰かが欠けても支え合えるようにしておかないと存亡の危機となる。だから、私は最近、運用を少し離れ気味になりつつある。

さて、あまり経験のない若手が、さて構築を先にやったほうがいいか。それとも運用から入った方がいいか。この議論は私が若い頃・・だから二十年くらい前からあった。データセンターが一般化して、インフラも大規模化・専門化し、構築/運用部門ができるに従い、若手はどっちに配属させるべきか、どんな場所でも議論になっていた。

両方できるようになった私がアドバイスするのなら、「運用」が先だと思う。

運用フェーズにおいては、リスクのある作業をできるだけやらないようにする。多いのはユーザーの追加・削除作業や、スペック増強作業、障害対応・監視アラート対応などだ。安定が最も大事なので、作業に当たっては慎重なルールを設定している現場は多い。それらは長い歴史の中で標準化され、いろいろと知恵のある分野である。

始めに、「コンピューターをなめるとあかん」と言う感覚を先に学びつつ、運用しながらでもやらなければいけないような業務を身に付けると、危険を察知できる能力が強くなる。こんな状態になるとシステムは不調になるという感覚を得られる。構築時に仕込んでいた仕組みが運用でこんな風に役に立つのかということを知ることができる。

この感覚を磨いた後、構築を行うとどうか。構築作業のそれぞれの段階が、運用にどうつながっているかを感じながら、進めることができる。そもそもの設計が、運用をどう導くかのシナリオになっているため、運用自体を知らないと設計の意図がつかめないのだ。

監視を実装する。バックアップを実装する。これは構築の基本だが、なぜそれを実装するのかを把握しないまま、実装だけ手伝っても、手順をなぞるだけで意味が入ってこない。

つまるところ、運用とは完成品なのである。完成品をよく知ってから、作る方法を学んでいくと、ゴールを見たことがあるだけあって、個々の工程の意味を捉えるのが素早くなる。

また、構築の世界は、運用とは全く違うルールで成り立っていて、運用時ほどの厳密さを伴わない。納期が決まっているのと、構築中は顧客が触らないのとで、スピード感も優先される。テキパキやるために、運用時はやっていたことを省略することもある。目的が変われば、手段も柔軟に変更しないといけない。運用を先にやることで、慎重から効率に倒すので、悪いことは起きない。

逆だと・・、構築するノリで、運用中のシステムを変更されるのが一番怖い。これが最も、運用を先にやって欲しい理由である。効率を優先したために、作業に不備があり、システムに重大な問題が起こったことがどれだけあったか。

これらはあくまでも私の体験からの推測だ。どちらルートからでも結局両方知れば同じことだし、ルートを選べない人もいるだろう。それでも、運用・構築、できれば両方体験して頂きたいと思う。システムが生まれて、そして終わったり、リプレースしたり、まるで人生のようでもある。そのライフサイクルを経験すれば、どんな状況におかれて活躍できるインフラエンジニアになれると思う。