やっと、Drupalで美しいウェブサイトを仕上げましたが、数年後このサイトは想像した通りに動きますか?ロード時間が遅かったり、ハックされたり、メンテナンスしにくいサイトだと、、期待した通りの成果が得られない可能性があります。
私たちは、「Lullabot Best Practices Audit」とというサービスを提供しています。。サイト監査サービスの一環として、お客様のサイトを3つの観点(安全性、パフォーマンスと安定性)安全性、実行力と安定性で分析します。この記事ではお客様にする質問のいくつかや、お客様のサイトパフォーマンスを評価するためのツールについてを話します。
皆さんは(安全性、パフォーマンス、安定性)の3点をご存知だと思います。これらがサイト監査のメインフォーカスになった理由は、自社サイト運営で怠ってきたことだったからです。普段では外見、機能、バグに集中し過ぎると、このようなウェブサイトの基礎のことを忘れてしまいがちです。
そうなると、顧客を失うリスクが増え、企業として信頼に傷がつき、機密情報が漏洩し、、これら全ては(好むと好まざるに関わらず)コストがかかります。
セキュリティ
セキュリティというのは成果物ではなく、規律(統制)です。(セキュリティの脅威は常にあり、脅威は進化するので)セキュアなウェブサイトを持つことはいつも達成できることではありませんので、永遠にサイトを改善するしかありません。ちゃんと準備をしていない場合、その代償は大きいです。
サイトとインフラのセキュリティの強みは手順にあり、セキュリティの手順が弱い場合、サイトのセキュリティの弱点も増えます。今からご紹介するのが、サイト監査の一環としてDrupalのセキュリティについて質問することになります。
- セキュリティプロセスは十分に書類化、ルール化していますか??
- Drupal Security Advisories とアップデート情報をモニタリングしていますか?sどのようにモニタリングしていますか?
- サイトのセキュリティはどれくらい更新されていますか?
- Zero-day対策は準備していますか?
- セキュリティチェックは普段どのくらい行っていますか?1.脆弱性自動チェックのツールを使っていますか?
- サイトは全ページにHTTPSを使っていますか?
これらの質問にはどうでしょうか?ちゃんと答えできますか?出来ていない場合、あなたのサイトとそのインフラはハックされる危険があります。気付かないうちに侵入された可能性も否定できません。
役立つツール
自社でもご利用いただけるでも便利なDrupal用のセキュリティ監査ツールがあります。
- Security Review Module はあなたのDrupalサイトにステータスページを作り、Drush commandでシステムにファイルのアクセス許可、XSSの脆弱性、任意のコード実行等のような一般脆弱性のチェックを行う事ができます。
- Hacked Module はコアとのオープンソースのコードに変更があるかどうかのチェックを行います。
- Coder Module はテキスト等に秘密情報が残っているかどうかとcコードが全てコーディングの標準はちゃんと守っているかっどうかの一般チェックを行います。
- Qualys SSL Server Test は無料でパブリックSSL証明書に徹底的な分析を行って、グレード性で成績を与えられます。
これらのツールの中ではいくつがCommand Lineのバージョンがあり、それを継続的インテグレーションツールと組み合わせば、自動的な連続チェックのシステムを設定することが出来ます。
パフォーマンス
誰もが速いサイトを求めています。速いサイトとはユーザーがハッピーになり、検索結果上位に表示されるサイトを意味します。遅いサイトを持つということは良いページとはみなされず、結果として売り上げが下がります。
誰もが表示が遅いサイトを意図して持っているわけではありません。サイトパーフォマンスの問題は明確な理由なく時間をかけて顕在化し、いつどのように問題になったかもわかりません。このような問題の調査に投資するより、予防措置に努力しましょう。下記は私達の監査サービスで行う質問の一部となります。
- フロントエンドやバックエンドの実行は監視されていますか?どのようなツールでどのように?
- キャッシュのレイヤーはどのようにどれくらい準備してありますか?
- アクセスのパターンや経時的なスループット等の分析、アナリティクスは有りますか?
- 最近サイトがパフォーマンス問題でダウンタイムを経験しましたか?
- サイトに遅いページ等がありますか?
- サイトのアクセススピードでユーザからのクレームがありますか?
- 特にフロントエンドがもっと早くロードできるようにライブラリー等を利用していますか?
- サイトにある画像等にどのような最適化をしていますか?
- スマートフォン、タブレットやデスクトップ等、色々の画面の大きさの為の最適化をしていますか?
役立つツール
社内でパフォーマンス監査を行うためにこれらのツールが特にオススメです。
- XHProfとTideways PHP Profiler はPHP性能解析ツールで あるページにあるボトルネックを見つけることが出来ます。XHProfはPHP 5.6以下を対応します、一方で Tideways PHP profilerはPHP 7以下を対応出来ます。実力的には両方共特に変わりません。更に特にこのDrupal moduleがおすすめで、AJAX系のコードが多い場合ではこのパッチも使って下さい。 xhguiもおすすめです。 ヒント: exclusive wall time のところをちゃんと管理してみて下さい。
- New Relicの魅力は全部リアルタイムでモニター出来るうえ、特定のイベント等のためのお知らせも設定できます。コードにボトルネックを完全なチェックも行います。必要な場合ではサイトにダッシュボード, リアルタイムのグラフ、データ表等をカストマイズする事が出来ます。 New Relicはブラウザ, アプリケーション, サーバー の実行力等をリアルタイムで観察することが出来ます。New Relicが使えない場合では似たようなものもあります。
- Google's PageSpeed InsightsとYSlowでは実際サイトに変更する等は出来ませんが、監査を行って色々な最適化方法を提案します。
安定性
サイトの安定性を監査するときに、まずはサイトのアーキテクチャをから始め、開発者のドキュメンテーションを確認し、コードの質、書かれたプロセスやプロダクションに向けてデプロイされたものなどを見ます。。特に コーディングの標準等はちゃんと守っているかどうかをチェクし、コードの品質等もチェクします。
この領域でベストプラクティスが行われない場合、場合、色々な問題が発生する可能性が高くなります。例えば、開発サイクルが遅くなり、何かあったときのために常にスタッフがオフィスにいないといけない不安定なリリース、ベンダーロックイン、サイトの複雑さをわかった開発者のみと対応しなければならない不都合などです。サイトリリース時に何も起こらなかったとしても、これらはとてもコストのかかるプロセスであり、問題を最適化することは組織が効率的になり、コスト減につながり、問題は起きないかとビクビクすることが無くなります。
下記は私達の監査サービスで行う質問の一部となります。
- サイトアーキテクチャ、開発の流れ、公開手続き等の書類は有りますか?誰がどのように管理をしているかと誰がアクセス出来ますか?
- 開発チームの中では全員開発の基準が決定されていますか?
- 開発者の皆さんはお互いに同僚の作業をチェック(Peer Review) をしていますか?
- 開発中、自動チェックや目視はチェックを行っていますか?いつにどれくらい行っていますか(例:開発中や公開した後)?
- 開発プロセスで、どれくらいのことを自動で行っていますか?
- リリースの時は何人くらいがいますか?
- サイトが落ちる事がよくありますか?落ちた場合では根本的な原因分析
- (Root Cause Analysis)レポートがありますか?
- ロールバックの手続きがきちんとした形で準備してありますか?
- 技術的負債にどう対応していますか?
役立つツール
これらのようなのツールがあっってから私達がよく眠れるなりましたw
- Linting ツールは開発者の皆さんが フォーマットの基準を決めるのに役立ちます。Peer Reviewに役に立ちます。 EditorConfig は決められた基準を強制するためによく使われています。
- PHPUnit, Behat, Nightwatch, などのツールは自動的な監査を行うことが出来ます。これらのツールはサイトの安定性の事に非常に役に立ちます。最初にお金がかかるように見えますが問題防止の観点で価値があります。
- Tugboatと他の連続的な統合ツールは公開する前に色々な監査を行うことが出来ます。これでテスト版やステークホルダーが開発中のサイトを全体的にチェックすることが出来、前に述べたLintingツールと使う可能で、時間稼ぎの一つの点になります。
サイトの成功
安全性、パフォーマンスと安定性はサイト成功のための重要なポイントで。これらを見過ごすと大きな代償を払う必要があります。信頼を無くし、、顧客が離れ、ハッキングされたり、サイト利用時のストレスから、最終的には売り上げが落ちます。サイト監査を行うことによってサイトを成功に導くように時間を投資しましょう。
(Photo by Christopher Gower on Unsplash)
関連コンテンツ
- Drupal 導入前に必ず考えたい「保守」のこと
- 手軽に本格的な Drupal のローカル開発環境を構築してみよう
- 9 つのシンプルなステップで Drupal 9 のテーマを作成してみよう
- Drupal 9: 一般的なエクスプロイトの経路をブロックする方法
- エンジニア新人研修のご紹介
- Headless CMS というトレンドに Drupal は適応している!?
- Drupal 9.1 が登場!アップグレードの準備はできていますか?
- Drupal 9 におすすめのモジュール
- State of Drupalプレゼンテーション(2021年4月)
- 第 16 回 Drupal をもっと知りたい方に向けた各種情報
Drupal 初心者講座バックナンバー
- Drupal 9/10 初心者講座
- 第 1 回 歴史に見る Drupal の DNA
- 第 2 回 Drupal はフレームワークか?CMS か?他の CMS との比較
- 第 3 回 Drupal の特徴
- 第 4 回 Drupal 9 / 10 のインストール (1)
- 第 5 回 Drupal 9 / 10 のインストール (2)
- 第 6 回 Drupal にコンテンツを投稿してみる
- 第 7 回 Drupal のボキャブラリとタクソノミーの使い方
- 第 8 回 コンテンツ管理における Drupal と他の CMS との比較
- 第 9 回 Drupal のブロックシステム
- 第 10 回 Drupal の標準クエリビルダー Views の使い方
- 第 11 回 Drupal と他の CMS のクエリビルダー機能を比較
- 第 12 回 Drupal の多言語機能と他の CMS やサービスとの比較
- 第 13 回 Drupal の権限設定と WordPress や Movable Type との比較
- 第 14 回 Drupal のテーマシステムについて
- 第 15 回 Drupal の拡張モジュールの選定と使い方
- 第 16 回 Drupal をもっと知りたい方に向けた各種情報