orangeitems’s diary

クラウドで働くインフラエンジニアの日々の感想です(ほぼ毎日更新)。

パラメーターシート作成作業に物申す

f:id:orangeitems:20210727235755j:plain

 

インフラ構築すると必ず付いてくるのがパラメータシート作成。構成資料と呼んだりもしますね。最近はソフトウェアも進化していてインストールするとデフォルト値のままでも結構動いたりするのですが、それでも要件に合わせていろいろカスタマイズするのはいつもの話です。

で、構築しているときは何を設定したかおぼえているのですが、半年も経つとすっかり忘れますね。本当に忘れますよ。一生懸命構築したのに。で、忘れたときに本番環境に入ってどんな設定したか確認することもできますが、それだけでもリスクありますよね。情報採取するだけなのに操作ミスして設定したりして、本番障害の原因につながることだってある。何を設定したか思い出す度に毎回ログインしていたらリスクしかありません。

だから、「パラメーターシート」を用意します。Excelなどのドキュメントに、何を設定したかを書き出します。このプロパティーはこれ、こっちはあれ、と。

で、この資料作成がほんと大変なんです。だって最近のソフトウェアは高度化しているので、カスタマイズ項目が無数にあるのですから。

しかも正規化されていなくて、あるタブの下にある左ペインのメニューを選択し、その右側にあるボタンを押すと表が現れる。それをExcelの二次元の表に表現するのって結構大変。

人によってはセルを結合したり、シートを分けたりで、最終的にカオスなパラメータシートが出来上がり、そして苦労して作った割には誰も見ないなんて惨事が訪れることが多いです。

パラメーターシートって、全ての現場でどれぐらいがちゃんとメンテナンスされているのでしょうか。リリースしたときの状態のままで更新がおろそかになり、「ああそのシステム、中に入ってみないとわかんないよ」なんてベテランが言う始末、という場所もあるんじゃないでしょうか。私は何度もそういう体験があります。

大事なポイントがありますのでここでまとめます。

①最近のソフトウェアは機能が豊富になっているため、表形式でパラメーターシートを作るのが大変

②大変なパラメーターシートを作るのに時間がかかる割に、運用時にちゃんと更新されるかは微妙

このパラメーターシートをうまく運用できないところから特定の詳しい人の頭の中に依存、つまり属人化が起こり、そしてその人が何らかの理由でいなくなることによりシステムの運用管理のほころびって起こりがちじゃないかと思います。

そう、理想は、パラメーターシートとシステムの状態が一致し、そしてパラメータシートを見れば本番環境にログインしなくても現在の状態がわかること、だと思います。

だからパラメーターシートをみんな頑張って作るのですが、本当、人力でドキュメント作成するのそろそろやめたい。

一方で、IaC(Infrastructure as Code)という概念があります。

 

udemy.benesse.co.jp

コードでインフラの設定を記載しておき、それを実行することで、自動的にインストールや各種設定を行います。

IaCを利用することで環境構築作業を自動化できます。一方で、バージョン管理をしていくことも重要です。バージョン管理をする対象は、インフラを構築するコードと、インフラ上で動作するアプリケーションです。

これらのバージョンがIaCによって管理されていることで、環境を一式再現することが容易になり、インフラのバージョンを上げたことで、アプリケーションが動作しないという事態にも対応できるようなります。

 

コードを管理することが、すなわちパラメータシートを作成することと同義。コードはシステムと一致する。だから正義。

この分野、一般化してから随分時間が経っていますので、現場によってはウチはIaCだよ、というところもあるかもしれません。

ただ、私はIaC使ってないんですよね。以下の理由です。

 

①コードはお客様が読めない。コードを勉強していない人にも読めない。結局はコードを読める人に属人化しちゃうんじゃないか。

②コードを実行するより、人が実行したほうが安心できる気がする。

 

①はともかく②は私の偏見ですね。でも、作業の失敗って、すごく痛い思いをします。それを人じゃないものがやるってのが、私は納得できないんですよね。

人なら、失敗した時、目の前で失敗するからやめます。でも機械って、コードが続く限りバンバンやっちゃうので、その怖さもあります。またコードの実行環境も不安。

これらは、インフラでも同じ作業を毎日山のようにやらなければいけないのであれば、事情は変わると思います。でも私の現場は、日々違うことばかりやるので、コード化しても二次利用する可能性が低いのです。

 

私が思っている案は、各ソフトウェアに、Excel形式でパラメーターシートを自動作成してもらいたいということです。エンドユーザーにもわかりやすい形式で。

毎回毎回、構築作業にかける時間以上に、パラメーターシート作成ばっかりやってるって、何か本来の仕事から外れていると思うんですよね。ソフトウェア側で標準装備してくれないかなあ。

よくきく若手の愚痴で、「IT業界でもっとコンピューターさわると思ってたら、毎日Excelしか見てない」って言う原因の一つにもあると思います。

ほんとに、毎度、設定変更するたびに、Excel開いて該当の値を変更して・・・って文化をやっている現場はたくさんあると思うんですが、そろそろ自動化したいところですねえ(困)。