豊富な管理機能でWebアプリ開発を後押し
「Web Apps」

オンプレミスとクラウドの両用などハイブリッドな企業システムを検討する動きが増す中、Webアプリケーションの開発基盤をクラウドに移行したいという企業も増えている。背景には、アプリケーション基盤の管理負担が大きい点が挙げられる。そうした負担を減らし、Webアプリケーションの開発に専念できる開発者向けPaaSソリューションが「Web Apps」だ。

開発基盤インフラを一括でサポート

 Webアプリケーションを提供するためには、アプリケーションコードを書くだけでなく、サーバーやOSの管理、障害発生時の復旧対応、ランタイムのバージョンアップなど運用管理が必要になる。しかし、このような管理の負担により、肝心のWebアプリケーション開発に遅れが生じているケースも少なくない。

 この課題を解決するため、プロバイダー側に管理を委任できるクラウドを検討する企業が増えている。開発者がWebアプリケーションの実装に集中でき、実行基盤の運用管理の煩雑さを解消するツールを提案したい。

 上記のニーズを踏まえ、日本マイクロソフト カスタマーサクセス事業本部 エンタープライズアーキテクト統括本部 AppDev アーキテクト技術本部 クラウドソリューションアーキテクト 阿佐志保氏は開発基盤のクラウド化のメリットを次のように説明する。「クラウドサービスには大きく分けて、IaaS、SaaS、PaaSがあります。IaaSは車で例えると、自分で車を買って所有するようなサービスです。車検やガソリン補充、故障時の修理など全て自社対応となります。高額な初期費用がかかるところもネックな点です。それに対し、SaaSはライドシェアリングサービスに似ています。すでに出来上がっているシステムに対して利用分に料金を払うだけでよいのが利点です。しかし、SaaSの場合、ニーズに合った構成を選んだり、独自にカスタマイズしたりするのが難しくなります。その中間地点として、レンタカーの立ち位置に相当するのがPaaSです。PaaSのWeb Appsなら、システムに必要なスペックを選び、サーバーを借りたい期間を設定すればよいため、利用分だけのコストでWebアプリケーションの開発基盤をカスタマイズできます」

 Web Appsでは、スペックの異なるOSやツールなどに豊富に対応しており、開発者にフレンドリーな設計となっている。例えば、OSはWindowsとLinuxのいずれかを選べる。ランタイムは、.NET Framework、JavaScript、Python、PHPといったさまざまなプログラミング言語を選択可能だ。CMSではオープンソースのWordPressなど汎用性の高いツールを選べるのも魅力だ。また、開発者に人気の高いVisual Studio CodeやGitHubなどのツールやサービスと連携しているのも大きな特長だ。無償で使えるプランも用意されているので、初めてクラウドを使う場合も手軽に始められる。Web Appsは、これらの機能を全てPaaS上で提供する。開発者はWebアプリケーションのコードを書き、それをAzure Portal上にアップロードすれば、Webアプリケーションをクラウド上で迅速に運用し始められる。

アプリケーションの安全なリリースを実現

 クラウドに移行したときの魅力は、なんといってもバージョンアップの容易さだ。Webアプリケーション運用時に役立つ機能として、「ステージング機能」を阿佐氏は紹介する。「例えば、運用中のアプリケーションへの機能追加やUIデザインの変更といったアップデートが必要な状況もあるでしょう。その際、本番環境でいきなり仕様変更を行うとトラブル発生時にシステムが利用できなくなるリスクが発生します。ステージング機能は、本番環境の横で機能追加やUI変更をしたWebアプリケーションをデプロイし、問題なく動作することを確認してから本番環境に入れ替える『スワップ』ができます。万が一公開したWebアプリケーションに問題が発生した際にも変更前のバージョンにすぐに戻せるためリリース時のトラブルをすばやく回避できます。さらに、新機能を一部のユーザーのみに公開して、問題ないことを確認したうえで全展開する『カナリアリリース』にも対応しています」

 クラウド移行を検討する際には、セキュリティの懸念も大きい。そうした懸念も、Azure ADとの連携で解消できるという。「多くのWebアプリケーションではユーザー認証機能を実装しますが、Web Appsでは、Azure Portalから設定するだけでAzure ADと連携する『EasyAuth』を備えていて設定のみで容易にアプリケーションに認証機能を実装できます。大事なセキュリティ部分をAzureに任せてWebアプリケーションの機能開発に専念できるのです」(阿佐氏)

▼Web Apps内で活用できるApplication Insightsでは、ダッシュボードから「パフォーマンス」の項目をクリックすると、Webアプリケーションを動かすサーバーやWebブラウザーのパフォーマンス情報を表示できる。

サーバーやアプリの状態を見やすく可視化

 Web Appsは、監視・分析ソリューション「Azure Monitor」内のモニタリング管理ツール「Application Insights」と連携し運用管理も効率的に行える。阿佐氏は、本機能の利便性の高さを次のように説明する。

「Application Insightsでは、Webアプリケーションのモニタリングや分析ができます。例えば、実際にホストしたWebアプリケーションへの入力・送信リクエストやエラーなどの件数をグラフィカルな画面で確認できます。さらに『アプリケーションマップ』では、システムの全体構成やボトルネックとなる部分を把握できます。これにより本番環境で発生したパフォーマンス問題でも即座に問題個所を特定できます。また、Azure Monitorと連携してCPUがあらかじめ設定した閾値を超えたら管理者にアラートを送信するという対策が可能です。アラート通知は、EメールやSMSに送ったり、最小限のコーディングあるいはノーコードでアプリやデータ、システムの統合などが行える『Logic Apps』と組み合わせてTeamsやSlackなどのチャットツールで管理者にメンションで送ったりできるため、システムのトラブルをいち早く検知できます」

 最後に、提案ターゲットに関して、阿佐氏は「Web Appsはクラウドネイティブなアプリケーションに最適化されています。便利な新機能もどんどん出てきます。そのため、Web Appsをうまく使いこなすには、開発も運用もクラウドに適した形にアップデートしていくことが重要です。Web Appsは、これまで開発者や運用者を悩ませていたシステム運用の負担を減らし、本来注力すべきWebアプリケーションの開発に注力できるサービスになっています」と語った。