Drupalの歴史における革命的な変更を含むDrupal 9のリリースと今後の展望
Drupal 9のリリース
Drupal 9は当初の計画通り、2020年6月3日にリリースを迎えました。Drupal 9以前、メジャーリリースのスケジュールは“It’s Ready When It’s Ready”(意訳すると「予定は未定」)でした。例えばDrupal 8は前バージョンからのほぼ完全なリライトで、Symfonyへの依存、OOPの標準化、プラグインシステムや構成管理機能の追加ほか、数多くの非常に大きな変更が導入されました。そのためDrupal 8は当初の予定から大幅に遅れたのに対し、Drupal 9はスケジュールに沿って淡々とリリースへの準備が進められてきました。これは、次で述べる新しいリリースサイクルの導入により実現されました。
Drupal 9で変わったこと
リリースサイクルとアップグレードパス
Drupal 8からDrupal 9へのメジャーアップグレードの容易さは、今回のリリースで最も注目されるべきポイントの1つでしょう。Drupalの過去にメジャーバージョンがリリースされた際は、毎回APIが大幅に変更されたため、新バージョンへのアップグレードは実質新しいDrupalサイトの開発となり、多大な工数を要するものでした。また、Drupalコミュニティはそれぞれのメジャーバージョン内のコアのAPIを原則変更せず、機能追加もしないという制約のもとメンテナンスを行っていました。
Drupal 8からは、コアの開発のリリースサイクルを新しい方式に切り替え、バージョニングにSemverを採用しました。変更の要約は以下の通りです。
- 毎月パッチリリース日程を固定して、バグフィックスを提供
- 6ヶ月ごとに新しいマイナーバージョンがリリースされる。これにはAPIの変更や新機能が含まれることがある
- 各マイナーアップデートに対するセキュリティアップデートは、次のマイナーバージョンがリリースされた後も6ヶ月間提供される(つまりコミュニティによる各マイナーアップデートのサポートは合計1年)
Drupalコアの開発のリリースサイクルを新方式に切り替えたことで、マイナーバージョンのリリースの際に後方互換性を保持したかたちでAPIの変更を加えたり、新機能を段階的に追加したりが可能になりました。これが基礎となり、今回Drupalの歴史では初めてメジャーバージョンの後方互換性がサポートされました。そのためDrupal 8からのアップグレードに要する作業は、非推奨(deprecated)のコードを変更するだけです。もちろん今後のメジャーバージョンのリリースも、同じ仕組みで行われます。
これまで、Drupalのメジャーバージョンのリリースごとに頭を悩ませていた企業・団体にとって、この新方式がもたらす予測可能性は大変重要な変化と言えるのではないでしょうか。また、以前はできなかったコアへの新機能の追加やAPI周りの改善が可能になったことも、新方式がもたらした大きな恩恵と言えます。
Drupal 9の新機能
上述の通り、段階的にコアへ新機能を追加できるようになったため、Drupal 9のリリースの主目的は「Drupal 8からのスムーズなアップグレードを可能にすること」でした。結果としてDrupal 9で追加された機能自体は多くありませんが、今後様々な機能の追加が予定されています。
9で追加された新機能はレイアウトビルダーです。下記のデモにあるように、レイアウトビルダーは編集者がGUI上からページ内のセクションに「2コラム」「3コラム」などのレイアウトを指定し、そこにドラッグ&ドロップでブロックを設置することで容易にページのレイアウトやコンテンツを変更できる、編集者にとって非常に便利なツールです。
●レイアウトビルダーデモ動画https://www.youtube.com/watch?v=Hx4EEzI7aNE
今後追加される予定のモジュールとテーマ
既にExperimental(実験的)という位置づけで正式リリースはされていないものの、近々コアに追加される機能やテーマの開発が着々と進んでいます。
- Workspaces
- Field Layout
- Help Topics
- Config Environment
- Claro
以下に、それぞれの概要を示します。Config Environmentモジュール以外は既にコアに含まれており、実際に試してみることができます。
・Workspaces
Workspacesモジュールは、1つのサイト上で「ステージ」「本番」など複数の環境を設置し、それぞれの環境上でページを編集し、ページやセクションの構築を可能にします。本番環境でコンテンツの一般公開前に、それらの見栄えを確認できるようになります。非本番環境で準備が終了したコンテンツは、本番環境にデプロイできます。この機能は、例えばホームページのリニューアルなどに大変役立つ機能です。
・Field Layout
レイアウトビルダーにより、ページ内ブロックの構成をGUI上から変更できるように、Field Layoutモジュールは各コンテンツのページ内のフィールドの位置をGUIからドラッグ&ドロップで変更できる機能を提供する予定です。現時点では編集者用の入力フォームのみが変更可能になっており、ビジターに表示されるページ内のフィールドの位置の変更はサポートしていません。
・Help Topics
Drupalコアに付属するヘルプ機能は、モジュールごとの概要を1ページにまとめる機能しか持ちません。Help Topicsモジュールは各モジュールの概要だけでなく、テーマやディストリビューションにも自由に複数のヘルプトピックを追加できるほか、階層や関連性の設定、ヘルプ内容を検索する機能を提供します。
・Config Environment
Drupal 8より、サイトで利用されるコンテンツタイプやフィールドをはじめとした様々な設定情報をConfiguration Management(構成管理)モジュールで管理できるようになりました。しかし、大規模なサイトの開発には「開発用」「テスト用」「検収用」「本番」など複数の環境が存在し、環境ごとに異なる設定が必要になるケースが多く見られます。この問題を解決するために幾つかの拡張モジュールが存在しますが、Config Environmentモジュールは、これをコアの機能として提供します。
・Claro
現在のDrupalの管理画面は、設定を保存する際に「保存」ボタンを押下してページがリフレッシュするのを待ち、それが終了するとページの最上部に「保存できました」というメッセージが表示されるような、いわゆる古典的なものです。
Claro は、ReactやVueなどのフレームワークによる「アプリっぽい」操作性を持つ管理画面の提供を目指しています。また、ユーザーエクスペリエンスならぬデベロッパーエクスペリエンス、つまり開発者にとっての拡張のしやすさを、ベストプラクティスへの準拠やネイティブなJavaScriptのツールの提供などを通して実現することを目指します。
今後の展望
上述した実験的モジュール・テーマの他にも、追加が望まれている機能が多くあります。凄まじい速度でニーズが変化していくマーケットにおいてDrupalが価値の高いCMS・フレームワークであり続けるには、ユーザーに求められる変化を取り入れ続けていく必要があります。
Drupalにはバージョンごとに多くのイニシアティブ(取り組み)があり、その中からユーザー・開発者・市場のニーズが最も高いものが選ばれます。DrupalプロジェクトリードのDries Buytaert氏は、今後Drupalに求められる機能についてエンドユーザー、セールス、開発者、サイトビルダーなどの複数のペルソナをもとにアンケートを実施し、その結果から以下の5つのイニシアティブを推進しています。
- ReactとVue向けに公式のJSメニューコンポーネントを追加
- セキュリティリリースの自動アップデート
- 新しいフロントエンドテーマ(Olivero)のコアへの追加
- インストール直後のエクスペリエンスの向上
- Drupal 10に向けた準備
これらのイニシアティブはそれぞれ今後のDrupalにとって重要な意味を持ちますが、特筆すべきはセキュリティリリースの自動アップデート機能でしょう。これはアンケートの結果、サイトビルダー(管理者)から最も要望の多い機能でした。
DrupalコアおよびDrupalセキュリティチームによるポリシー適用範囲内の拡張モジュールのセキュリティアップデートは毎週水曜日にリリースされます。これは中央ヨーロッパ時間(UTC +1)で夕方頃、アメリカ西海岸時間(UTC -8)で朝に行われますが、このタイムゾーン外の日本やオーストラリアをはじめとする国々では、時差の関係で対応が翌日に持ち越されてしまいます。
Drupalコアには、深刻度が最も高い「緊急」に該当するセキュリティ問題が過去に3件発見されました。これらの脆弱性に対するセキュリティリリースはそれぞれ、前もってPSA(パブリック・サービス・アナウンスメント)やSNSなどを通じてサイトオーナーに深刻度やリリース日を周知した上で、セキュリティチームのプロセスに則ってリリースしましたが、欧米以外のタイムゾーンに住む管理者に多大な負担がかかることには変わりはありませんでした。
緊急レベルのセキュリティ問題にはDrupal Association(非営利のDrupalコミュニティおよびプロジェクトの運営団体)がDrupal StewardというWAFにより対応するプログラムを推進していますが、これに該当しないセキュリティ問題やWAFでは防げない問題に対応するには、やはりセキュリティアップデートを適用する以外に安全にサイトを運営し続ける方法はありません。大企業や政府組織でDrupalによる大規模サイト構築のケースが増えるなかで、セキュリティリリースの自動アップデート機能は大変重要なイニシアティブであると言えます。
まとめ
Drupal 9は新しいリリースサイクルに基づいて開発され、Drupalの歴史で初めて後方互換性を持つリリースです。近い将来、新しい管理用テーマをはじめレイアウトビルダーやフォームビルダー、またヘルプトピックなど、管理者や編集者にとって利便性・操作性を高める機能が順次追加される予定です。また、開発者やDevOpsにとっても便利な環境ごとの構成管理の適用やJavaScriptを活用した現代的なGUIの実現も容易になります。
Drupalプロジェクトの今後の展望の中で、セキュリティリリースの自動アップデート機能の実現は特に重要です。これによりタイムゾーンを問わず、また開発者やDevOpsが常駐しなくてもDrupalサイトの安全性を確保できるようになります。
Drupalコミュニティはマーケットのニーズの変化に対応する取り組みを継続的に行っており、今回紹介した新機能や計画されている変更以外にも、Drupalの価値を更に高めるための様々な機能や変更が計画されています。
アクイアCTOドリス・バイタルト登壇!
2020年8月27日(木)に、アクイアのCTOであり、Drupalの創設者であるドリス・バイタルト(Dries Buytaert)が登壇し、最新のアクイア&Drupalアップデートをお届けする「Experience Acquia in Japan」をオンラインで開催いたします。
ドリスはオープンソースDrupalを開発したのち、アクイアを2007年に米国ボストンで創業し、現在もCTOとして数々のプロジェクトをリードしています。
当イベントは二部構成となっており、第一部では、オンライン化が急速に進むニューノーマルな世界において、企業に求められているデジタル・トランスフォーメーション(DX)を、アクイアOpen DXPがどのように実現しているかを最新事例を交えてお話しいたします。第二部ではDrupalの包括的な機能とDrupal 9のアップデート情報、アクイア認定アワードなどの表彰式を予定しています。
皆様のご参加を、お待ちしております。
#当オンラインイベントは日本語への逐次通訳でお送りいたします。
#当日のQ&Aコーナーでドリスに回答してもらう質問を募集しています。質問フォームはこちら
【開催概要】
日時:2020年8月27日(木) 16:00 - 17:30
費用:無料
配信形式:オンライン(Zoom)
#当日の進行状況により、イベント終了時間が前後する可能性がございます。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 【Drupal 8入門】Drupalを支えるコミュニティ活動と各種情報
- ローカルコミュニティが力になる―Drupal Summit Tokyo 2016レポート
- シーアイアンドティーとANNAI、Drupalの大企業向け導入トレーニングサービスを10月から開始
- 【Drupal 8入門】モジュールのインストール、ユーザー作成と権限の設定
- 日本での本格普及なるか? 大規模サイト向けCMS「Drupal」創始者が初来日
- Drupalの生みの親が語る、日本市場の可能性とDrupalのこれから
- 米アクイアCTO ドリス・バイタルトが登壇! アクイアOpen DXPの最新DX事例やDrupal 9のアップデート情報を紹介。「Experience Acquia in Japan」開催レポート
- 【Drupal 8入門】コンテンツの翻訳と多言語設定(後編)
- IBMのSoftLayerで最新のDrupal 8を試してみよう!
- 【Drupal 8入門】ブロックレイアウトとコンタクトフォーム作成