Drupalの歴史における革命的な変更を含むDrupal 9のリリースと今後の展望

2020年8月27日(木)
ANNAI株式会社

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年)

新しいリリースサイクルに基づくマイナーバージョンのリリースおよびセキュリティサポートのスケジュール。
【出典】https://www.drupal.org/core/release-cycle-overview

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

レイアウトビルダーを利用してページ内にセクションを追加することが可能に。「Add section」をクリック後、そのセクションに追加したいレイアウトを左サイドバーから選択

セクションごとに列幅の指定が可能

今後追加される予定のモジュールとテーマ

既にExperimental(実験的)という位置づけで正式リリースはされていないものの、近々コアに追加される機能やテーマの開発が着々と進んでいます。

  • Workspaces
  • Field Layout
  • Help Topics
  • Config Environment
  • Claro

以下に、それぞれの概要を示します。Config Environmentモジュール以外は既にコアに含まれており、実際に試してみることができます。

・Workspaces

Workspacesモジュールは、1つのサイト上で「ステージ」「本番」など複数の環境を設置し、それぞれの環境上でページを編集し、ページやセクションの構築を可能にします。本番環境でコンテンツの一般公開前に、それらの見栄えを確認できるようになります。非本番環境で準備が終了したコンテンツは、本番環境にデプロイできます。この機能は、例えばホームページのリニューアルなどに大変役立つ機能です。

画面右上の「ライブ」をクリックするとサイトの最上部に他のワークスペースが表示される

ステージ環境上で行ったコンテンツやレイアウトへの変更は「Deploy content」のアクションを踏まえて初めてライブ(本番)環境に適用される

・Field Layout

レイアウトビルダーにより、ページ内ブロックの構成をGUI上から変更できるように、Field Layoutモジュールは各コンテンツのページ内のフィールドの位置をGUIからドラッグ&ドロップで変更できる機能を提供する予定です。現時点では編集者用の入力フォームのみが変更可能になっており、ビジターに表示されるページ内のフィールドの位置の変更はサポートしていません。

編集者用の入力フォーム設定画面でフォーム要素の配置を設定できる。2、3カラム表示ほか複数のオプションが存在し、Layout Builderモジュールと共通のレイアウトが利用可能

・Help Topics

Drupalコアに付属するヘルプ機能は、モジュールごとの概要を1ページにまとめる機能しか持ちません。Help Topicsモジュールは各モジュールの概要だけでなく、テーマやディストリビューションにも自由に複数のヘルプトピックを追加できるほか、階層や関連性の設定、ヘルプ内容を検索する機能を提供します。

赤枠で囲まれた部分がHelp Topicモジュールにより新規に追加された要素

・Config Environment

Drupal 8より、サイトで利用されるコンテンツタイプやフィールドをはじめとした様々な設定情報をConfiguration Management(構成管理)モジュールで管理できるようになりました。しかし、大規模なサイトの開発には「開発用」「テスト用」「検収用」「本番」など複数の環境が存在し、環境ごとに異なる設定が必要になるケースが多く見られます。この問題を解決するために幾つかの拡張モジュールが存在しますが、Config Environmentモジュールは、これをコアの機能として提供します。

・Claro

現在のDrupalの管理画面は、設定を保存する際に「保存」ボタンを押下してページがリフレッシュするのを待ち、それが終了するとページの最上部に「保存できました」というメッセージが表示されるような、いわゆる古典的なものです。

Claro は、ReactやVueなどのフレームワークによる「アプリっぽい」操作性を持つ管理画面の提供を目指しています。また、ユーザーエクスペリエンスならぬデベロッパーエクスペリエンス、つまり開発者にとっての拡張のしやすさを、ベストプラクティスへの準拠やネイティブなJavaScriptのツールの提供などを通して実現することを目指します。

右が現在の標準であるSeven、左が実験的段階にあるClaro。両者とも管理画面用テーマだが、SevenはDrupal 7向けに10年以上前にデザインされたもので、画面幅的に言えばレスポンシブとしての配慮はあるものの、フォーム要素やタブの利用など表示に時代を感じる。一方、Claroは現在の標準的なデザインを踏襲している

今後の展望

上述した実験的モジュール・テーマの他にも、追加が望まれている機能が多くあります。凄まじい速度でニーズが変化していくマーケットにおいてDrupalが価値の高いCMS・フレームワークであり続けるには、ユーザーに求められる変化を取り入れ続けていく必要があります。

Drupalにはバージョンごとに多くのイニシアティブ(取り組み)があり、その中からユーザー・開発者・市場のニーズが最も高いものが選ばれます。DrupalプロジェクトリードのDries Buytaert氏は、今後Drupalに求められる機能についてエンドユーザー、セールス、開発者、サイトビルダーなどの複数のペルソナをもとにアンケートを実施し、その結果から以下の5つのイニシアティブを推進しています。

  • ReactとVue向けに公式のJSメニューコンポーネントを追加
  • セキュリティリリースの自動アップデート
  • 新しいフロントエンドテーマ(Olivero)のコアへの追加
  • インストール直後のエクスペリエンスの向上
  • Drupal 10に向けた準備

Drupal 10に向けたイニシアティブ。Dries Buytaert氏のプレゼンテーションより抜粋

これらのイニシアティブはそれぞれ今後のDrupalにとって重要な意味を持ちますが、特筆すべきはセキュリティリリースの自動アップデート機能でしょう。これはアンケートの結果、サイトビルダー(管理者)から最も要望の多い機能でした。

DrupalコアおよびDrupalセキュリティチームによるポリシー適用範囲内の拡張モジュールのセキュリティアップデートは毎週水曜日にリリースされます。これは中央ヨーロッパ時間(UTC +1)で夕方頃、アメリカ西海岸時間(UTC -8)で朝に行われますが、このタイムゾーン外の日本やオーストラリアをはじめとする国々では、時差の関係で対応が翌日に持ち越されてしまいます。

Drupalコアには、深刻度が最も高い「緊急」に該当するセキュリティ問題が過去に3件発見されました。これらの脆弱性に対するセキュリティリリースはそれぞれ、前もってPSA(パブリック・サービス・アナウンスメント)やSNSなどを通じてサイトオーナーに深刻度やリリース日を周知した上で、セキュリティチームのプロセスに則ってリリースしましたが、欧米以外のタイムゾーンに住む管理者に多大な負担がかかることには変わりはありませんでした。

緊急レベルのセキュリティ問題にはDrupal Association(非営利のDrupalコミュニティおよびプロジェクトの運営団体)がDrupal StewardというWAFにより対応するプログラムを推進していますが、これに該当しないセキュリティ問題やWAFでは防げない問題に対応するには、やはりセキュリティアップデートを適用する以外に安全にサイトを運営し続ける方法はありません。大企業や政府組織でDrupalによる大規模サイト構築のケースが増えるなかで、セキュリティリリースの自動アップデート機能は大変重要なイニシアティブであると言えます。

アンケートの結果、経験度に関わらずサイト管理者から最も要望が多かったのが自動アップデート機能。Dries Buytaert氏のプレゼンテーションより抜粋

まとめ

Drupal 9は新しいリリースサイクルに基づいて開発され、Drupalの歴史で初めて後方互換性を持つリリースです。近い将来、新しい管理用テーマをはじめレイアウトビルダーやフォームビルダー、またヘルプトピックなど、管理者や編集者にとって利便性・操作性を高める機能が順次追加される予定です。また、開発者やDevOpsにとっても便利な環境ごとの構成管理の適用やJavaScriptを活用した現代的なGUIの実現も容易になります。

Drupalプロジェクトの今後の展望の中で、セキュリティリリースの自動アップデート機能の実現は特に重要です。これによりタイムゾーンを問わず、また開発者やDevOpsが常駐しなくてもDrupalサイトの安全性を確保できるようになります。

Drupalコミュニティはマーケットのニーズの変化に対応する取り組みを継続的に行っており、今回紹介した新機能や計画されている変更以外にも、Drupalの価値を更に高めるための様々な機能や変更が計画されています。

【8/27】Experience Acquia In JAPAN開催!
アクイア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)

#当日の進行状況により、イベント終了時間が前後する可能性がございます。

ANNAIは、2009年からDrupal専門のWebシステム開発会社として、世界規模で展開するグローバル企業や大学・自治体を中心に数多くのWebソリューションを提供。
CoreやModuleのコントリビューターなど、Drupalエキスパートが多数在籍。国内ユーザーコミュニティへも積極的にコミットし、定期的なセミナーの等の開催を通じて、オープンソース技術の普及や海外コミュニティとの緊密な連携を図っている。
Webシステムの企画・開発〜デザイン、クラウド運用までをワンストップで提供する他、Drupalのコーディングを評価する"Audit業務"や最適なモジュールの調査・選定等、幅広いコンサルティングを行っている。Drupalアソシエーション公式パートナー。
https://annai.co.jp

連載バックナンバー

システム開発イベント

OpenShift Commons Gatheringで語られたOpenShiftに最適なCI/CDとは

2021/3/2
レッドハット株式会社のクラウドソリューションアーキテクト、北山晋吾氏によるCI/CDのセッションを紹介。
働き方イベント

オンラインならではの工夫でリアル開催を凌ぐ盛り上がりに! 「3年後の未来を描け! 悩み爆発 クリエイター1000人祭り」レポート

2021/2/9
2020年12月にオンラインで開催された「3年後の未来を描け!悩み爆発クリエイター1000人祭り」を紹介します。
ITインフライベント

ビルドからリリースまでを抽象化するWaypointにディープダイブ

2021/2/4
HashiCorpがリリースしたWaypointの内部構造など詳細について解説されたセッションを紹介する。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています