NEC の大規模イントラサイトに Drupal を採用 アジャイル開発の構築事例
中村 仁美モチヤでは日本電気株式会社(以下 NEC)のグローバル社員 11万人が使うイントラサイトの開発・運用を行っています。
この度、このプロジェクトが Web担当者Forum で取り上げられました。
NECの社内向けサイトが1500も乱立 → 統一基盤の「One NEC.com」を6か月で構築。外からは見えない大規模イントラのアジャイル開発の裏側とは?
本ブログでは、NEC 様の「One NEC.com」プロジェクト実現におけるモチヤの取り組みをまとめました。
1500 サイトをひとつの社内向けポータルサイトに Drupal で統合したい
2019年、NEC から社内に乱立するサイトをひとつの社内向けポータルサイトに Drupal で統合したい、とお問い合わせいただきました。
調査に入ったところ、グループ会社や組織ごとに 1500 ものサイトが社内に存在していることがわかりました。情報のサイロ化を改善し、社内のコミュニケーションを活性化させることがモチヤのミッションとなりました。
まず取り組んだのは UI/UX
既存の 1500 のサイトにデザインルールはなく、自由に表現されていたため、閲覧者はサイトごとに必要な情報を都度探す必要がありました。
要望では「トップからのメッセージが社員ひとりひとりの手元に届くこと」、「社員のだれもが情報を発信できること」があり、それらを叶えるために必要な要素を整理し、Drupal を前提とした UI/UX に落とし込みました。
このプロジェクトの UI/UX のポイント
- パーソナライズされたポータルトップページ
- 用途に合わせたサイトタイプ設計
- 誰でも投稿できる「ポスト」機能
- パーツ集・デザインガイドライン
用意したパーツは 50 を超え、これまで独自に進化したサイトも大きな負担なく移行できるよう心がけました。
また、デザインガイドラインを作成し、直感的に理解でき、統一感のある UI を提案しました。
複雑な要望を実現する Drupal 開発
One NEC.com プロジェクトでは 11万人を抱えるグローバル企業ならではの複雑な要望も多くいただきました。
ヘッダーやグローバルメニューといったサイト内の共通項目はユーザーの設定する言語に合わせて表示し、コンテンツ部は様々な言語で作成されるため、画面に表示される切り替えボタンから言語を切り替えられるようにするなど、多言語を得意とする Drupal ならではの実装となりました。
また、一部のコンテンツには承認ワークフロー機能を搭載し、これまでメールで運用されていた承認フローをコンテンツ内で完結できるようにカスタマイズを行いました。
これによりポータル向けのニュース記事や報告書などコンテンツの用途に合わせ、承認を得てから公開することができます。
他にも、組織単位のアクセスコントロール、SSO 認証、コンテンツの棚卸、アクセスログといった複雑度の高い機能を Drupal で実現しています。
Drupal におけるパフォーマンス改善
2020年にミニマムスタートしたイントラサイトは、2021年に旧サイトから本格的に移行が進み、利用者・コンテンツともに急増した結果、パフォーマンス(画面表示)の悪化が報告されます。
モチヤが迷うことなく選んだ施策は「キャッシュの最適化」
Drupal8 からキャッシュの仕組みが変わり、キャッシュタグ、キャッシュコンテキスト、キャッシュ最大保持時間をもとにキャッシュを生成します。11万人を抱えるサイトかつ、誰もがコンテンツを公開できるこのプロジェクトではキャッシュの利用が大きなカギとなります。
まずは「node_list」キャッシュタグを外すこと、そしてユーザーの属性に応じて、同一属性間ではキャッシュを再利用するように段階的に改修を行いました。
Drupal の内部キャッシュが多く再利用されるようになり、コンテンツの表示時間は大きく改善、サーバーリソースの使用率も削減されました。
モチヤの Drupal プロジェクトの進め方
開発サイクルの見直し
One NEC.com プロジェクトの開発が始まった 2020年初頭、社内プラットフォームの EOS に向け工期短縮を狙って、短スパンでのアジャイル開発が行われていました。アジャイル開発は小さい単位での開発を短いサイクルで回していくため、要件定義や受け入れテストといったクライアント側の負荷も高くなります。
そこでモチヤは開発スパンを根本から見直し、クライアントと開発にとっての最適解を導きました。妥協せずに納得いくまで調整することにより、プロジェクト全体の品質担保につながっています。
お客さまの優先順位と Drupal の動向を踏まえて計画を巻き直す
お客さまにとって、タスクの優先順位は状況によって変化するものです。新たな問題の発覚や、コンテンツ数やユーザー数など運用状況によっても優先順位は日々変化します。その変化にいかに対応できるか、計画と目標をいかに素早く巻き直せるか、がポイントとなります。
Drupal はモジュール単位で実装していきますが、モジュールは以下の 3種類に分かれます。
大規模なコミュニティによって支えられ、Drupal Core として提供される「コアモジュール」、オープンソースとして公開される拡張機能の「コントリビュートモジュール」、プロジェクトごとにカスタムで作成する「カスタムモジュール」です。
モジュールの種類 | 概要 |
---|---|
コアモジュール | Drupal Core に含まれるモジュール。 |
コントリビュートモジュール | オープンソースとして公開されている拡張機能。2024年7月現在、5万件を超えるモジュールが存在している。 |
カスタムモジュール | プロジェクトごとにカスタムで作成する独自モジュール。 |
お客さまの要望から実装上のリスクを推測し、より将来性の高いモジュールを選定します。コアやコントリビュートの issue 状況によってはタスクの優先順位を下げることも提案します。
オープンソース Drupal を生かして、より安全でメンテナンス性の高い実装を目指し、日々お客さまとコミュニケーションを重ねていくことが、モチヤの Drupal 開発です。
まだまだ成長中の One NEC.com
リリースから 4年が経過し、基盤システムとなった One NEC.com は、さまざまなサービスとの連携が予定され、成長真っ只中。モチヤは常に変化しながら、お客さまの課題を一緒に解決していきます。
中村 仁美/ 東京オフィスマネージャー
大規模サイトのプロジェクトマネージャーをしています。要件定義、UIUX、コーディング、Webマーケティング、SEO、SNS運用などWebに関する守備範囲は広め。
休みの日は山か城に登り精神を統一しています。最近チェアリング始めました。