OS選定のポイントを整理する
サーバOSを決めるタイミング
本連載もつつがなく第2回を迎えることができた、と言いたいところだが、本題に入る前にまず「第1回:そもそもサーバOSとは何か(http://www.thinkit.co.jp/article/80/1/)」の内容について補足を書いておく。
前回はサーバOSを「Windows系」「UNIX系」「Linux系」「BSD系」の4つの系統に分類したが、読者より「UNIX系、BSD系という分類は、Mac OSXやSolarisの分類が微妙にならないか」といった趣旨の指摘をいただいた。事実、筆者もこの点は執筆にあたり悩んだところでもあった。
結局執筆にあたっては、あくまで初心者向けの連載である以上、より明解な説明を目的とし、よく知られるWindows系OSに対してUNIX系OSを「The Open GroupからUNIX認定を受けたOS」と定義することとした。
これは、例えば「どの自動車に乗ったら良いか?」という問いに対し、エンジン種類や駆動方式といった専門的知識ではなく、もっとおおまかな「セダン型」「クーペ型」「ワゴン型」というような形状による分類に依拠して回答したもの、といったニュアンスでとらえていただければと思う。
さて、前回サーバOSをおおまかに分類したので、今度はまず導入するサーバOSの決定タイミングについて考える。ここで、システム構成を考える順序を思い起こしてみよう。
最初に考えるのは、「どんなアプリケーションを動かすか」だろう。なおここで言うアプリケーションとは、ユーザが直接利用するアプリケーションだけでなく、プログラム言語の実行環境やデータベースなど、一般的にはミドルウェアと呼ばれるものも含まれている。
最初に動かすアプリケーションを想定するのは、ユーザが求めているのはアプリケーションが提供する機能であり、OSの機能ではないからだ。これはシステム開発時の最重要事項でもある。
次に考えるのは、アプリケーションを最大限効率よく動かすためのハードウェアについてだろう。例えばマルチプロセッサやRAID、細かい話で言えばネットワークインタフェースカードの多重化(チーミング)などが検討の対象となる。この段階で、システムパフォーマンスはもちろんのこと、運用のしやすさまでもが決まってしまう。
そして、最後に考えるのが、アプリケーションとハードウェアを稼働させるOSについてである。
現在のシステム構成は、おおむねこうした流れから検討する。ちなみに、昔はハードウェアの決定とOSの決定は順序が逆で、アプリケーション選択に伴いOSも決まってしまうのが常であった。現在と違い、OSごとに動作可能なアプリケーションやハードウェアの幅が狭かったためである。今ではアプリケーションやハードウェアが成熟してきており、多種多様なOSを選択できるようになったため、ここで挙げたようなシステム構成の順序にシフトしてきている。
サーバOS選択方法のベストプラクティス
サーバOSを決めるタイミングを把握したところで、次はOSの選択基準について述べる。
サーバOSを選択する際、場当たり的な基準、例えば「とりあえず最新のOSで」といった基準を採用してはいないだろうか?この選択基準は確かに、機能面、セキュリティ面では非常に有効である。
しかし、このような経験も無いだろうか?「1つ前のバージョンのOSにしたら、安定して動いた」。
サーバOSに限って言えば、常に最新のものがベストな選択とは限らない。かといって、サーバOSの選び方にベストプラクティス(=有効、優良な事例)が必ずあるわけでもない。こうした状況に至る要因は2つある。
1つ目の要因は、アプリケーションやハードウェア、OS自体の開発サイクルの早さだ。1つの技術が成熟する前にさらに新しい技術が出現し、ベストプラクティスを作る間もなく次の世代がスタートする。これでは構築ノウハウの大半が失われてしまい、「ベストプラクティス構築の試みは無意味」との認識に陥りやすい。
2つ目は、既存システム環境とのしがらみである。何も無いところに1からシステムを構築する例は今ではまれで、ほとんどの場合、既存システムのアプリケーション、ハードウェア、サーバOSとの親和性を考慮してシステム構築をする必要がある。今では多くの企業において、社員が普段利用するPCのOSを規定(固定)しているが、中にはサーバOSまでも規定する企業もあり、その場合は選択の余地は無い。
こうして、ベストプラクティス構築の価値を疑ったり、OS選択の自由が無かったりすると、ついその場限りの対応をしてしまいがちだ。しかし、「考えてもどうせ無意味だ」と投げやりにならずに、何度も繰り返し挑戦し、自分なりのベストプラクティスを作りあげてゆくことに、SEやSIの価値がある、と筆者は信じている。
次ページからは、SIerである当社におけるサーバOSの選択手法を紹介する。これが読者諸氏のベストプラクティスの布石となれば幸いである。
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Debianで作るプロジェクト管理環境
- 「Open Source Forum 2019」開催 ― CI/CDの標準化やプロダクションAIのためのエコシステムなど解説
- そもそもサーバOSとは何か
- エンジニア初心者も知っておくべきUNIXの基礎知識
- エンタープライズサーバOSの機能を見る(3) Solaris編
- レッドハット、テクノロジーパートナーとの協業により、OpenStack製品のベストプラクティスを日本市場に提供
- CNDT2021、Kubernetesをカスタマイズするカスタムコントローラーのベスト/ワーストプラクティスを紹介
- FreeNASでストレージ専用機の構築
- ネットワールド イベント~“新しい”Hyper-Vを使った仮想化基盤の設計/構築ポイントを紹介
- DevOpsはここから始めよう