ZendはWeb上の100万近いサイトやブログで幅広く使用されている PHP フレームワーク以外にも,Zend Server や Zend Server in the Cloud, Zend Unlimited, Zend Framework, Zend Studio, Zend Developer Edition, Zend Developer Cloud, Zend Guard などを開発している。
同社の共同創設者でCEOの Andi Gutmans 氏が,InfoQとの独占インタビューに応じてくれた。クラウドコンピューティングに関する氏自身の見解に加えて,セキュリティやサイトをハッカーから保護するために取るべき行動指針など,PHPに関するさまざまな側面について語っている。
InfoQ: クラウドコンピューティングの意味について,分かりやすい言葉で説明して頂けますか?
クラウドコンピューティングにはさまざまな選択肢 (SaaS, IaaS, PaaS) が数多くありますから,簡単には答えられません。大部分の開発者にとってのクラウドとは,セルフサービスの開発環境 (インストールやコンフィギュレーション,開発環境管理に関する時間の浪費が不要,という意味です) であると同時に,開発,テスト,運用の間の引継ぎとコラボレーションを容易でスムーズなものにするための手段です。Zendは無償の開発環境 (Zend Developer Cloud) を提供していますが,中でもスタックのスナップショットやコードを開発者同士で共有できる機能は,ユーザがもっとも高く評価してくれている部分のひとつです。このようにアイデアを簡単に共有できることは,多くのクラウドソリューションが備えている重要な側面でしょう。
InfoQ: クラウドコンピューティングの潜在的な能力は,完全に活用されていると思われますか?
まったくそうではないですね。クラウドコンピューティングの潜在的なメリットの活用は,まだ始まったばかりです。企業のプラットフォーム・アズ・ア・サービスを採用する方法は,これから大きく変わってくると思います。構築済みのインフラストラクチャを活用するようになれば,本来の課題,つまりアプリそれ自体により集中できるようになるからです。将来的にはアプリケーションの多くもSaaSに移行するでしょうし,延いてはそれがIaaSやPaaS,それらをサポートするアプリの利用拡大に繋がっていくはずです。
InfoQ: あなたの目から見て,エンドユーザにとってのクラウドコンピューティングのメリットはどのようなものでしょう?
アプリケーションのオーナならば,クラウドコンピューティングを活用することによって,エンドユーザのレスポンス時間などといったアプリケーションレベルのSLAを簡単に提供できるようになります。企業にとっては,クラウドコンピューティングの持つアジリティが技術革新を早めてくれるでしょう – そうなれば,エンドユーザにもっと多くの価値を提供できるようになります。
InfoQ: クラウドコンピューティングが発展する以前と比較して,プロジェクトの実践方法はどのように変わったのでしょうか?
クラウドコンピューティング以前,アジャイル開発の実践はずっと難しいものでした – 結局のところ開発者たちは,非クラウド環境でアジャイルの柔軟性を実現するという苦労か,開発アジリティの欠如に対応するか,いずれかを強いられていたのです。
InfoQ: Windows Azure,PHP,Javaベース,といったクラウドプラットフォームの中で,もっともメリットが大きく,かつ脆弱性の少ないものは,どれだと思われますか?
そうですね,セキュリティという点に関して言うなら,アプリケーション側のセキュリティに依存する部分がたくさんあります - 言語のランタイムセキュリティ,開発のベストプラクティス,物理的なセキュリティ,ネットワークセキュリティ,アクセス管理,その他にもあるでしょう。ひとつ重要なのは,どの言語を選択するのであれ,問題に対して迅速に対処してくれるベンダを探すことです (現実的には,言語に関する問題の発生を,すべて回避することはできませんから)。例えば先日のセキュリティ問題に対しては,PHPコミュニティの方がJavaコミュニティよりも素早く対応していました。
ただし,開発チームが注目すべきもっとも重要な課題は,アプリケーションコードそれ自体にあることも忘れてはなりません。脆弱性が侵入する可能性のもっとも高い場所だからです。フレームワーク,コード監査,トレーニングの3つを活用することが,リスクを軽減する上でもっと一般的な方法ですね。
InfoQ: 2030年以降のクラウドコンピューティングには,どのような可能性があると思われますか?
その頃までには,さまざまなことが繰り返されるでしょう。もしかすると,クラウドコンピューティングという名前も変わっているかも知れません。それでもスケールとアジャイルという,その中核的なメリットは確実に存在し続けるでしょうし,それが幅広く採用されるための原動力になると思います。
InfoQ: クラウドコンピューティングのプラットフォームを通じたデータ転送は,安全だと思われますか?
クラウドデータのセキュリティの世界では今,たくさんの技術革新が起こっています。長期的に見れば,少なくともオンプレミスと同じ程度までセキュアになることは間違いありません。今日の企業がクラウドに求めているスケーラビリティとコスト面でのスケールメリットを,今後はMicrosoftやGoogle,Amazonといった大企業の持つセキュリティの専門知識の活用という,別のスケールメリットに展開することができるでしょう。これら企業が行っているのと同じくらい詳細なレベルと深さで,小規模な企業や組織がインフラストラクチャのセキュリティに投資できるとはとても思えません。
InfoQ: モバイルアプリ開発におけるPHPの役割について,どのようにお考えですか?
私たちの経験から言えば,モバイルアプリのバックエンドとして,PHPは他のどの言語よりも多く選ばれています。事実として,Evans Dataの調査によれば,モバイルアプリに従事する動的言語開発者の75%がPHPを選択しているのです。私たちZend自身の調査でも,PHP開発者の90%以上がモバイルアプリに携わっている,という結果が出ています。柔軟性,既存のバックエンドシステムへのインテグレーションの容易さ,さらにはAPIベースのアーキテクチャへの適合性の高さといった点から,PHPが選ばれているのだと思います。
InfoQ: PHPアプリケーション開発におけるZendの役割は,どのようなものでしょう?
Zendは今後も,PHP言語への重要な貢献者であり続けます。PHPのコアであるZend Engineは,今後もZendがメンテナンスを続けます。つい先日も,バイトコードキャッシング技術を提供しました。PHP 5.5の一部として出荷される予定です。PHPコミュニティの一員として継続して貢献することも,Zendにとって大切なことですし,Eclipse PDTやZend Frameworkなど,他のオープンソースプロジェクトにも協力するつもりです。商用製品として成功を収めたZend Server Application Platformは,同じくオープンソースPHPを活用しながら,さらにオートスケーリングやセッションのクラスタリングとフェールオーバといった追加機能を加えたものです。PHPアプリケーションの監視機能も備えていますので,もっとも一般的なアプリケーションの問題の警告や,うまく行けば回避も可能になります。
InfoQ: PHPに関して,深刻な脆弱性が報告されることが時々あります。PHPを強化してサイトをハッカーから保護するため,今後のリリースにおいて実装を計画中のセキュリティ対策について説明して頂けますか?
PHPのセキュリティ対策チームは,今後も大手ベンダやセキュリティ研究家と協力して,セキュリティ問題の特定と対処を継続します。PHPアプリケーションフレームワークはすべて,それぞれの持つベストプラクティスを強化することで,この問題に対処しようとしています。
InfoQ: 私の州であるインドのケララでは,地元の政府機関のWebサイトはほとんどPHPで開発されています。先日,それらのサイトの多くがハッキングされました。将来的にこのような事態を防止するには,どのようなステップが必要になるのでしょうか?
まずはアプリケーションの監査を始めるとよいでしょう。外部から専門家に来てもらって,アプリケーションコードを調査してもらうのが最善の方法です。その次には,少なくとも1つのメジャーなPHPフレームワーク(Zend Framework, CakePHP, Syfomy) に馴染むことでしょう – これらはそれぞれ,最新の攻撃に対して継続的に注目していますから,最新のアップデートが確認できるように,常に情報を把握しておくことが大切です。そして最後に,優れたセキュリティ訓練のクラスがあちらこちらにあります – 開発者は現在実施されているWebセキュリティトレーニングを受けて,絶えず更新されている最新のベストプラクティスの実装方法を理解しておくことが必要です。