qcon 201610 ランチセッション drupalについて · drupalの特徴2...
TRANSCRIPT
オープンソース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は、Coreとモジュールが完全に分離(Coreをハックするな!)
❖ Coreは小さく、機能を実現するにはモジュールを利用
Drupalの構造
Drupal Core(基本コンテンツ機能、ユーザ管理、セッション管理、URL、ローカライズ、ログ、テンプレート、データベース)
テーマ
Drupalシステム関数、Hook関数
ノード ブロック メニュー タクソノミー
組み込みモジュール
各機能モジュール
15
RDBMSとDrupalの機能比較
RDBMS Drupalデータベース 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)
#メンテナンスモードをOFFdrush 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