Welcome to Build 2024!
The team will be covering the latest AI enhancements for migrating web applications, how AI helps developers to monitor and troubleshoot applications, examples of integrating generative AI into both classic ASP.NET and .Net Core apps, and platform enhancements for scaling, load testing, observability, WebJobs and sidecar extensibility.
Drop by the breakout session “Using AI with App Service to deploy differentiated web apps and APIs” on Thursday May 23rd (12:30PM to 1:15PM Pacific time – BRK125 – In-Person and Online) to see live demonstrations of all of these topics!
Azure App Service team members will also be in attendance at the Expert Meetup area on the fifth floor – drop by and chat if you are attending Build in-person!
There are additional demos and presentations from partner teams that will cover (in part) App Service specific scenarios, so if you have time consider the additional sessions as well!
Using AI with App Service to deploy differentiated web apps and APIs
BRK125
Thursday, May 23rd
12:30 PM - 1:15 PM Pacific Daylight Time
Breakout Session – In-Person and Online
App innovation in the AI era: cost, benefits, and challenges
BRK120
Tuesday, May 21st
4:45 PM - 5:30 PM Pacific Daylight Time
Breakout Session – In-Person and Online
Conversational app and code assessment in Azure Migrate
DEM713
Wednesday, May 22nd
10:30 AM - 10:45 AM Pacific Daylight Time
Demo Session – In-Person Only
Leverage Azure Testing Services to build high quality applications
BRK183
Thursday, May 23rd
1:45 PM - 2:30 PM Pacific Daylight Time
Breakout Session – In-Person and Online
Vision to value - SAS accelerates modernization at scale with Azure
BRK170
Thursday, May 23rd
1:45 PM - 2:30 PM Pacific Daylight Time
Breakout Session – In-Person and Online
GitHub Copilot Skills for Azure Migrate
In a recent IDC study of 900 IT decision makers worldwide, 74% of the respondents cited faster innovation, faster time to market, and/or improved business agility as one of the top benefits driving the business case for migrating and modernizing apps with a managed cloud service. Microsoft has been continuously investing in first party tools to make it easier and faster to migrate using the tools you already use and love. We are excited to announce that Azure Migrate application and code assessment, which was released at Microsoft Ignite 2023, now adds GitHub Copilot Chat enhancement to the Visual Studio migration extension!
Once you have the updated migration extension installed in Visual Studio, as well as enabling the Visual Studio GitHub Copilot Chat extension, GitHub Copilot Chat will guide you through the individual items found in the application migration report. You can ask questions like "Can I migrate this app to Azure?" or "What changes do I need to make to this code?" and get answers and recommendations from Azure Migrate. (Note: GitHub Copilot licenses sold separately).
You can get started by clicking on the “Open Chat” button in the compatibility report as shown below.
This will open an interactive chat session where you can chat with Copilot to iterate through the various assessment suggestions. In this example the migration report recommends moving secrets like database connection strings out of web.config or code, and into a secure location such as Azure Key Vault.
You can interactively step through recommended remediations for each issue:
In this example after selecting “No, I don’t have an Azure Key Vault…”, Copilot will show the commands necessary to setup Key Vault in Azure:
You can continue to walk through all of the migration suggestions and issues found in the assessment report in this manner, leveraging Copilot to provide specific steps, CLI commands, and code remediations to prepare your application for migration into Azure!
Sidecar Scenarios in Azure App Service on Linux
Sidecar patterns are a way to add extra features to an application, such as logging, monitoring and caching, without changing the application’s core code. Sidecar support for container based applications on Azure App Service on Linux is now in public preview! Public preview for using sidecars with source-code based applications is expected to be available this summer.
Common scenarios include attaching monitoring solutions to your application, including popular third-party application performance monitoring (APM) offerings. This example shows a container-based application configured with an OpenTelemetry (OTel) collector sidecar which exports metrics to OTel compatible targets. There are also additional examples showing how to integrate with commonly used ISV solutions such as Datadog with your web applications.
Other common scenarios include attaching a sidecar for in-memory caching using Azure Cache for Redis, and attaching a vector cache sidecar to reduce traffic to back-end LLLM resources when adding generative AI to your application.
At Microsoft Build 2024, breakout session BRK125 includes demonstrations of sidecar scenarios for both container-based and source-code based applications!
WebJobs for Azure App Service on Linux
Webjobs are background tasks that run on the same server as the web app and can perform various functions, such as sending emails, executing bash scripts and running scheduled jobs. WebJobs are now integrated with Azure App Service on Linux, which means they share the same compute resources as the web app to help save costs and ensure consistent performance. WebJobs support for both Azure App Service on Linux as well as Windows Containers on Azure App Service is broadly available in public preview.
WebJobs enable developers to easily run arbitrary code and scripts, in the language of their choice, on a variety of schedules including continuously, manually on-demand, or on a periodic schedule defined via a crontab expression. For example, Linux developers can continuously run shell scripts that perform background “infra-glue” tasks like scanning through a back-end database and sending email reports.
The full list of supported scripting options, as well as information on how to run jobs in a specific language, is available in the updated WebJobs documentation.
Automatic Scaling on Azure App Service
We're happy to announce that the automatic scaling feature in Azure App Service is now generally available! Automatic scaling provides significant performance improvements for any web app without writing new code or making code changes. With this feature, Azure App Service automatically adjusts the number of application instances and worker instances based on dynamically assessing the incoming HTTP request rate and observed load on the underlying app service plan.
We improved the Automatic Scaling feature based on your feedback during the preview phase with expanded SKU availability and a new scaling metric:
- Automatic scaling expanded support to encompass the P0v3 and P*mv3 SKUs.
- A new metric called "AutomaticScalingInstanceCount" was added which shows the number of worker instances your application is consuming.
Let Azure App Service adjust the worker count of your App Service plan to match your web application load, without worrying about auto-scale profiles or manual control. It is like an “automatic cruise control” for your web apps! Also check out our community standup to see this feature in action!
Four Nines' Resiliency is Kind of a Big Deal!
As of May 1st Azure App Service officially supports 99.99% resiliency when your app service plan is running in an Availability Zone based configuration! Availability Zones are isolated locations within an Azure region that provide high availability and fault tolerance. Please refer to the Service Level Agreement (SLA) documentation dated May 01, 2024 to learn more about the higher SLA.
Azure App Service Environment version 3: New and Notable
For customers using the Isolatedv2 SKU on App Service Environment v3 (ASEv3) with Windows, the new memory-optimized pricing tiers, denoted with an ‘m’ such as in Imv2, are now available and can be configured using the Azure CLI as well as ARM/Bicep! The memory optimized tiers provide a higher memory-to-core ratio than their regular counterparts. For instance, in one of the larger Isolated v2 tiers, both I5v2 and I5mv2 provide the same number of cores at 32 vCPU, but the memory-optimized tier has double the RAM at 256GB. Support for Linux and Windows Containers is expected to be available later this year. Portal support for Windows source-code based apps running on ASEv3 will also be available shortly after Build! Please refer to the product documentation to learn more about the new tiers and availability.
Friendly Reminder: While on the subject of Azure App Service Environment, allow me to rerun our public service announcement about the upcoming retirement of Azure App Service Environment v1 and v2 on August 31 2024. We recommend starting the migration process as soon as possible (time is quickly running out!). Many customers have already completed this migration with little to no downtime. Please visit product documentation for detailed steps, tools, and useful resources to help you. Our next community standup scheduled for June 5th will also cover this in detail.
TLS 1.3 and More!
We are pleased to announce that TLS 1.3 has been rolled out worldwide and is now generally available across App Service on Public Cloud and Azure for US Government! Customers can configure an application to require TLS 1.3 via the minimum TLS setting available in the Azure portal, as well as via ARM.
With the availability of TLS 1.3, App Service has also updated the TLS cipher suite order to account for recommended TLS 1.3 cipher suites. You will see the following two TLS cipher suites listed on the minimum TLS cipher suite feature:
- TLS_AES_256_GCM_SHA384
- TLS_AES_128_GCM_SHA256
As part of the TLS updates, App Service on both Windows and Linux support End to End (E2E) TLS Encryption (in public preview). Incoming HTTPS requests are usually terminated at the App Service front-ends, with the requests proxied to individual workers over HTTTP. With the updated E2E TLS Encryption feature, both Windows and Linux applications can choose to encrypt the requests between the App Service front-ends and the workers running applications. E2E TLS Encryption is available for Standard App Service Plans and above, and can be enabled in the Azure portal as well as via ARM and Azure CLI.
If you have an Azure Key Vault that uses Azure role-based access control (RBAC), you can now import that Key Vault certificate to your web app. Because newly created Key Vaults are configured to use RBAC by default, instead of the legacy access policies, this new support in Azure App Service will make it easier for you to integrate your Key Vault certificates with App Service. Support for importing certificates into App Service from Key Vault using RBAC permissions is available via ARM and the Azure CLI, with Azure portal support planned for the future. Developers can read more about this new support in the documentation.
For more information regarding TLS 1.3 on App Service, the new minimum cipher suites, and updates to E2E TLS Encryption refer to the all-inclusive article on the Microsoft Community Hub!
Better Together with Recommended Azure Service
You can now find recommendations in the Azure Portal for services commonly deployed with Azure App Service! The initial list is curated and primarily focuses on connecting newly created Azure resources to your existing App Service applications. An example of showing recommended services is shown below.
In addition to the curated listed, the new Recommended Services capability in Copilot for Azure offers quick recommendations tailored to your specific application. For instance, it can suggest a popular database suitable for your application type or ensure that you are “on the right track” with commonly deployed services, drawing insights from similar applications.
To use the new Copilot integrated capability, navigate to the Azure Portal and open Copilot for Azure. Examples of the types of questions that you can ask include: “What are commonly deployed services for my app?” or “What is the recommended database for my app?” Read more about these capabilities and try out the new Recommend Services Copilot capability today!
Azure Load Testing Integration
How many times has new code been released to production only to encounter unexpected performance related problems? With the recent release of Azure Load Testing integration with Azure App Service, there has never been a better time to easily run load tests on your web applications. Discover performance problems before they make it into production and uncover race conditions and other load related bugs ahead of time!
You can start setting up load tests directly from the Overview page of your web applications.
As part of this you configure one or more Urls to include in the test run.
You also configure the size of the load test, along with other parameters governing startup behavior and load test duration. After the load test is completed, you will see summarized results for the specific load test where you can also drill down to more detailed metrics.
For more advanced scenarios involving high-scale production scenarios, Azure Load Testing integration also makes it easy for developers to experiment with different scaling strategies and compare the results to achieve desired workload performance.
Language and Deployment Updates
App Service regularly updates major and minor language versions across both the Windows and Linux variants of the platform. As part of that continuing cadence, App Service on Linux just released PHP 8.3 last week! And just last month WordPress on Linux App Service GA’d the Free Tier option which includes a twelve month no-cost backend database running on Azure Database for MySql!
An interesting technical tidbit for the curious, there is also a great write-up here on how to use Wordpress on App Service as a headless CMS back-end in conjunction with Azure Static Web Apps.
gRPC has been generally available for App Service on Linux since last November. We’re happy to announce that gRPC support is now available in public preview for App Service on Windows! The team recently demonstrated using gRPC on Windows and Linux at the recently concluded .Net Day 2024.
Azure App Service on Linux has also added a new deployment status tracking API that surfaces detailed deployment log information when deploying source-code based applications. The deployment status tracking API surfaces detailed step-by-step progress information including specific failure information, a link to follow for more detailed deployment failure logs, and post-deployment app startup information. The platform is continuing to expand this capability with additional integration planned for the Azure Portal. For more details on the new deploy status tracking API and guidance on how to use it see this article!
Next Steps
Developers can learn more about Azure App Service at Getting Started with Azure App Service. Stay up to date on new features and innovations on Azure App Service via Azure Updates as well as the Azure App Service (@AzAppService) X feed. There is always a steady stream of great deep-dive technical articles about App Service as well as the breadth of developer focused Azure services over on the Apps on Azure blog.
Take a look at innovation with .Net, and .Net on Azure App Service, with the recently completed .Net Day 2024 event where the new code assessment migration tools were demonstrated as well as gRPC functionality running on both Windows and Linux App Service.
And lastly take a look at Azure App Service Community Standups hosted on the Microsoft Azure Developers YouTube channel. The Azure App Service Community Standup series regularly features walkthroughs of new and upcoming features from folks that work directly on the product!