今ある現場で構成管理の経験の話をしたら、急に相談に乗るという話が持ち上がったので、自分の記憶を掘り返す意味で、構成管理とは何かを書いてみたいと思います。
目次
- 構成管理とは
- なんで構成管理という管理が必要なのか
- 構成管理にツールは必要か
- プログラムリソースの管理とリリースの管理
- 構成管理でやってたこと
- 構成管理は必要なのか?
構成管理とは
構成管理という言葉を聞いてピンとくる人は何の話?というくらい、ニッチな話ではありますが、ここでは構成管理とはどんなものかを書いてみたいと思います。
平たく言えば、構成管理は、バージョン管理と言ってもいいかもしれません。
あるサービス・システムを提供する場合、そのシステムが提供されているときのシステムの構成というのは、決まっています。
具体的に書くと
- プログラムリソース
- DBのバージョン
- プログラム言語のバージョン
- フォルダの権限
- OS
などなど
当たり前と言えば、当たり前です。しかしながら、複数の人間がかかわるシステム開発の現場、さらにはプログラムのバグがあって、なんどもプログラムを入れ替える現場になると、何度も変更があるために、管理がおろそかになり、
- 正しい処理をしているプログラムがリリースされていない
- バグを生んだ原因はなんだったかを突き止めることもできない
など、ぐちゃぐちゃのカオスに陥ります。なので、適切な管理役が必要となり、構成管理という言葉が生まれたと私は理解しています。
なんで構成管理という管理が必要なのか
すばらしいマネージャーによってさまざまなことが適切に管理され、状況を理解し、しっかりとプロジェクトが管理されていれば、構成管理という言葉が生まれることはなかったと私は常々感じているのですが、野球やサッカーを見ていても、人が集まる場所では、必ず管理者が必要となるように、リソースが集まる場所では、必ず管理者が必要ということを、今では理解しています。
では、どうして構成管理が必要なのかを書いてみたいと思います。
スマホのOSは常にアップデートしている
ふだんつかっているiPhoneやアンドロイドといったスマホのOS、パソコンのWindowsUpdateという言葉で、皆さん知っているように、ソフトウェア開発の現場では、アップデートが日常茶飯事です。
バグがあったのでアップデート、セキュリティリスクがあるのでアップデート、他のシステムがアップデートをしたのでアップデート、
たくさんのアップデートが、当たり前のようになった今の社会において、何かがずっと同じということはありません。
そんなOSのアップデートに合わせてプログラムを合わせるということが、必要になれば、おのずと、それを管理しなければいけません。
まずは、これが構成管理の一つの要因です。しかし、この程度であれば、メモ書きで足りる気がします。なぜなら、OSのアップデートは慎重に行われてくるからです。
プログラム言語も常にアップデートしている
同様にプログラム言語もアップデートしていきます、php,Java,C++,python,Ruby・・・
繰り返しますが、プログラム言語もアップデートされるので、どのバージョンを使っているのか、管理しなければ、プログラム言語に依存した異常を見つけることが困難になります。
ソフトウェア開発はカオス
それでは、構成管理が必要な理由の一番の原因である、ソフトウェア開発について、書いてみたいと思います。これを読んだら、構成管理なんていらねーとは絶対にならないと思います。
プログラムは、みんなで協力して作ります。それがオープンソースを使っていたらなおさらです。そもそもオープンソースプロジェクトが、動いているところでも、ライブラリアンがしっかりと管理をしているはずです。
10人くらいであれば、制御できることも、100人を超えたらはっきり言って制御できません。
例を書いてみましょう
Aさんが、Aというプログラムを作りました。
ところがバグがありAさんがA+というプログラムを作りました。
その途中でBさんが、Aというプログラムを元に、Aさんのプログラムを拡張するBAというプログラムをつくりました。
ところがA+にしたときの修正を取り込む必要があり、BAをBA+にしなければいけませんでしたが、そのまま、本番の環境で使われるようになってしまいました。
一週間後、BA+を修正しBA+をリリースしたのですが、A+とセットで環境にあげなければいけないところ、間違ってAがリリースされてしまいました。
BA+対応と聞いていたので、AをA+にするのを忘れてました・・・
二人であってもこんな間違いを起こしたりします。これが100人規模の場所で行われるようになったことを想像してください、すでに誰かが専属で監視でもしないかぎり、うまく回らなくなります。
(つづく)
chigyo
最新記事 by chigyo (全て見る)
- 【WBS】遅延を回避する効果的なスケジュールの引き方 - 2019年10月3日
- スマホWEB、スマホアプリ、パソコンのブラウザに対応するハイブリッドなWEBページの作り方 - 2019年9月25日
- エンジニアになりたいと思った人が覚悟しなければいけないこと - 2019年9月12日