SI におけるパラメータシートとは何か
パラメータシートという言葉をよく聞くが、いまいち理解してなかった。また自動化や IaC が当たり前な昨今でも「パラメータシートは撲滅できない(すべきではない)」とする意見が多く、なぜなのかがわからなかった。
このあたりの疑問を解消するべく、会社で尋ねたり資料漁ったりググったりしたので、まとめる。
パラメータシートとは
パラメータシートとは SI(の環境構築)における「この機器の、ここの値は、これこれの理由でこれにする」を集めたシートのこと。
大まかなフロー
- 設計
- パラメータシートをつくる
- 1: 必要な設定を洗い出す
- 2: 洗い出した設定の設定値を確定する
- 3: パラメータシートに記入する
- 手順書作成
- 構築手順やテスト手順をつくる
- 環境構築
- パラメータシート(と手順)を見ながら手作業で設定を変えていく
- 環境は本番かつ高セキュリティで触れるチャンスは少ない傾向
- テスト
- ちゃんと設定できてるか設定値を見たり軽く動かしたりする
- 大体テスト仕様書に従ってやる
運用の現実
パラメータシートの書き方
- Excel で列挙ゲー
- フォーマットは各社各チームガラパゴス
- 各社各チームの既存フォーマットを使い回す
手順書の作り方
- つくらない派
- 「パラメータシート見たらわかるやろ」
- 構築時の主観が強くなるため、あまりない(と思う)
- パラメータシートとは別につくる派
- パラメータシート中に手順も書く派
環境構築時の制約
- お客さん環境なので気軽に触れない
- お客さん環境なので気軽に改善を試せない
- 自席未満の劣悪な環境 + 制限時間や立ち会い付のプレッシャー
作業者のリテラシー
- 可読性や保守性といった概念を知らない
- バージョン管理を知らない
- 自動化を知らない
近年の自動化や IaC ブームに対して、SIer は?
- パラメータシートは撲滅できないという認識
- 手順書作成と環境構築 → IaC できる
- テスト → 自動テストできる
- パラメータシート → 無理くね?
なぜパラメータシートを撲滅できないのか?
Ans: そもそも自動化や IaC のスキル・やる気・機会が無い から。
ただし真面目に検討している事例として NTT データの SlideShare があった。これによると、パラメータシート(的な設定マスタ)の撲滅は難しい との結論。
- そもそも本番環境には気軽にアクセスできないので「本番環境の設定がどうなってるか」は別途手元で持っておくしかない
- この時点で二重管理確定
- 「Excel パラメータシート見て手作業で頑張れ」は撲滅できうる
- IaC と自動化で構築とテストは自動化できる
- 設定マスタはコード
- コードだと読みづらいので、コードから「見やすいビュー」を生成して、普段はこのビューを見る
もっと撲滅するために
では上記の NTT データの例以上に撲滅をすすめることはできるだろうか。机上だがアイデアを。
環境情報取得ツールで二重管理を廃止する
仮に本番環境から設定情報すべてを吸い出すツールがあるなら、(吸い出したデータをこちら側で持っておくことは必要だが)二重管理は廃止できる。なぜなら、本番環境から吸い出せば常に寸分たがわぬ最新データが手に入るから。
もっとも実現は簡単ではない。以下が必要となる。
- 本番環境(に存在する設定対象)すべてから設定情報をプログラマブルに吸い出せること
- 機器・ネットワーク・ルール次第では仕様的に無理なことも……
- 吸い出しは定期的に行い、吸い出したデータはバージョン管理すること
- 設定の根拠や背景を記したドキュメントを整備し、漏れなくメンテすること
- さすがに本番環境に埋め込むのは無理だろう
- そもそもプログラミングでも内部的な話はコメントではなく外(別ドキュメント)に出す
……無理そう。
パラメータシート改めパラメータコードを導入する
SIer には以下が当てはまると思ってる。
- 「コードは読みにくい」という思い込みを持っている
- リーダブルなコードを書くという心がけがない(or リーダブルという概念を知らない)
- スラスラ読めるレベルにまで(コードを記述した)言語に習熟していない or 機会がない or やる気がない
これらすべてを解消すれば、シート(リテラシーが無くても読めるけど連携とメンテがクソな表文書)を使わずともコードだけでパラメータを記述できるはず。今は YAML のようなリーダブルな記法もあるし。
参考
- 構築とテストについて知ろう - Think IT(シンクイット)
- 具体的な設定値の例に詳しい
- NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テ…
- IaC しづらい現実に詳しい
- 「パラシから IaC コードに変換」ではなく「Iac コードからリーダブルなビューを生成」を提案してる