以前在籍していた会社で企業向けパッケージソフトの開発をしていた。
お客様にそのソフトだけを売ることもあるが、サーバーへの導入など非IT企業には難しいので、維持管理も含めて契約していた。
私はアプリ側の担当者だった。パッケージソフト本体を作っていた。
導入、サービス管理、お客様のアプリが入っているサーバー(Linux)の保全などは維持チームが担当している。
お客様の要求に合わせたスペックにあわせた構成にするのも維持チームが担当するということになっている。
しかし、この維持チームはコマンドをコピペでしかできないわけだ。
なにか障害等が発生したときは当然アプリ側もバグの調査などでログを確認したりするが、サーバー側の不具合かどうかも我々が確認していた。
ミドルウェアの脆弱性が発覚したときもその対応方法の調査、手順の作成もした。
アプリ導入方法もミドルウェアの導入方法も我々がかいたものだ。
そのアプリがDBがもともと有償のあるDBしか対応していなかったんだが、PostgreSQLにも対応できるように機能改善した。
その時は差分バックアップの方法、リストアのやり方、ディスクが故障しても大丈夫なアーカイブログの保存法などの説明して、バックアップ設計までした。
なにせ、リカバリをする場合はリストアコマンド一つでできるもんではなく、ロールフォワードでどの時点まで戻すかという判断が必要になってくる。
ある時点で重要なデータを消したというのであればその時点より前までに戻さなければならないので、リストアのやり方の選択肢も状況により変わる。
あとPostgresは他のDBに比べてファイルをコピーしたりテキストを書いたりすることが多い。
Linuxのディストリが新しいバージョンが出たとき、アプリの動作検証も行ったあと、そのLinuxの導入手順書もつくったな
Apacheの導入手順も書いたな。
ミドルウェアやLinuxの使い方教えるのアプリ実装担当の範囲外じゃね?
でも維持チームにやれる人がいなかったのよ。
維持チームはつまり手順書というコマンドで動くシェルのようなもんだ。
Linuxの上にBashというシェルがあるが、その上に維持チームというシェルがあって、我々プログラマがその維持チームにコマンドを送っていた。