Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
DRUPALをCLOUDで動かそう
Satoshi Kino (d.o name as qchan)
http://an-nai.jp
satoshi.kino

© satoshi kino , ANNAI LLC
1
• 紀野

惠 ( Satoshi Kino)

• ANNAI

LLC, ㈱ジオどす 代表

• Drupal

User Group
groups.drupal.org/japan  Co-Manager

• DrupalCafe

(...
Drupalって? 

オープンソースCMS(コンテンツ・マネージメント・システム)

と思われていますが、、、

© satoshi kino , ANNAI LLC
3
Drupalって? 
Drupalは、オリジナルのCMSを作るフレ
ームワークと考えてください。
既存のCMSパッケージを導入するつもり
でいると、確実に裏切られます。
管理画面からも制作可能な開発ツールと
考えた方がしっくりきます。

© s...
Drupalの特徴

•
•
•
•
•
•

オープンソースであること
拡張性を優先したフレームワーク志向であること
デザインの自由度が高い
先進性
スケーラビリティ
巨大なコミュニティに支えられていること

© satoshi kino ,...
汎用性の高いCMS
•

基本機能は抑えて、ミニマルなコアパッケージ

•

•
•

インストール直後はほぼ何も出来ないくらいの印象

20,000を超えるモジュール群
拡張性を再優先して、いかようにでも形が変えられるのでカスタマイズ
の要望...
特化型CMSではない強み
•

特化型CMSには不可能な合わせ技も簡単

•

SNS + ECommerce

•

E-Learning + Blogポータル

•

キャンペーンサイト + CRM

•

brochureサイト + プロ...
「Drupal」が得意なジャンルは?
複雑な内部構造と仕様を持つシステムが得意
特に、政府・自治体・大学・グローバル企業
でのシェアが高い

© satoshi kino , ANNAI LLC
8
高等教育機関でのシェア26% !

© satoshi kino , ANNAI LLC

acquia.com
9
政府・自治体システムシェア 24% !!

© satoshi kino , ANNAI LLC

acquia.com
10
アメリカ政府 White House

© satoshi kino , ANNAI LLC
11
米国 オープンデータ・ポータル
© satoshi kino , ANNAI LLC
12
英国 オープンデータポータル
© satoshi kino , ANNAI LLC
13
Code For America   
世界銀行がバックアップしているハッカソンポータル

© satoshi kino , ANNAI LLC
14
アメリカ合衆国商務省

© satoshi kino , ANNAI LLC
15
フランス政府・ポータル
© satoshi kino , ANNAI LLC
16
Johnson & Johnson

© satoshi kino , ANNAI LLC
17
Pfizer製薬

© satoshi kino , ANNAI LLC
18
Sony Music Entertainment
© satoshi kino , ANNAI LLC
19
グラミー賞
© satoshi kino , ANNAI LLC
20
The Linux Foundation

© satoshi kino , ANNAI LLC
21
ハーバード大学発、Drupal Distribution

© satoshi kino , ANNAI LLC
22
Ubuntu
© satoshi kino , ANNAI LLC
23
Web担当者Forum
© satoshi kino , ANNAI LLC
24
Kansai Open Forum
© satoshi kino , ANNAI LLC
25
Cloud ?

Drupalは規模の大きな多言語・グローバルサイトが多いため
ホスティングとしてのクラウド環境はすでに一般的です

© satoshi kino , ANNAI LLC
26
Drupal on Engine Yard
Ruby on Rails、Rails Likeなフレームワーク向けのPaaS
として有名なEngine Yard

CMS由来のフレームワーク Drupalの情報は英語でも
ほとんど出回っていません...
Deploy
(Engine Yard)

Feature(git)

Engine Yardを使ったDeploy例
© satoshi kino , ANNAI LLC
28
Feature ?
Drupalでの大きな制作案件は、共同での開発が多くなってきました。
現行D7ではコンフィグ情報がDBに入ることもあって、Featureという単位で
のコード(モジュール)のやり取りがCI手法の主流です。
2014リリース予...
Deploy
(Engine Yard)

Data(drush)

Code(git)

簡易版をデモ
© satoshi kino , ANNAI LLC
30
Demo

今回はFeatureを使わない簡易的な方法でのデモをお見せします。
Data(SQL)を別途Drushを使ってEngine YardにDeployする方法です。

© satoshi kino , ANNAI LLC
31
注意

Drupalコミュニティとしては、Fork, Hackはオススメできません。
コミュニティあってのDrupalです。
コミュニティサポートを受け続ける前提で設計しましょう。

Engine YardのDeploy機能を初期インストールに...
• 準備
• ローカル開発環境Drupal(VM,MAMP等)
•

Docker でもVagrantでも

• git
•

リモートリポジトリ(Github, Bitbucket等)

現状、EYへ継続的なDeployをするためにはDrup...
手順 
☆ drupal インストールフォルダ内の.gitignoreを編集し、
  sites/以下のファイルもgit管理下に置く
* Drushでのコア・アップデート時にoverrideされるのでバックアップを

# Ignore confi...
手順 
☆ インストールフォルダに Engine Yardのデプロイ・フック・
ファイル deploy/before_bundle.rb を設置
DB接続情報などを外部にコピーしシンボリックリンクを貼る

Engine Yardはリポジトリから...
deploy/before_bundle.rb

をinstall directoryへ

# link settings.php
if !File.exist?(config.shared_path + "/sites/default/sett...
手順 

☆ EnginYardからアクセスできるGit repositoryにローカル開発環
境などからPush

© satoshi kino , ANNAI LLC
37
手順 

☆ Engine Yard にDeploy!!

あとちょっとです。

© satoshi kino , ANNAI LLC
38
手順 
☆Engine YardへSSHでログインし、移動させたsettings.phpにDB情報を追記
DB接続情報は
/data/{your_app}/shared/config/database.yml
に記載されています。
$databa...
手順 

以後、このSettings.phpはローカルやリモート・リポジトリの影響を受けません。
*EY, EnvironmentのStop、boot時にHostが変更されるので手動での書き換えが必要
*環境毎にsettings.phpを読み分...
手順 
☆ (別)settings.phpに環境変数から読み込ませる
* これをほどこすと、EnviromnetのStop, Bootにかかわらず使えるのだが、
  テストではDrushと相性が悪かった。今後に期待。

$databases =...
手順 

☆ Drupal 初期インストールの場合
settings.phpが既に設置されているので、初回アクセス時に
ドキュメントルートを見に行くとインストーラーのエラーがで
ます。
http://{your_domein}/install....
手順 
☆ 開発中アプリをDeployする場合
  DBのシンクロが必要

ここが、Drupal, Wordpress、Ec-CubeなどCMS的なアプローチを採用しているプロダクトに特有のところ。
ブラウザ上から行った開発・設定操作がDBへ入...
手順 
☆ DrushをEngine Yard側にもインストールしておくと、
DBのSyncが一発
Drush とは Drupal shell という意味のコマンドラインツールで、Drupalの開発に欠かせないものです。
EngineYardは...
☆ Drush Aliasを設定し、Engine Yard上Drupalの操作を遠隔から行う。
http://drush.ws/examples/example.aliases.drushrc.php
Drushを使うと、複数のアプリ情報を管理...
手順 
☆ DBデータのSynch

ローカルとEngine YardのDB Sync
これだけ!!
drush sql-sync @self @ey.EY

© satoshi kino , ANNAI LLC
46
番外
☆ Drushでのコード・デプロイも可能
2行のコマンドでサイト一式のデプロイ完了
コンテンツだけを移行したい場合は別の方法があります。

drush rsync @self @ey.EY

ちなみに、これでsettings.php抜きの...
次は、海外で伸びているDrupal専用Passの現状がどうなっているかを見てみま
しょう
* Pantheon https://www.getpantheon.com/
* Acquia Cloud http://www.acquia.com/...
毎月、DrupalCafeを開催しています。
ぜひ来てください。

© satoshi kino , ANNAI LLC
49
Japan Users Group
groups.drupal.org/japan

© satoshi kino , ANNAI LLC

2014

ANNAI
50
4/12(土)にはDrupalCamp in Japan KYOTOを予定しています。

© satoshi kino , ANNAI LLC
51
ありがとうございました。

Satoshi Kino (d.o name as qchan)
http://an-nai.jp
satoshi.kino

© satoshi kino , ANNAI LLC
52
Upcoming SlideShare
Loading in …5
×

Drupal deployment trial on Engine Yard

3,445 views

Published on

Drupal deployment trial on Engine Yard
(Japanese)

Published in: Technology
  • Be the first to comment

Drupal deployment trial on Engine Yard

  1. 1. DRUPALをCLOUDで動かそう Satoshi Kino (d.o name as qchan) http://an-nai.jp satoshi.kino © satoshi kino , ANNAI LLC 1
  2. 2. • 紀野 惠 ( Satoshi Kino) • ANNAI LLC, ㈱ジオどす 代表 • Drupal User Group groups.drupal.org/japan  Co-Manager • DrupalCafe (毎月開催) Organizer • KansaiOpenForum OpenSourceConference Kyoto 実行委員 © satoshi kino , ANNAI LLC 2
  3. 3. Drupalって?  オープンソースCMS(コンテンツ・マネージメント・システム) と思われていますが、、、 © satoshi kino , ANNAI LLC 3
  4. 4. Drupalって?  Drupalは、オリジナルのCMSを作るフレ ームワークと考えてください。 既存のCMSパッケージを導入するつもり でいると、確実に裏切られます。 管理画面からも制作可能な開発ツールと 考えた方がしっくりきます。 © satoshi kino , ANNAI LLC 4
  5. 5. Drupalの特徴 • • • • • • オープンソースであること 拡張性を優先したフレームワーク志向であること デザインの自由度が高い 先進性 スケーラビリティ 巨大なコミュニティに支えられていること © satoshi kino , ANNAI LLC 5
  6. 6. 汎用性の高いCMS • 基本機能は抑えて、ミニマルなコアパッケージ • • • インストール直後はほぼ何も出来ないくらいの印象 20,000を超えるモジュール群 拡張性を再優先して、いかようにでも形が変えられるのでカスタマイズ の要望に合わせやすい © satoshi kino , ANNAI LLC 6
  7. 7. 特化型CMSではない強み • 特化型CMSには不可能な合わせ技も簡単 • SNS + ECommerce • E-Learning + Blogポータル • キャンペーンサイト + CRM • brochureサイト + プロジェクト管理 • などなどすべてはアイデア次第です © satoshi kino , ANNAI LLC 7
  8. 8. 「Drupal」が得意なジャンルは? 複雑な内部構造と仕様を持つシステムが得意 特に、政府・自治体・大学・グローバル企業 でのシェアが高い © satoshi kino , ANNAI LLC 8
  9. 9. 高等教育機関でのシェア26% ! © satoshi kino , ANNAI LLC acquia.com 9
  10. 10. 政府・自治体システムシェア 24% !! © satoshi kino , ANNAI LLC acquia.com 10
  11. 11. アメリカ政府 White House © satoshi kino , ANNAI LLC 11
  12. 12. 米国 オープンデータ・ポータル © satoshi kino , ANNAI LLC 12
  13. 13. 英国 オープンデータポータル © satoshi kino , ANNAI LLC 13
  14. 14. Code For America    世界銀行がバックアップしているハッカソンポータル © satoshi kino , ANNAI LLC 14
  15. 15. アメリカ合衆国商務省 © satoshi kino , ANNAI LLC 15
  16. 16. フランス政府・ポータル © satoshi kino , ANNAI LLC 16
  17. 17. Johnson & Johnson © satoshi kino , ANNAI LLC 17
  18. 18. Pfizer製薬 © satoshi kino , ANNAI LLC 18
  19. 19. Sony Music Entertainment © satoshi kino , ANNAI LLC 19
  20. 20. グラミー賞 © satoshi kino , ANNAI LLC 20
  21. 21. The Linux Foundation © satoshi kino , ANNAI LLC 21
  22. 22. ハーバード大学発、Drupal Distribution © satoshi kino , ANNAI LLC 22
  23. 23. Ubuntu © satoshi kino , ANNAI LLC 23
  24. 24. Web担当者Forum © satoshi kino , ANNAI LLC 24
  25. 25. Kansai Open Forum © satoshi kino , ANNAI LLC 25
  26. 26. Cloud ? Drupalは規模の大きな多言語・グローバルサイトが多いため ホスティングとしてのクラウド環境はすでに一般的です © satoshi kino , ANNAI LLC 26
  27. 27. Drupal on Engine Yard Ruby on Rails、Rails Likeなフレームワーク向けのPaaS として有名なEngine Yard CMS由来のフレームワーク Drupalの情報は英語でも ほとんど出回っていません © satoshi kino , ANNAI LLC 27
  28. 28. Deploy (Engine Yard) Feature(git) Engine Yardを使ったDeploy例 © satoshi kino , ANNAI LLC 28
  29. 29. Feature ? Drupalでの大きな制作案件は、共同での開発が多くなってきました。 現行D7ではコンフィグ情報がDBに入ることもあって、Featureという単位で のコード(モジュール)のやり取りがCI手法の主流です。 2014リリース予定のDrupal8からはすべてのコンフィグがファイル化され様 変わりします。 より一般的なCIフローになっていくでしょう。 © satoshi kino , ANNAI LLC 29
  30. 30. Deploy (Engine Yard) Data(drush) Code(git) 簡易版をデモ © satoshi kino , ANNAI LLC 30
  31. 31. Demo 今回はFeatureを使わない簡易的な方法でのデモをお見せします。 Data(SQL)を別途Drushを使ってEngine YardにDeployする方法です。 © satoshi kino , ANNAI LLC 31
  32. 32. 注意 Drupalコミュニティとしては、Fork, Hackはオススメできません。 コミュニティあってのDrupalです。 コミュニティサポートを受け続ける前提で設計しましょう。 Engine YardのDeploy機能を初期インストールにだけ利用する方法は採用しない © satoshi kino , ANNAI LLC 32
  33. 33. • 準備 • ローカル開発環境Drupal(VM,MAMP等) • Docker でもVagrantでも • git • リモートリポジトリ(Github, Bitbucket等) 現状、EYへ継続的なDeployをするためにはDrupal.orgのrepositoryは使えない 別途リモート リポジトリが必要 • Engine Yard アカウント • チャットでの提案型のヘルプは驚きがありますよ • 表示パフォーマンスもかなりよく、スケールも非常に簡単です © satoshi kino , ANNAI LLC 33
  34. 34. 手順  ☆ drupal インストールフォルダ内の.gitignoreを編集し、   sites/以下のファイルもgit管理下に置く * Drushでのコア・アップデート時にoverrideされるのでバックアップを # Ignore configuration files that may contain sensitive information. sites/*/settings*.php # Ignore paths that contain user-generated content. sites/*/files sites/*/private © satoshi kino , ANNAI LLC 34
  35. 35. 手順  ☆ インストールフォルダに Engine Yardのデプロイ・フック・ ファイル deploy/before_bundle.rb を設置 DB接続情報などを外部にコピーしシンボリックリンクを貼る Engine Yardはリポジトリからのデプロイの度に、インストールフォルダごとのSnapshot を取って、Webサーバーのドキュメントルートからシンボリックリンクを付け替えて います。 接続情報などを外部化しておくと、Deployごとの書き換えが不要になります。 しかし、settings.phpを除くsites以下は全て同期させないとモジュールやテーマ、ファイ ルなど開発中のDrupal全体としてDeployできなくなるので注意が必要です。 © satoshi kino , ANNAI LLC 35
  36. 36. deploy/before_bundle.rb をinstall directoryへ # link settings.php if !File.exist?(config.shared_path + "/sites/default/settings.php")  then  run "mkdir -p #{config.shared_path}/sites/default && cp -a #{config.release_path}/sites/default/ settings.php #{config.shared_path}/sites/default/settings.php" end run "rm -Rf #{config.release_path}/sites/default/settings.php && ln -s #{config.shared_path}/sites/ default/settings.php ./sites/default/settings.php" © satoshi kino , ANNAI LLC 36
  37. 37. 手順  ☆ EnginYardからアクセスできるGit repositoryにローカル開発環 境などからPush © satoshi kino , ANNAI LLC 37
  38. 38. 手順  ☆ Engine Yard にDeploy!! あとちょっとです。 © satoshi kino , ANNAI LLC 38
  39. 39. 手順  ☆Engine YardへSSHでログインし、移動させたsettings.phpにDB情報を追記 DB接続情報は /data/{your_app}/shared/config/database.yml に記載されています。 $databases = array ( 'default' => array ( 'default' => array ( 'database' => ‘{your_db}’, 'username' => ‘{your_dbname}’, 'password' => ‘{your_password}’, 'host' => ‘{your_host}’, 'port' => '', 'driver' => 'mysql', 'prefix' => '', ), ), ); © satoshi kino , ANNAI LLC 39
  40. 40. 手順  以後、このSettings.phpはローカルやリモート・リポジトリの影響を受けません。 *EY, EnvironmentのStop、boot時にHostが変更されるので手動での書き換えが必要 *環境毎にsettings.phpを読み分けるスクリプトを作る方法もあり © satoshi kino , ANNAI LLC 40
  41. 41. 手順  ☆ (別)settings.phpに環境変数から読み込ませる * これをほどこすと、EnviromnetのStop, Bootにかかわらず使えるのだが、   テストではDrushと相性が悪かった。今後に期待。 $databases = array ( 'default' => array ( 'default' => array ( 'database' => $_SERVER["DB_NAME"], 'username' => $_SERVER["DB_USER"], 'password' => $_SERVER["DB_PASS"], 'host' => $_SERVER["DB_HOST"], 'port' => '', 'driver' => 'mysql', 'prefix' => '', ), ), ); © satoshi kino , ANNAI LLC 41
  42. 42. 手順  ☆ Drupal 初期インストールの場合 settings.phpが既に設置されているので、初回アクセス時に ドキュメントルートを見に行くとインストーラーのエラーがで ます。 http://{your_domein}/install.php へアクセスし、インストールを進めてください。 © satoshi kino , ANNAI LLC 42
  43. 43. 手順  ☆ 開発中アプリをDeployする場合   DBのシンクロが必要 ここが、Drupal, Wordpress、Ec-CubeなどCMS的なアプローチを採用しているプロダクトに特有のところ。 ブラウザ上から行った開発・設定操作がDBへ入るので、コードだけで完結しない。 しかし、DrupalはWPと違ってドメイン情報などはDBに持たないためポータビリティの問題は少ない。 次期D8では設定がコード化され大きく変わります。 © satoshi kino , ANNAI LLC 43
  44. 44. 手順  ☆ DrushをEngine Yard側にもインストールしておくと、 DBのSyncが一発 Drush とは Drupal shell という意味のコマンドラインツールで、Drupalの開発に欠かせないものです。 EngineYardはcomposerが使えるのでインストールは簡単です。 https://github.com/drush-ops/drush $ sed -i '1i export PATH="$HOME/.composer/vendor/bin:$PATH"' $HOME/.bashrc $ source ~/.bashrc $ composer global require drush/drush:6.* © satoshi kino , ANNAI LLC 44
  45. 45. ☆ Drush Aliasを設定し、Engine Yard上Drupalの操作を遠隔から行う。 http://drush.ws/examples/example.aliases.drushrc.php Drushを使うと、複数のアプリ情報を管理できます。 サイト・サーバー間の情報のやり取りも簡単になります。 ey.aliases.drushrc.php <?php $aliases['EY'] = array( 'uri' => '⃝⃝⃝', 'root' => '⃝⃝⃝', 'db-url' => '⃝⃝⃝', 'remote-host' => '⃝⃝⃝', 'remote-user' => '⃝⃝⃝', 'os' => 'Linux', 'databases' => array ( 'default' => array ( 'default' => array ( 'driver' => '⃝⃝⃝', 'username' => '⃝⃝⃝', 'password' => '⃝⃝⃝', 'port' => '', 'host' => '⃝⃝⃝', 'database' => '⃝⃝⃝', ), ), ), ); © satoshi kino , ANNAI LLC 45
  46. 46. 手順  ☆ DBデータのSynch ローカルとEngine YardのDB Sync これだけ!! drush sql-sync @self @ey.EY © satoshi kino , ANNAI LLC 46
  47. 47. 番外 ☆ Drushでのコード・デプロイも可能 2行のコマンドでサイト一式のデプロイ完了 コンテンツだけを移行したい場合は別の方法があります。 drush rsync @self @ey.EY ちなみに、これでsettings.php抜きのコード・ デプロイになります。 © satoshi kino , ANNAI LLC 47
  48. 48. 次は、海外で伸びているDrupal専用Passの現状がどうなっているかを見てみま しょう * Pantheon https://www.getpantheon.com/ * Acquia Cloud http://www.acquia.com/products-services/acquia-cloud © satoshi kino , ANNAI LLC 48
  49. 49. 毎月、DrupalCafeを開催しています。 ぜひ来てください。 © satoshi kino , ANNAI LLC 49
  50. 50. Japan Users Group groups.drupal.org/japan © satoshi kino , ANNAI LLC 2014 ANNAI 50
  51. 51. 4/12(土)にはDrupalCamp in Japan KYOTOを予定しています。 © satoshi kino , ANNAI LLC 51
  52. 52. ありがとうございました。 Satoshi Kino (d.o name as qchan) http://an-nai.jp satoshi.kino © satoshi kino , ANNAI LLC 52

×