ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

なぜLinuxサーバー、プライベートクラウドを使うのか?

2016-02-17 20:02:45 | Weblog
そういえば
◆みずほ銀行次期システム開発を見守るスレ20◆ [無断転載禁止]©2ch.net
http://hanabi.2ch.net/test/read.cgi/infosys/1453909124/
の中で、ちょっと気になった(というか、ふつう、その線はない)という異様な書き込みがあったので、
マジレスしてみる




■サーバーはLinux,クライアントはWindows,Macまたはタブレットが普通

上のスレの7件目などで、Linuxをサーバーに使うことを非難していたが、
ふつう、サーバーはLinuxが、今、ファーストチョイスではないかなあ?
(クラウドOSの場合も含めて)

まず、上記のスレで批判しているLinuxは、ランレベル5で動かしたときではないだろうか?
ランレベル5(GUIが動くようなケース)で、アプリもはじめにインストールし、
さらにその後、プログラムをyumなりapt-getしてアップデートしてしまうと、
インストールしたアプリのバージョンは一致するけど、それ以外のものと、
依存関係のあるライブラリのバージョンがずれたりして、たしかに落ちやすくなる・・・

つまり、ランレベル5にすると、GUI系のアプリが動き、
   いろんなアプリが使える=いろんな依存関係が出来る=落ちやすくなる


・・・が、サーバーに使う場合は、ランレベル3(コマンドラインベース)に設定し、
必要なアプリ以外を入れない。

この場合、
  Windowsがわけわからんプログラムをいれ、通信でsvchostというわけわからん
    プロセスがうごき、メモリをがしゃがしゃ使われるよりかは、
  Linuxで必要なものだけ動き、psでプロセスの動きが見れて、メモリも必要な分だけ
    使ってくれるほうが、動きがわかりやすく、安心できる。
そもそも、Windowsは重い。軽いほうを選びたいのでLinux。
(Tronは組み込みならありだけど、アプリケーションがないよね)

てなことで、サーバーは、必要なアプリケーションを、ランレベル3で、Linuxで動かすことが多いと思う。

なお、この場合、選択肢はRHELなので、フリーかどうかは関係ない。「オープンソース」
であることに意味がある(わかんないことをしていないという意味で)
ubuntuは、実務では怖い(web系ならいけるかも?)。
CentはWeb系でお金ない会社では使うけど、お金あるんなら、
わざわざCentを選ぶ必要はなく、RHEL(ただAmazonEC2上ならAmazonLinux)

一方、クライアント(デスクトップ)は1人で使うのが原則で、
見た目最優先なので、GUIが充実しているWinまたはMac
最近はモバイルという立場からiPadも・・・なの?

Linuxでクライアントの場合、ランレベルは5で動かすから、上記問題より、選ばない
というか、クライアント側はword,Excelが動く必要がある(OpenOfficeでは、見た目が変わるのでX)。
LinuxでWineで動かすと考えるかもしれないけど、それはさすがに実績なさ杉なので、
その選択肢は無い。




■なぜ、クラウドなの?

COBOLだけで動く金融業のシステムなら、クラウドにしないで自社でハード買って(orリースで)動かしてもOK。
なぜなら、金融業は、「短期間に急成長して資源が急に必要になること」は、まずない(せいぜい、2倍とか・・・)
そして、COBOLはプログラム的にスケールしない(動的にメモリを取る方法を言語的に持ち合わせていない)
スケールする需要は少ないので、自社でハード買って動かしてもOK。

・・・と、こ、ろ、が・・・・

これが、Javaだと話が違う。

動的にメモリを取り、かつガベージコレクションが走る。
かりに、急成長しなかったとしても、プログラム的にメモリをいっぱい取ってしまうことはある
(プログラムがださい、ふれーむわーくがださいなど)
通信タイミングによっては、メモリ確保が集中し、ついには、フルガベージコレクションが起こり・・・

  ストップ ザ ワールド!

してしまい、JVMが、ガベージコレクション祭りになってしまうことだってありえる。
こうなるとたいへん。プログラムがガベージコレクションが終わるまで待ち状態となり、
まちまちまちまちココナッツとなって、(うん、ちがう?)いつかはJVMがお亡くなりになることもある。

この事態は、絶対避けなければならない(って、無茶な要求なんだけど)。

そこで、LBを入れて、キケンになったら、スケールするようにする。
これを迅速、自動的に行いたいので、クラウド。




■なぜ、プライベートクラウドなの?

セキュリティ云々の議論は当然ある。
しかし、それが解消した上でも、プライベートクラウドを選ぶ。
理由は、「通信時間・処理速度が読めないから」
パブリッククラウドだと、どこに分散されるかわからない&
処理の混み具合もわかんないので、どのくらいの処理速度に
なるかわからない。

ドンだけ通信距離が離れているかもわからないので、通信時間
もわからない。通信速度もわからない。

これだと、スループットが読めない。
もし、負荷が重なると・・・


  ストップ ザ ワールド!

な~んてことになりかねない。
そこで、プライベートクラウドを選ぶ。




っていうことで、マジレスすると、
Linuxでプライベートクラウドを選んでもそんなにおかしいことは無い。

ただし、ここで問題なのは、
Linuxでプライベートクラウドを選んでも
   そんなにおかしいことは無いが、
   おかしいことが起こらないわけではない。

つまり、EJBで、がんがんにアプリを動かし、がんがんに通信したとき、
あること(テーブルロック待ち、通信のバーストエラーなど)をきっかけに

  ストップ ザ ワールド!

が、起きるなんて・・・

・・・ことがないように、お祈りすることぐらいしか出来ない。
この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 偏向(偏光)放送・・・って... | トップ | React.jsについて聞いてきた! »
最新の画像もっと見る

Weblog」カテゴリの最新記事