中山テック 代表の中山です。

まだまだ続くよWildFly特集(笑)

さて、WildFly管理画面のススメ(前編)のブログで触れましたが、wildflyにはstandaloneモードとdomainモードがあります。

それぞれの違いと利点をお話したいと思います。

図解

違いを説明する前にこちらをご覧ください。
図解するとこのような違いがあります。

standaloneモードとdomainモードの図解。クリックで拡大します。


※20分の力作です!(笑)

standaloneモード

まずstandaloneモードについてお話します。

standaloneモードは文字の通りサーバ単体として動きます。
通常のサーバ同様でクラスタ設定をしなければ1ポートのみの入り口となります。
もし入り口を増やしたければ別ポートで新規サーバを立てなければなりません。

standaloneモードで何が悪いと言うことでもありません。
起動が早いという利点があるので1サーバでOKとなれば、standaloneモードを推奨するぐらいです。

domainモード

入り口は1つですが、比較的簡単に仮想サーバを立てられる利点があります。
つまり、コンテナそのものがhttpサーバのような役割を持てるのです。

大規模開発において、簡単にサーバを増やせない現場も多いことからwildflyが威力を発揮します。
利点は後述するとして、まずはdomainモードの仕組みをお話したいと思います。

domainコントローラー

通信の受け口という意味ではstandaloneモードと一緒です。
しかし、domainモードでは、このdomainコントローラーがhostと呼ばれるサーバ群に振り分けます。

ちなみに振り分けの判断材料は「ポート番号」となるため、事前にどこに穴を開けるか決めておく必要があります。
hostコントローラーのためのHTTPサーバと思って頂ければよいと思います。

hostコントローラー

仮想サーバの入口に当たり、割り振るためのHTTPサーバと思ってください。
ここでは「host」と呼ぶことにします。

hostはポートで振り分けられ、独立して起動することが可能な状態であります。
これにより、クラスタ設定せずとも簡単に仮想サーバを立てることができるのです。

サーバグループ

グループの作成も可能です。
1グループ1サーバの起動が可能となっています。
※2021/1/13 追記
全サーバー稼働が可能です

これの利点は「サービス」毎の振分けが可能な点だったり、ホットスタンバイとしての機能を提供してくれる点だと思ってます。

例えば、サービスAの機能をサーバグループ1、サービスBの機能をサーバグループ2として日にち毎で試験を行う(大規模開発ではリソースに限りがあるので日付で試験が出来るできないはよくあります)。

また同じ機能を二つ盛り込んで片方が落ちたらもう片方を予備用サーバとして起動させるホットスタンバイも可能です。

サーバ

アプリを組み込むための仮想サーバとなります。
ポート番号指定されているので各々独立したアクセスが可能となります。
ただし、前述のようにサーバは1台稼働となっているのでスケジュール調整が必要な場合があります。

利点

standaloneモードの利点

動きはTomcatと同様で、軽いことが挙げられます。
サーバの起動の速さはdomainモードにはないスピードです。
複雑なサーバ構成でなければstandaloneモードをおすすめします(もしくはTomcatでもいいかも・・・)

domainモードの利点

standaloneモードに比べると起動は重いですが、比較的簡単にクラスタ構成を構築することが出来ます。
これは大規模開発で各チームが独立して試験工程を行えるという大変大きな利点があります。

例えば、1つのシステムでリリース時期が違う、更に結合試験の時期が被る場合に試験実施の資材をわけなければいけません。
その際、サーバグループ1は早い方のリリース、2は遅い方のリリースの資材を配置することが出来るのです。

まとめ

このようなトピックは大規模開発に従事している方が殆どだと思いますが、結合試験以降はdomainモードをおすすめします。
また、ローカルでの開発はstandaloneモードでスピード感ある開発が可能になるので、使い分けできるとスムーズだと思います。

クセが強いながらも利点も多いWildFly(JBoss)、是非使ってみてはいかがでしょうか。

最後に 中山テックについて

中山テックでは下記のお仕事を承っています。

ホームページ制作系

ご料金はサービス内容・料金を参照ください。

■ホームページ制作
※ロゴ、バナーは外注となります
■SEO対策
Googleガイドライン診断、マネジメント、ブログ執筆など

システム開発系(SES請負契約向け)

■役職
プロジェクトマネジメント、PMO、リーダー、開発(要件定義~納品まで)

■スキル
工数見積(FP法)、折衝・提案、計画、調査、設計、実装(C、Java、クライアント系、SQL等)、データベース全般、テスト計画・項目作成、運用・保守

その他

Excel、プログラミングなどソフト系のお困りごと

対象地域

千葉県:東葛エリア(松戸市、柏市、我孫子市、市川市、流山市、船橋市、鎌ヶ谷市、白井市、浦安市)、市原市 他要相
茨城県:取手市、土浦市、他要相談
埼玉県:三郷市、草加市、春日部市、他要相談
東京都:23区、他要相談

ご質問ございましたら、お問い合わせページよりご連絡ください。