流転工房

シンギュラリティをこの目に

「これだけは知っておきたい サーバの常識」読了、、サーバエンジニアの第一歩。


著者に佐野裕氏が含まれているので読んでみた。

sanonosa システム管理コラム集


エントリーサーバとハイエンドサーバの違いや、サーバの設計思想等、「サーバとはなんぞや」という観点から語られていくので、入門者には最適。

興味深かったのは、サーバサイドプログラミング言語の選定の項。

サーバだけではただの箱だし、どんなプログラミング言語を動かすか、選ぶかは以下の観点から重要。

  1. Webアプリケーションの目的を満たすことはできるか
  2. Webアプリケーションの稼動実績は十分か
  3. 開発者の確保は容易か
  4. プログラミング言語のマニュアルやリファレンスのドキュメントが整備されているかどうか
  5. 予算内で開発運用が行えるか


これらを踏まえた上で、システム規模によって選定理由を作っていく。。

小規模Webサイトであれば、PerlPHP等の開発メンテがしやすいインタプリタ型言語を。

速度よりも安定重視のWebサイトであれば、Javaや.Netを。

アクセス数の多い大規模Webサイトであれば、Webページの用途によって使い分ける。
例えば、メンテの多いフロントエンドのページはPerlPHPを、検索ページでは、C++等のコンパイラ言語を、決済ページでは安定性を重視したJavaや.Net等の実績豊富な言語を。


こうした中でサーバエンジニアが押さえておく点は、データベースがボトルネックになりやすいということ。

本書ではコネクションプールを使えるプログラミング言語Java等)を選定することを進めているけど、サーバ担当でもデータベースへの無秩序なコネクションを許容しないようにしたい。

構築したサーバを公開して終了とせず、アプリ開発者(特に共通モジュール担当)と連携し、テスト段階でボトルネックをつぶし込むチューニングや監視を行う必要がある。

改めてサーバと、その上で稼働するプログラミング言語の「組み合わせ」の妙を学ぶことができた。。

サーバエンジニアやインフラエンジニアの第一歩に最適。