NougakuDoCompanion v1.0 : first release.

This document describe the NougakuDoCompanion solution stracture and usage.

Usge:
1.Create a package file of Azure.
  In NougakuDoCompanion, create a package. The result is "NougakuDoCompanion.cspkg" and "ServiceConfiguration.Cloud.cscfg".
2.Upload a package and ServiceConfiguration to Azure hosted service. Then waiting for startup the role instance.
3.Upload NougakuDo.zip and application's zip file of rails to blob storage services.
  Create zip files by using NougakuDoSetupTool.exe.
4.setting configuration.xml.
  Upload configuration.xml to blob storage services.
         or
  In AdminWeb site(port 8080), update application information of application tab.
5.About application mentenance.
  Upload zip files to blob storage services.
  setting configuration.xml on Applications tab or Cleanup tab.
  Application's operation, example for start and stop and etc, on Nougakudo status tab.
  Notice: New version condition is vesion information of configuration.
          Setting configuration.xml and Cleanup perotm within 5 minutes.
          The application's operation of other role instance perform within 15 seconds.


NougakuDoCompanion established  setting of "rails application" automatically. Setting detail is follow.
1.config/application.rb
  if (rails 3.0) then
    add config.action_controller.asset_path = 'application root%s'
  else (rails 3.1)
    remove config.action_controller.asset_path setting.
2.config/environment.rb
  if (rails 3.1) then
    add ENV['RAILS_RELATIVE_URL_ROOT'] = '/application root' on top
  else (rails 3.0)
    remove ENV['RAILS_RELATIVE_URL_ROOT'] setting.
3.config/environments/production.rb
  set true to config.serve_static_assets setting.
4.configEnnou.ru (File copied from config.ru)
  if (Ennoumu as multi instance) then
    add require 'rack/handler/ennoumu' and Rack::Handler::Ennoumu.config :nprocs => # of process after "require" line.
  else (Ennou as single instance)
    remove require 'rack/handler/ennoumu' and Rack::Handler::Ennoumu.config line.
    

The solution stracture is follow:
1.NougakuDoCompanion project
  This purpos is to create Azure package.
2.AdminWeb project
  This purpos is WebRole's implementation and Managemnt portal.
  Port 8080 is NougakuDo management portal.
  NougakudoController and NougakudoLauncher project must build with release.
  Because NougakudoController.exe and NougakudoLauncher.exe is the Link items.
3.NougakudoLauncher project
  This purpos is to launch a rails application by created NougakuDo.
  So this process per a rails application.
4.NougakudoController project
  This purpos is the observe NougakudoLauncher and prepear to NougakuDo and rails applications.
  This program launched by the WebRole's onStart event.
  This program is a silgle process.
5.NougakudoSetupTool project
  This purpos is to make upload files, for example, NougakuDo.zip as NougakuDo runtime and configuration.xml as NougakuDoCompanion configuration and apps.zip as rails application.

Build order is follow:
1.NougakudoLauncher build with release mode.
2.NougakudoController build with release mode.
3.AdminWeb build with any mode.
  Need release mode binary files of NougakudoLauncher and NougakudoController.
4.NougakudoCompanion build with any mode.
5.NougakudoSetupTool build with any mode. Then this buid order is any.


Debug settings is follow:
1.Setting ServiceConfiguration.cfg.
  AdminUserName   :use name of AdminWeb site.
  AdminPassword   :password of AdminWeb site.
  Account   :Blob storage account. When use development fabric, can set any value.
  SharedKey   :Blob storage shared key. When use development fabric, can set any value.
  Container   :Blob storage container name.
  Interval   :Recommend 300 or higher.  unit is second. use to check configuration.xml in interval time.
  VirtualHost   :If use a virtual host, then set dns name of compute service. NougakuDo 1.1.0 above supports a virtual host.

2.Setting AdminWeb project.
  Follow items setting CopyToOutputDirectory property to "Copy if newer".
  Utils\NougakuDoController.exe, Utils\NougakudoLauncher.exe, Utils\UnzipUtility.vbs.
  If Windows Azure deploy, setting CopyToOutputDirectory property to "Do not copy".
  If use development fabric, must be "Copy if newer".

3.Create NogakuDoCompanion logging folders, if possible.
  Create C:\NougakuDoCompanion folder and C:\logs Folder.
  Set acl to full control for System and Administrators and Nerowrk Service and  your account.
  If not exsists NougakuDoCompanion logging folder, created NougakuDoCompanion logging folders.
  NougakuDoCompanion folder used logging and symbolic link as local resources.

4.NougakudoConroller only debug.
  Setting azure.xml.
  The buid mode can set any mode.
  But need a release mode binary of NougakudoLauncher.

5.After debug start or before debug start.
  Upload NougakuDo.zip to blob storage service.
  Upload apps.zip as rails application zip file to blob storage service.
  final, upload configuration.xml to blob storage service. must be final.

6.When debugging multi instances(on Development Fabric).
  Please comment out of follow line in GetShortcutRoot method of ShortcutPathUtility class.
  Constants.NOUGAKUDO_NAME = RoleEnvironment.CurrentRoleInstance.Id

Japanese is follow.

NougakuDoCompanion v1.0:最初のリリースです。

このドキュメントは、NougakuDoCompanionの使い方とソリューション構造を説明します。

使い方:
1.Azure用のパッケージを作成します。
  NougakuDoCompanion プロジェクトを使ってパッケージを作成します。作成結果は、 "NougakuDoCompanion.cspkg" と "ServiceConfiguration.Cloud.cscfg" になります。
2.作成したパッケージと構成ファイルを Azure ホステッド サービスへアップロードします。そして、ロール インスタンスが起動するまで待ちます。
3.NougakuDo.zip と rails アプリケーションの zip ファイルを blob ストレージサービスへアップロードします。
  zip ファイルの作成に、 NougakuDoSetupTool.exe を使用できます。
4.configuration.xml を設定します。
  configuration.xml を blob ストレージサービスへアップロードします。
  もしくは、
  AdminWeb サイト(ポート 8080)を使って、 application タブでアプリケーション情報を更新します。
5.アプリケーション メンテナンスについて
  zip ファイルを blob ストレージ サービスへアップロードします。
  Applications タブでconfiguration.xml を構成します。
  Cleanup タブで configuration.xmlを初期化します。
  Nougakudo statusタブでアプリケーションに対する操作(停止、開始など)を行います。
  注意:新しいバージョンかどうかの判断にバージョン番号を使用していることに注意してください。
        configuration.xmlに対する操作は、約5分以内に処理されることに注意して下さい。
        他のインスタンスで動作するアプリケーションに対する操作は、約15秒以内に処理されることに注意して下さい。

NougakuDoCompanion は、"rails application" の設定を自動的に行います。設定内容を以下に示します。
1.config/application.rb
  rails 3.0の場合
    config.action_controller.asset_path = 'application root%s' を追加します。
  rails 3.1の場合
    config.action_controller.asset_path の行を削除します。
2.config/environment.rb
 rails 3.1の場合
    ENV['RAILS_RELATIVE_URL_ROOT'] = '/application root' を先頭に追加します。
  rails 3.0の場合
    ENV['RAILS_RELATIVE_URL_ROOT'] の行を削除します。
3.config/environments/production.rb
  config.serve_static_assets を true に設定します。
4.configEnnou.ru(config.ru をコピーして使用します)
  Ennoumu(マルチ インスタンス)の場合
    require 'rack/handler/ennoumu' と Rack::Handler::Ennoumu.config :nprocs => # of process を "require" の直後に追加します。
  Ennou(シングル インスタンス)の場合
    require 'rack/handler/ennoumu' と Rack::Handler::Ennoumu.config の行を削除します。
 

ソリューションは、以下の構造です:
1.NougakuDoCompanion プロジェクト
  Azure パッケージを作成するためのプロジェクトです。
2.AdminWeb プロジェクト
  WebRoleの実装と能楽堂の管理ポータルです。
  ポート8080が管理ポータルです。
  NougakudoControllerと NougakudoLauncher を リリースビルドしなければなりません、
  なぜなら、この2つはリリースビルドのリンクアイテムとなっているからです。
3.NougakudoLauncher プロジェクト
  このプログラムは、能楽堂を使って作成されたrailsアプリケーションを起動します。
  このプログラムは、railsアプリケーションごとに1つのプロセスが起動されます。
4.NougakudoController プロジェクト
 このプログラムは、能楽堂の実行モジュールやrailsアプリケーションの展開を行い、NougakudoLauncherを
 使ってrailsアプリケーションを起動します。そして、NougakudoLauncherの監視を行います。
 このプログラムは、WebRoleのonStartイベントから起動されます。
 シングルプロセスで動作します。
5.NougakudoSetupTool プロジェクト
 このプログラムは、アップロード ファイルを作成するためのものです。NougakuDo 本体である NougakuDo.zip、 NougakuDoCompanion の設定ファイルである configuration.xml、 rail アプリケーションの zipファイルを作成します。

ビルドは以下に示す順序で行わなければなりません:
1.NougakudoLauncher は、必ずリリースモードでビルドします。
2.NougakudoController  は、必ずリリースモードでビルドします。
3.AdminWeb は、どのモードでビルドしても結構です。
  NougakudoLauncherとNougakudoControllerのリリースモードでビルドしたexeを必要とします。
4.NougakudoCompanion  は、どのモードでビルドしても結構です。
5.NougakudoSetupTool は、どのモードでビルドしても結構です。また。ビルド順序に依存性はありません。

デバッグ用の設定情報を以下に示します:
1.ServiceConfiguration.cfg の設定情報。
  AdminUserName   :AdminWeb サイトで使用するユーザー名。
  AdminPassword   :AdminWeb site サイトで使用するパスワード。
  Account   :Blob ストレージのアカウント名。Development fabric を使用する場合は、何でも結構です。
  SharedKey   :Blob ストレージのシェアードキー。Development fabric を使用する場合は、何でも結構です。
  Container   :Blob ストレージのコンテナー名。
  Interval   :300 か以上を推奨します。単位は、秒になります。configuration.xml の更新を確認するインターバル時間として使用します。
  VirtualHost   :仮想ホストを使用する場合は、コンピュート サービスの DNS 名を設定します。 NougakuDo 1.1.0 以上で、仮想ホストをサポートしています。

2.AdminWeb プロジェクトの設定。
  以下のアイテムの「出力ディレクトリにコピー」プロパティを "新しい場合はコピーする" に設定してください。
  Utils\NougakuDoController.exe, Utils\NougakudoLauncher.exe, Utils\UnzipUtility.vbs.
  Windows Azure に配置する場合は、「出力ディレクトリにコピー」プロパティを "コピーしない" に設定できます。
  Development fabric の使用時は、必ず "新しい場合はコピーする" にしなければなりません。

3.可能なら、NougakuDoCompanion ロギングフォルダーを作成してください。
  C:\NougakuDoCompanion と C:\logs フォルダーを作成して下さい。
  作成したフォルダーに対して、System、Network Service、Administrators およびデバッグに使用しているユーザーアカウントにフルコントロールの ACL を設定してください。
  NougakuDoCompanion ロギングフォルダーが無ければ、自動的に作成されます。
  NougakuDoCompanion ロギングフォルダーは、ロギングと Azure ローカルリソースのシンボリック リンクで使用します。

4.NougakudoConroller のみをデバッグする設定情報。
  azure.xml を設定します。
  ビルドモードは何でも構いませんが、 NougakudoLauncher のリリースモードの実行ファイルを必要とします。

5.デバッグの開始後、あるいはデバッグの開始前の作業
  NougakuDo.zip を blob ストレージにアップロードします。
  rails アプリケーションである zip ファイルを blob ストレージにアップロードします。
  最後に、configuration.xml を blob ストレージにアップロードします。このアップロードは、最後でなければなりません。

6.マルチ インスタンスでデバッグを行う場合(Development Fabric)
  ShortcutPathUtilityクラスのGetShortcutRootメソッドの、以下の行をコメントアウトして下さい。
  Constants.NOUGAKUDO_NAME = RoleEnvironment.CurrentRoleInstance.Id

Last edited Nov 9, 2011 at 8:53 AM by arai, version 5

Comments

No comments yet.