Drupal - QCon Tokyo

オープンソースCMS
Drupalの紹介
株式会社メノックス
Druapl事業部
井村 邦博
2016年10月24日
自己紹介
名前:井村邦博
会社:株式会社メノックス (豆蔵ホールディングスグループ)
所属:Drupal事業部
経歴:28年間、IT業界で技術者として従事
さくらインターネット公式ブログ
「さくらのナレッジ」でDrupalの記事を連載中。
2
株式会社メノックスの紹介
会社:株式会社メノックス(豆蔵ホールディングスグループ)
設立:1983年12月
従業員数:約150名
事業内容:
Android技術、クラウド技術の強みを活かしたシステム開発
技術支援サービス
Drupalを利用したWebシステムのソリューション
3
Drupalとは
4
Drupalとは
Drupalは、ベルギー人のDriesが開発したオープンソフト
ウェアのCMS(コンテンツ・マネジメント・システム)です。
PHP言語で記述され、各種データ格納にはデータベースを利
用しています。(MySQL, PostgreSQL, SQLite, MongoDBなど)
現在、2015年11月にリリースされたDrupal 8が最新バージョ
ンとなります。
5
Drupalの特徴
1. 高いセキュリティ、高いパフォーマンス
2. 多機能によるマルチサイト基盤
3. コミニティ活動が活発
6
Drupalの特徴1
❖
高いセキュリティ、高いパフォーマンス
❖
ホワイトハウスのサイトを初め、NASAで利用されていま
す。
❖
ドイツ共和国・フランス共和国の公式サイト、ポーランド
内閣府で利用されています。
❖
オーストラリア政府では、2014年に電子政府対応として政
府機関のサイトはすべてDrupalで進める方針を打ち出しま
した。
7
Drupalの特徴1
❖
2016年10月 NasdaqがDrupal 8を採用
8
Drupalの特徴2
❖
多機能によるマルチサイト基盤
❖
10,000を超える追加モジュール(基本機能の拡張から、部屋予約するための
業務機能まで)を利用して、コーポレートサイト、ポータルサイト、eコ
マースサイト、キャンペーンサイトなど、さまざまサイトに利用できます。
❖
多言語対応、マルチサイトにも対応しています。
❖
ディストリビューションという形で特定サイト向けのテンプレートを作成し
てデリバリーできます。
❖
グローバル企業のJonson & Jonsonでは、約7,000サイトをDrupalで運用。
Pfizer製薬では、約1,000サイトを運用しています。
9
Drupalの特徴3
❖
コミニティ活動が活発
❖
230の国、181言語で利用されています。
❖
オープンソースを支える多数の開発者がいます。
❖
❖
基本機能(core)の開発者だけで2000人以上
年2回、アメリカとヨーロッパでカンファレンス開催。アメリカでは3000人以
上が参加します。
❖
運営母体としてDrupal Associationの存在
❖
年間約450万ドルの収入があり、Drupalの普及や技術者の育成に使われてい
る
10
CMSのリーダ
2016年9月のGartner
によるCMSランキ
ングでは、唯一オー
プンソフトウェアで
リーダーとして位置
づけられています。
Acquiaは、Driesが
CTOを勤める米国
企業です。
11
DrupalはCMS?
Drupalは、Webページ作成するCMSという枠を超え
た、多数の機能を実現する仕組みがあり、業務シス
テム構築のWebシステムフレームワークと言えます。
例えるなら、Ruby On Railsのようなイメージです。
しかも、Drupalは、すでに多数あるモジュールを組
み合わせることで、プログラミングなしで構築が可能
です。
12
日本の状況
❖
日本語情報が少なく、「知っている人が少ない」
❖
Drupalの洋書は数百冊あるが、日本語の書籍は1,2冊(しかも古い)
❖
2016.6 NTTデータ先端技術株式会社がDrupalの日本語翻訳サイトを立
ち上げ
❖
❖
日本での大規模サイトの事例
❖
国立国会図書館による東日本大震災データベース「ひなぎく」のサイト
❖
毎日新聞社の毎日.jpのサイト
日本政府では2015年にCIOポータル(IT総合戦略室)のサイトを公開
13
Drupalのシステム
14
Drupalの構造
❖
Drupalは、Coreとモジュールが完全に分離(Coreを
ハックするな!)
❖
Coreは小さく、機能を実現するにはモジュールを利用
テーマ
ノード
ブロック メニュー
タクソノ
ミー
組み込み
モジュール
Drupalシステム関数、Hook関数
Drupal Core
(基本コンテンツ機能、ユーザ管理、セッション管理、URL、
ローカライズ、ログ、テンプレート、データベース)
15
各機能
モジュール
RDBMSとDrupalの機能比較
Drupal
RDBMS
Drupalサイト
データベース
マルチサイト対応も可能
コンテンツタイプ
テーブル(表)
自由な項目定義
ノード
レコード(データ)
ノードにはユニークなIDが付与
表結合
リレーションモジュールで対応
マスタデータ
タクソノミー
SQLの問い合わせ(select)
Viewsモジュールで対応
16
Drupalサイト
❖
1サイトは、Drupalシステムと1つのデータベースに対
応
❖
複数サイトを構築する場合は、Drupalシステム1に対し
て、複数のデータベースに対応させたマルチサイト構成
も可能
❖
DrupalシステムN個でデータベースは1という対応も可
能(Webリクエストの分散対応)
17
コンテンツタイプ
❖
リレーショナルデータベースのテーブル(表)
❖
複数のテーブルの登録が可能
❖
自由な項目定義が可能
❖
追加モジュールをインストールすることでコンテンツタ
イプ間でのリレーション対応も可能
❖
モジュールを開発することで、独自のテーブルを作成し
業務モジュールのような開発も可能
18
フィールド管理
❖
自由なフィールド定義
❖
モジュールを追加することで新しいフィールドの型を追加
❖
❖
例えば、日付型、URL型、YouTube型…
フィールド単位に多言語が可能(URLは多言語不要、テキストは多
言語化)
❖
コンテンツタイプ間でフィールドを共通化可能
❖
コンテンツマネジメントシステムではなく、フィールドベースマネ
ジメントシステムとも言えます。
19
タクソノミー
❖
統一した語彙を登録して管理する機能(表示順番も指定
可能)
❖
タクソノミーは階層化が可能
❖
引用した語彙でまとめて集計することが容易
❖
タクソノミー自体も自由にフィールドを追加することが
可能
20
タクソノミーの例
❖
❖
iOS ← スマートフォンのOSでの分類
❖
iPhone 6 ← 機種毎の分類
❖
iPhone 6s
❖
iPhone SE
Android
❖
❖
Galaxy ← 会社毎の分類
❖
Note
❖
S7
Xperia
❖
X
21
ブロック
❖
表示領域を複数の「ブロック」によ
る、ブロックにコンテンツを配置し
ます
ヘッダ
メニュー
❖
❖
ブロックは、ヘッダ・フッタ・メ
ニュー・左サイドバー、コンテンツ
表示領域、右サイドバー、バナー表
示など
表示するページによりブロックの表
示・非表示、表示する内容の変更が
可能(コンテンツの再利用が容易)
左サ
イド
バー
コンテンツ
バナー
フッタ
22
右サ
イド
バー
Drupalの運用
23
アップデート
❖
Coreのアップデートは2,3ヶ月に1回のペースでリ
リースされている
❖
Coreの脆弱性は発表と同時にリリースされます
❖
半年ごとに新規機能が追加されたマイナーバージョンアッ
プが実施されます
24
運用ツール
❖
drushというコマンドラインからDrupalを操作できるコ
マンドラインツールがあります
❖
事前に手順が作れ、ミスや漏れが少なく操作ができます
❖
ブラウザの画面から管理画面を操作するのではなく、ほ
とんどのコマンドが利用可能
❖
例 システムバックアップ、データベースバックアップ、モジュールのイ
ンストール、メンテナンスモードの移行、キャッシュのクリア、ノード
間での同期などなど
25
Drushでのアップデート作業の例
#バックアップ (Drupalシステム、データベース)
drush archive-dump drush sql-dump --result-file=$HOME/backup/dump.sql
#メンテナンスモードをON (サイトがメンテナンス中と表示される)
drush vset maintenance_mode 1 --yes
#アップデート (通常、1、2分)
drush up ( —security-only)
#メンテナンスモードをOFF
drush vset maintenance_mode 0 --yes 26
Drupalの今後
27
ヘッドレスCMS
❖
デカップルド・アーキテクチャを採用して、バックエン
ドにDrupalを利用
❖
Drupalのテーマで対応しているHTML+CSS(ヘッド)を
使わず、コンテンツ管理に特化して、APIによるコンテ
ンツ配信(ヘッドレスCMSと呼ばれる)
❖
マルチデバイス対応、IoTなどに利用
28
今後のイベント予定
❖
日本でのイベント
❖
2017年1月14日 Drupal Camp in Japan (東京開催)
❖
2017年2月 ビジネス向けのイベント企画中
29