Hatena::Groupcatalyst

dann@catalyst このページをアンテナに追加 RSSフィード

2008-02-01

複数台構成へのスケールのためのXen

18:58 |  複数台構成へのスケールのためのXen - dann@catalyst を含むブックマーク はてなブックマーク -  複数台構成へのスケールのためのXen - dann@catalyst  複数台構成へのスケールのためのXen - dann@catalyst のブックマークコメント

OS一つで1台構成だと、複数台に移行するときに、設定も含めて書き換えが必要になってしまう。

  • Xenで構成して、Web、App、DBサーバー用の複数のVMをDeploy
  • サーバーが増やせるようになった場合
    • DBサーバー用のVMをライブマイグレーションで移動する
    • AppサーバーのVMは削除. Koanで新しいVM作成.
    • Deploy実行

なんてことをすればいいじゃないかと思った。

Xenがどれくらい使えるレベルのものなのか知らないけれど、物理的なサーバーを意識させないDeployment環境ってのが必要な気がする。自宅サーバーに必要かといわれると、微妙だけど。。。

アジャイルな環境作り

18:58 |  アジャイルな環境作り - dann@catalyst を含むブックマーク はてなブックマーク -  アジャイルな環境作り - dann@catalyst  アジャイルな環境作り - dann@catalyst のブックマークコメント

アジャイルな環境作り - そんなに急いでどこへ行く

http://blog.masuidrive.jp/index.php/2007/09/03/agile/

大体、やりたいことはこんな感じだなぁ。これのCatalyst版をやればいいんじゃないかと思ってる。

Catalystで10分でアプリを作るのは、catastarterとかがあればできちゃうけれど、実際にサービスとして公開するには結構ギャップがある。複数個のアプリをデプロイしようと思うと、これまたギャップがある。それを簡単にするための仕組みをつくろうかなと。

CapistranoでApacheのWebサーバーの設定ファイルを生成

17:42 |  CapistranoでApacheのWebサーバーの設定ファイルを生成 - dann@catalyst を含むブックマーク はてなブックマーク -  CapistranoでApacheのWebサーバーの設定ファイルを生成 - dann@catalyst  CapistranoでApacheのWebサーバーの設定ファイルを生成 - dann@catalyst のブックマークコメント

以下のようなタスクでApacheのファイルを生成するようにしてみた。

やっていることは、

  • ERBのテンプレートから設定ファイル読み込んで
  • テンプレートからApacheの設定ファイルを生成して
  • 設定ファイルをサーバーにアップロード

deploy.rbに以下の変数を設定

set :apache_web_config_dir, "/path/to/apache_config_dir"
set :appserver_ips, ["192.168.0.2", "192.168.0.3"]

タスクは以下のような感じ

  desc "Creates an Apache 2.2 compatible virtual host configuration file for web server"
  task :create_apache_web_config, :roles => :web do
    config_template = File.read(File.dirname(__FILE__) + "/templates/apache_web.erb");
    config = ERB.new(config_template).result(binding)
    put config, "/tmp/apache-web-#{subdomain}.#{domain}-#{application}.conf"
    sudo "mv /tmp/apache-web-#{subdomain}.#{domain}-#{application}.conf #{apache_web_config_dir}"
  end

config/template/apache_web.erbは以下のような感じ。

NameVirtualHost *:80
<VirtualHost *:80>
        <IfModule proxy_module>
            # フロントのproxyが詰まらないようにする
            # ために、timeout時間を短くする
            ProxyTimeout 3
        </IfModule>

        ServerName <%= subdomain %>.<%= domain %>
        ServerAdmin webmaster@localhost

        DocumentRoot <%= deploy_to %>/current/root
        Alias /static <%= deploy_to %>/current/root/static

        ProxyRequests Off
        <Proxy *>
            Order deny,allow
            allow from all
        </Proxy>

        # App server
        <Proxy balancer://<%= application %>/>
            <% appserver_ips.each do |appserver_ip| %>
            BalancerMember http://<%= appserver_ip %>:8080 loadfactor=10 keepalive=On
            <% end %>
        </Proxy>

        ProxyPass /static/images !
        ProxyPass /static/js !
        ProxyPass /static/css !
        ProxyPass /favicon.ico !
        ProxyPass / balancer://<%= application %>/
        ProxyPassReverse / balancer://<%= application %>/
        # バックエンドでVirtualHostの場合に
        ProxyPreserveHost On

       <Location /static>
            SetHandler  default-handler

            # mod_filterでdeflate
            <IfModule filter_module>
                FilterDeclare deflate CONTENT_SET
                FilterProvider deflate DEFLATE Content-Type /text\x2F\w+|application\x2Fx-javascript/
                FilterChain deflate
            </IfModule>
            # mod_expiresでexpire
            <IfModule mod_expires.c>
                ExpiresActive On
                ExpiresDefault "access plus 1 year"
                ExpiresByType image/gif "access plus 1 week"
                ExpiresByType image/jpeg "access plus 1 week"
                ExpiresByType image/png "access plus 1 week"
                ExpiresByType application/x-shockwave-flash "access plus 1 week"
                ExpiresByType text/html "access plus 1 week"
                ExpiresByType text/css "access plus 1 week"
                ExpiresByType application/x-javascript "access plus 1 week"
            </IfModule>
       </Location>

       ErrorLog <%= deploy_to %>/current/logs/apache_web/error.log
       LogLevel warn
       CustomLog <%= deploy_to %>/current/logs/apache_web/access.log combined
       ServerSignature On
</VirtualHost>

TODO

  • appserver_ipsと role :webの設定がダブっちゃっているのがいまいち...
  • 上記のタスクをどの段階で呼ぶのかの検討
    • setup, or after_update_code?
  • catastarterへの追加
    • もうちょっと構成を検討しおえたら。

大体、CapistranoとERBの使い方も大体わかったので、これからテンプレート追加していくのは簡単かなと。Capistranoでの構成とCatalystの構成にあわせて、オレオレ環境で一発Deployできるようにまでしていこうかなと。

Webサーバー、アプリケーションサーバー、DBサーバーの自動設定をしないといけないなと。実際にやろうとすると、まだまだやることありそうだなぁ。

WilliamidemaWilliamidema2019/02/02 09:56ist cialis rezeptpflichtig
cialis london delivery
<a href=https://kellyannehulme.com>Cheap cialis buy</a>
you tube cialis
cialis 20mg user reviews
https://kellyannehulme.com
cialis online america
what does cialis do for men
<a href=https://kellyannehulme.com>20 mg cialis</a>
cheap cialis online canadian pharmacy
cialis online bestellen mit rezept
https://greatwinesgrandhouses.com

ArnoldwalArnoldwal2019/02/05 18:01cialis over seas
cialis generika shop
<a href="http://xcialisxx.com">Buy Cialis Online</a>
walmart pharmacy cialis pills
is adcirca cheaper than cialis
<a href="http://xcialisxx.com">Buy Cialis Online</a>
cialis generico espana
order cialis online south africa
<a href="http://cialisfurr.com">Buy Cheap Cialis Online</a>

KelhitaKelhita2019/05/12 21:06Priligy Originale Vendita On Line <a href=http://drugsir.com>cheap cialis</a> Acheter Cialis Quebec Buy Levitra In Us Without Prescription Propecia Cost Buy

LesEntilaLesEntila2019/07/31 03:44Generico Kamagra Francia Viagra En Poudre <a href=http://euhomme.com>cheap cialis online</a> Viagra.Fr Viagra Cialis Prostata Tadalafil

LesEntilaLesEntila2019/08/04 05:57Buy Stendra Avanafil Online Cod Without A Script <a href=http://sildenaf100.com>viagra</a> Francia Kamagra In Linea To Buy Tadalis Sx Soft Propecia Tijdens Zwangerschap

LesEntilaLesEntila2019/08/08 17:20Cialis Da 10 Kamagra Oral Jelly Frankfurt Cymbalta Philippines <a href=http://viaabuy.com>viagra</a> Acquisto Viagra On Line Online Pharmacy Panic Attack Medicines

トラックバック - http://catalyst.g.hatena.ne.jp/dann/20080201