Build Microsoft は、JAMstack パターンを使用して構築されたアプリケーション向けに設計された、現在プレビュー段階の新しい Azure 向け App Service を発表しました。
Azure App Serviceは、Azureの最も初期のサービスの一つであり、最も便利なサービスの一つです。WindowsまたはLinux向けのアプリケーションをデプロイすると、サービスがアプリケーションの実行に必要なリソースを提供し、負荷分散と自動スケーリングも行います。ただし、基盤となるテクノロジーが異なるため、この新しいサービスは既存のApp Serviceプランとの共通点はほとんどありません。
新たに発表されたApp Serviceの種類はAzure Static Web Appと呼ばれ、GitHubと連携して動作するように設計されています。新しいStatic Web Appサービスを作成すると、対応するGitHub Actionの自動ワークフローも構成されます。この場合、新しいサイトのリポジトリにコード変更をコミットするたびに、サービスによって更新されたコードがビルドおよびデプロイされます。
JAMstackのJAMは、JavaScript、API、Markupの略です。重要なコンセプトは、Webサーバーが不要であるということです。動的にコードを生成するサーバーアプリケーションの代わりに、静的サイトジェネレーターがデプロイごとにコードを一度生成するため、サーバー側の処理は不要です。コンテンツ配信ネットワークを使用することで、パフォーマンスをさらに向上させることができます。
ほとんどのウェブサイトは動的コンテンツを必要としますが、JAMstackアプリケーションは通常、ブラウザで実行されるJavaScriptからAPI、マイクロサービス、またはサーバーレス関数を呼び出すことでこれを取得します。このコンテンツはサーバーから配信されるため、アクセス時に認証を必要とするなど、セキュリティ保護も可能です。
Azureソリューションには、Azure FunctionsのAPIサポートが統合されています。また、グローバルに分散された静的コンテンツ、無料のSSL証明書、ステージングサポートも提供されており、公開前にサイトをプレビューできます。Gatsby、Hugo、VuePress、Next.js、Nuxt.jsなど、一般的に使用されているJAMstackサイトジェネレーターとフレームワークのサポートも組み込まれています。
静的ウェブサイト用の Visual Studio Code 拡張機能
Microsoftのソリューションは、Visual Studio CodeとGitHubに統合されています。私たちはこの拡張機能を早期に試してみましたが(統計によると、まだ12回しかインストールされていませんでした)、VS CodeのInsiderビルドが必要です。この拡張機能には、静的サイトのデプロイとAzure Functionsの追加のためのウィザードが用意されています。ウィザードに従って操作することで、コード変更がコミットされるたびにAzure上で更新されるサイトを作成することに成功しました。
JAMstackのコンセプトには一定の論理性があり、あらゆるタイプのサイトに適しているわけではないものの、このモデルに適合するサイトにはメリットがあります。ソフトウェア開発会社ThoughtWorksは、このアイデアを「評価」と評価し、11月に「このアプローチは、主にAPIやSaaSに依存するウェブアプリケーションに、豊かなユーザーエクスペリエンスを提供できる」と述べています。
HTML は Web ブラウザー内またはビルド時にレンダリングされるため、展開モデルは完全に静的に生成されたサイトと同じになり、サーバー上の攻撃対象領域が小さく、リソース使用量を抑えながら優れたパフォーマンスを実現できるなど、そのすべての利点が得られます。」
これは、Microsoft が開発者向け資産である GitHub と Visual Studio Code を活用して、開発者を Azure へと導くコードからアプリケーションへのソリューションを提供している例でもあります。
新しいサービスのドキュメントはここにあります。®