WordCamp Tokyo 2017でWordPressの未来という話をしてきました。

こんにちは宮内です。

9/16-17の二日間に渡ってWordPressコミュニティの公式イベント、WordCamp Tokyo 2017が開催されました。

スタッフのみなさん、来訪者のみなさん、ありがとうございました。

このイベントで「WordPressプロジェクトの未来」というお話をさせていただきました。

この記事では、公開しているスライドだけではつたわりにくい部分があると思いますので、セッションの内容を記事として再現しようと思います。

 

WordPressプロジェクトの未来

VCCWというプロジェクトをやってます。あまりディスらないでくださいね。笑

WP-CLIチームのコミッターをしています。WordPressの公式なプロジェクトのコミッターは日本では僕だけです。

https://github.com/wp-cli

コミッター5人全員がバラバラの国籍というグローバルなチームで毎日たくさんのプルリクやIssueと格闘しています。

僕はフルタイムではないボランティアとしての活動なので、最大でも週5時間以内、平均だと週3時間ぐらいですが、それでも先月は300コミットもしていました!

 

2月に発生してWP-APIのセキュリティホールについて

スライドにだいたいの流れを書いておりますが、WordPressのセキュリティチームではゼロデイ攻撃を防ぐために非公開で対策をすすめました。

ここで重要なのは、セキュリティホールを公表するまで、それを利用した攻撃が皆無だったことをホスティング企業やセキュリティ企業と確認済みだったこと、そして対策を検討している際にこれらの企業と密接に連携をとったことです。

一方で、日本でも同様のことを試みたのですが、そもそも連絡体制がなかったのでそれができませんでした。

このセキュリティホールはWAFやウェブサーバーのレベルで封じ込めることが可能なタイプのセキュリティホールで、欧米のホスティング会社に比べて日本が一歩出遅れたことは間違いありません。

 

ホスティング会社との連絡体制をつくりました!

上述の反省をふまえて、共有サーバー各社との連絡体制をSlackで構築しました。

現時点で完全にすべての情報を共有することを確約できる状態ではありませんが、WordPressのコアチーム及びセキュリティチームとはこの連絡体制の情報を共有済みであり、今後はある程度の情報共有が可能になりました。

これによって今後はセキュリティホールによってはパッチを提供する前にWAFやインフラレイヤーで封じ込めることも可能になります。

さらに、Distributed Unit Testという取り組みをβテストとしてコアチームと開始しています。

これは、毎日リリースされるWordPressのNightlyバージョン(開発バージョン)を多くのユーザーのみなさんが実際に使用する共有サーバー各社のインフラにインストールし、毎日ユニットテストを実行するという試みで、もしユニットテストにエラーがあれば自動的にコアチームに情報が共有されます。

その結果、ホスティング会社各社のインフラとWordPressの互換性をタイムリーに確認できるようになります。

僕は、このDistributed Unit Testによって、特定のホスティング会社やロケール固有の問題を早期に発見でき、コミュニティ及び参加しているホスティング会社のサポートコストの大幅な低減や信頼性の向上、さらに将来はセキュリティの向上などにも期待できるものと確信しています。

このDistributed Unit Testについての詳細は make.wordpress.org をご参照ください。

https://make.wordpress.org/hosting/

このスライドには間に合いませんでしたが、この後、NHNテコラス様、AMIMOTO様もテストに参加することを表明していただきました。

おそらくですが、近い将来には日本中の100万サイト以上をカバーするインフラで毎日互換性の確認が行われることになり、これに関わっているチームメンバーとともにとても興奮しています。

 

サポートするPHPのバージョンについて

WordPressはPHP5.2をいまだにサポートしており、このことでレガシーとかいろいろ批判を受けるわけですが、現時点でPHP 5.2の環境にWordPressをインストールしている割合はWordPress全体の4.2% あります。

これは比率としては少なく見えるかもしれませんが、WordPressに占める日本語の割合が6%であることを考慮に入れると、絶対数としては決して小さな数字ではありませんので、簡単にPHP5.2のサポートを打ち切るわけにはいきません。
(少なめに見積もっても、おそらく世界で100万サイト以上)

一方で、オープンソースのエコシステムがいよいよPHP5.2のサポートを困難としつつあることも事実です。たとえば Travis CIは今月いっぱいでPHP5.2の提供を停止しますので、それに伴う新しいCI手法の開発を僕もコアチームにチケットとして提案しています。

そんななかで、ユーザーにPHP5.2から最新版のPHPへのアップグレードを促すためのプロジェクトが始まりました。

これは ServeHappy というプロジェクトで、現時点では世界中のホスティング会社各社のPHPのバージョンのアップグレード方法を記載したヘルプページを収集したりしています。

日本のホスティング会社については僕がコミッターとして担当しており、以下のGitHubにてプルリクエストをお待ちしています。

https://github.com/WordPress/servehappy-resources/blob/master/tutorials/hosting-specific/tutorials-ja.md

 

その他のプロジェクト

WordPressコミュニティでは、ユーザーのみなさんに安心して快適に使ってもらうために膨大な数のプロジェクトがあります。

上にあげた2件のプロジェクトは僕がコミッターとして参加しているプロジェクトです。

ひとつはプラグインやテーマの改ざんをチェックするためのAPIの開発とWP-CLIコマンドの開発で、現状はAPI側の実装をどうするかについてディスカッション中ですが、これがもし可能になるとコアとそのプラグインやテーマの互換性をチェックすることも目標として見えてくるので、将来が期待できるプロジェクトです。

また、HelpHubは新世代のドキュメントサイトなんですが、こちらも世界中から有志が集まってWordPressテーマやプラグインの開発を行っています。

海外の優秀な人のコーディングの生産性はとんでもなく高いです。そういうのを間近に見れるチャンスなのでぜひみなさんの参加をお待ちしています。

 

ユーザーの皆さんへ

WordPressは後方互換性を頑ななまでに重視しています。この姿勢は今後変わることはたぶんありません。なので自動アップデートという他のCMSにはない機能を実装できています。

冒頭に説明したとおり、あれほどのセキュリティホールでさえ、自動アップデートが有効だったサイトではほとんど被害が確認されていません。

 

コミュニティの皆さんへ

上のスクリーンショットは僕がコミッターになる前と後のWP-CLIのあるコマンドを実行した結果です。

僕がコミッターになったあと、わずか2週間ほどで、僕が修正コードを書くことなく見事なまでにマルチバイトの問題が修正されました。

たとえばドイツは日本の人口の半分ほどですが、全ロケールにおける日本語の割合が6%であることに対して、ドイツは5.3%です。そして僕が知っている人だけでも2人のコアコミッターがおり、別の1人はWP-CLIのコミッターです。

言語の壁があることはもちろん承知していますが、それでも日本は開発者としてのコントリビューターが十分に多いとはいえず、コミュニティも明らかに他人事として考えている感じがあります。

一方で先に紹介したWP-CLIの事例のようにそこにいるだけで、まわりがはっと課題に気づいてくれることもあります。

というわけでぜひ若い人の参加をお待ちしています。興味がある方はぜひ以下のサイトをご覧になってください。

https://make.wordpress.org/