Skip to content

Commit 8b02d42

Browse files
authored
Merge pull request #18053 from dotnet/publish-15038
Merge master into live
2 parents 73aa965 + da7d854 commit 8b02d42

36 files changed

+501
-246
lines changed

.github/ISSUE_TEMPLATE/dotnet-breaking-change.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,12 @@ Also, remove this comment before submitting the issue.
4444
- C#
4545
- Core
4646
- Core .NET libraries
47+
- Cryptography
4748
- Data
4849
- Debugger
4950
- Deployment for .NET Core
5051
- Globalization
51-
- interop
52+
- Interop
5253
- JIT
5354
- LINQ
5455
- Managed Extensibility Framework (MEF)

docs/architecture/serverless/azure-functions.md

Lines changed: 15 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -3,51 +3,40 @@ title: Azure Functions - Serverless apps
33
description: Azure functions provide serverless capabilities across multiple languages (C#, JavaScript, Java) and platforms to provide event-driven instant scale code.
44
author: JEREMYLIKNESS
55
ms.author: jeliknes
6-
ms.date: 06/26/2018
6+
ms.date: 04/06/2020
77
---
88
# Azure Functions
99

1010
Azure functions provide a serverless compute experience. A function is invoked by a *trigger* (such as access to an HTTP endpoint or a timer) and executes a block of code or business logic. Functions also support specialized *bindings* that connect to resources like storage and queues.
1111

1212
![Azure functions logo](./media/azure-functions-logo.png)
1313

14-
There are two versions of the Azure Functions framework. The legacy version supports the full .NET Framework and the new runtime supports cross-platform .NET Core applications. Additional languages besides C# such as JavaScript, F#, and Java are supported. Functions created in the portal provide a rich scripting syntax. Functions created as standalone projects can be deployed with full platform support and capabilities.
14+
The current runtime version 3.0 supports cross-platform .NET Core 3.1 applications. Additional languages besides C# such as JavaScript, F#, and Java are supported. Functions created in the portal provide a rich scripting syntax. Functions created as standalone projects can be deployed with full platform support and capabilities.
1515

1616
For more information, see [Azure Functions documentation](https://docs.microsoft.com/azure/azure-functions).
1717

18-
## Functions v1 vs. v2
19-
20-
There are two versions of the Azure Functions runtime: 1.x and 2.x. Version 1.x is generally available (GA). It supports .NET development from the portal or Windows machines and uses the .NET Framework. 1.x supports C#, JavaScript, and F#, with experimental support for Python, PHP, TypeScript, Batch, Bash, and PowerShell.
21-
22-
[Version 2.x is also generally available now](https://azure.microsoft.com/blog/introducing-azure-functions-2-0/). It leverages .NET Core and supports cross-platform development on Windows, macOS, and Linux machines. 2.x adds first-class support for Java but doesn't yet directly support any of the experimental languages. Version 2.x uses a new binding extensibility model that enables third-party extensions to the platform, independent versioning of bindings, and a more streamlined execution environment.
23-
24-
> **There is a known issue in 1.x with [binding redirect support](https://github.com/Azure/azure-functions-host/issues/992).** The issue is specific to .NET development. Projects with dependencies on libraries that are a different version from the libraries included in the runtime are impacted. The functions team has committed to making concrete progress on the problem. The team will address binding redirects in 2.x before it goes into general availability. The official team statement with suggested fixes and workarounds is available here: [Assembly resolution in Azure Functions](https://github.com/Azure/azure-functions-host/wiki/Assembly-Resolution-in-Azure-Functions).
25-
26-
For more information, see [Compare 1.x and 2.x](https://docs.microsoft.com/azure/azure-functions/functions-versions).
27-
2818
## Programming language support
2919

30-
The following languages are supported either in general availability (GA), preview, or experimental.
31-
32-
|Language |1.x |2.x |
33-
|--------------|------------|---------|
34-
|**C#** |GA |Preview |
35-
|**JavaScript**|GA |Preview |
36-
|**F#** |GA | |
37-
|**Java** | |Preview |
38-
|**Python** |Experimental| |
39-
|**PHP** |Experimental| |
40-
|**TypeScript**|Experimental| |
41-
|**Batch** |Experimental| |
42-
|**Bash** |Experimental| |
43-
|**PowerShell**|Experimental| |
20+
The following languages are all supported in general availability (GA).
21+
22+
|Language |Supported runtimes|
23+
|--------------|------------------|
24+
|**C#** |.NET Core 3.1 |
25+
|**JavaScript**|Node 10 & 12 |
26+
|**F#** |.NET Core 3.1 |
27+
|**Java** |Java 8 |
28+
|**Python** |Python 3.6, 3.7, & 3.8|
29+
|**TypeScript**|Node 10 & 12 (via JavaScript)|
30+
|**PowerShell**|PowerShell Core 6|
4431

4532
For more information, see [Supported languages](https://docs.microsoft.com/azure/azure-functions/supported-languages).
4633

4734
## App service plans
4835

4936
Functions are backed by an *app service plan*. The plan defines the resources used by the functions app. You can assign plans to a region, determine the size and number of virtual machines that will be used, and pick a pricing tier. For a true serverless approach, function apps may use the **consumption** plan. The consumption plan will scale the back end automatically based on load.
5037

38+
Another hosting option for function apps is the [Premium plan](https://docs.microsoft.com/azure/azure-functions/functions-premium-plan). This plan provides an "always on" instance to avoid cold start, supports advanced features like VNet connectivity, and runs on premium hardware.
39+
5140
For more information, see [App service plans](https://docs.microsoft.com/azure/app-service/azure-web-sites-web-hosting-plans-in-depth-overview).
5241

5342
## Create your first function
@@ -121,58 +110,6 @@ The example is a simple function that takes the name of the file that was modifi
121110

122111
For a full list of triggers and bindings, see [Azure Functions triggers and bindings concepts](https://docs.microsoft.com/azure/azure-functions/functions-triggers-bindings).
123112

124-
## Proxies
125-
126-
Proxies provide redirect functionality for your application. Proxies expose an endpoint and map that endpoint to another resource. With proxies, you can:
127-
128-
- Reroute an incoming request to another endpoint.
129-
- Modify the incoming request before it's passed along.
130-
- Modify or provide a response.
131-
132-
Proxies are used for scenarios such as:
133-
134-
- Simplifying, shortening, or changing the URL.
135-
- Providing a consistent API prefix to multiple back-end services.
136-
- Mocking a response to an endpoint being developed.
137-
- Providing a static response to a well-known endpoint.
138-
- Keeping an API endpoint consistent while the back end is moved or migrated.
139-
140-
Proxies are stored as JSON definitions. Here is an example:
141-
142-
```json
143-
{
144-
"$schema": "http://json.schemastore.org/proxies",
145-
"proxies": {
146-
"Domain Redirect": {
147-
"matchCondition": {
148-
"route": "/{shortUrl}"
149-
},
150-
"backendUri": "http://%WEBSITE_HOSTNAME%/api/UrlRedirect/{shortUrl}"
151-
},
152-
"Root": {
153-
"matchCondition": {
154-
"route": "/"
155-
},
156-
"responseOverrides": {
157-
"response.statusCode": "301",
158-
"response.statusReason": "Moved Permanently",
159-
"response.headers.location": "https://docs.microsoft.com/"
160-
}
161-
}
162-
}
163-
}
164-
```
165-
166-
The `Domain Redirect` proxy takes a shortened route and maps it to the longer function resource. The transformation looks like:
167-
168-
`https://--shorturl--/123` -> `https://--longurl--.azurewebsites.net/api/UrlRedirect/123`
169-
170-
The `Root` proxy takes anything sent to the root URL (`https://--shorturl--/`) and redirects it to the documentation site.
171-
172-
An example of using proxies is shown in the video [Azure: Bring your app to the cloud with serverless Azure Functions](https://channel9.msdn.com/events/Connect/2017/E102). In real time, an ASP.NET Core application running on local SQL Server is migrated to the Azure Cloud. Proxies are used to help refactor a traditional Web API project to use functions.
173-
174-
For more information about Proxies, see [Work with Azure Functions Proxies](https://docs.microsoft.com/azure/azure-functions/functions-proxies).
175-
176113
>[!div class="step-by-step"]
177114
>[Previous](azure-serverless-platform.md)
178115
>[Next](application-insights.md)

docs/architecture/serverless/event-grid.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Azure Event Grid - Serverless apps
33
description: Azure Event Grid is a serverless solution for reliable event delivery and routing at massive scale on a pay-per-event model.
44
author: JEREMYLIKNESS
55
ms.author: jeliknes
6-
ms.date: 06/26/2018
6+
ms.date: 04/06/2020
77
---
88
# Event Grid
99

@@ -126,14 +126,12 @@ In this chapter you learned about the Azure serverless platform that is composed
126126
- [Azure Logic Apps](https://docs.microsoft.com/azure/logic-apps)
127127
- [Azure Service Bus](https://docs.microsoft.com/azure/service-bus-messaging)
128128
- [Azure Table Storage](https://docs.microsoft.com/azure/cosmos-db/table-storage-overview)
129-
- [Compare functions 1.x and 2.x](https://docs.microsoft.com/azure/azure-functions/functions-versions)
130129
- [Connecting to on-premises data sources with Azure On-premises Data Gateway](https://docs.microsoft.com/azure/analysis-services/analysis-services-gateway)
131130
- [Create your first function in the Azure portal](https://docs.microsoft.com/azure/azure-functions/functions-create-first-azure-function)
132131
- [Create your first function using the Azure CLI](https://docs.microsoft.com/azure/azure-functions/functions-create-first-azure-function-azure-cli)
133132
- [Create your first function using Visual Studio](https://docs.microsoft.com/azure/azure-functions/functions-create-your-first-function-visual-studio)
134133
- [Functions supported languages](https://docs.microsoft.com/azure/azure-functions/supported-languages)
135134
- [Monitor Azure Functions](https://docs.microsoft.com/azure/azure-functions/functions-monitoring)
136-
- [Work with Azure Functions Proxies](https://docs.microsoft.com/azure/azure-functions/functions-proxies)
137135

138136
>[!div class="step-by-step"]
139137
>[Previous](logic-apps.md)

docs/architecture/serverless/index.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@ title: "Serverless apps: Architecture, patterns, and Azure implementation"
33
description: Guide to serverless architecture. Learn when, why, and how to implement a serverless architecture (as opposed to Infrastructure as a Service [IaaS] or Platform as a Service [PaaS]) for your enterprise applications.
44
author: JEREMYLIKNESS
55
ms.author: jeliknes
6-
ms.date: 06/26/2018
6+
ms.date: 04/22/2020
77
---
88

99
# Serverless apps: Architecture, patterns, and Azure implementation
1010

11-
![Screenshot that shows the Serverless Apps e-book cover.](./media/index/serverless-apps-cover.jpg)
11+
![Screenshot that shows the Serverless Apps e-book cover.](./media/index/serverless-apps-cover-v3.png)
1212

13-
> DOWNLOAD available at: <https://aka.ms/serverless-ebook>
13+
**EDITION v3.0** - Updated to Azure Functions v3
14+
15+
> DOWNLOAD available at: <https://aka.ms/serverlessbookpdf>
1416
1517
PUBLISHED BY
1618

@@ -22,7 +24,7 @@ One Microsoft Way
2224

2325
Redmond, Washington 98052-6399
2426

25-
Copyright © 2018 by Microsoft Corporation
27+
Copyright &copy; 2018-2020 by Microsoft Corporation
2628

2729
All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher.
2830

@@ -38,7 +40,7 @@ All other marks and logos are property of their respective owners.
3840

3941
Author:
4042

41-
> **[Jeremy Likness](https://twitter.com/jeremylikness)**, Senior Cloud Advocate, Microsoft Corp.
43+
> **[Jeremy Likness](https://twitter.com/jeremylikness)**, Senior .NET Data Program Manager, Microsoft Corp.
4244
4345
Contributor:
4446

@@ -92,7 +94,7 @@ IaaS still requires heavy overhead because operations is still responsible for v
9294
- Keeping the operating system up-to-date.
9395
- Monitoring the application.
9496

95-
The next evolution reduced the overhead by providing Platform as a Service (PaaS). With PaaS, the cloud provider handles operating systems, security patches, and even the required packages to support a specific platform. Instead of building a VM then configuring the .NET Framework and standing up Internet Information Services (IIS) servers, developers simply choose a "platform target" such as "web application" or "API endpoint" and deploy code directly. The infrastructure questions are reduced to:
97+
The next evolution reduced the overhead by providing Platform as a Service (PaaS). With PaaS, the cloud provider handles operating systems, security patches, and even the required packages to support a specific platform. Instead of building a VM then configuring .NET and standing up Internet Information Services (IIS) servers, developers simply choose a "platform target" such as "web application" or "API endpoint" and deploy code directly. The infrastructure questions are reduced to:
9698

9799
- What size services are needed?
98100
- How do the services scale out (add more servers or nodes)?
76 KB
Loading

docs/architecture/serverless/serverless-architecture-considerations.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Serverless architecture considerations - Serverless apps
33
description: Understand the challenges of architecting serverless applications, from state management and persistent storage to scale, logging, tracing and diagnostics.
44
author: JEREMYLIKNESS
55
ms.author: jeliknes
6-
ms.date: 06/26/2018
6+
ms.date: 04/06/2020
77
---
88
# Serverless architecture considerations
99

@@ -17,7 +17,7 @@ There are several solutions to adopt state without compromising the benefits of
1717

1818
- Use a temporary data store or distributed cache, like Redis
1919
- Store state in a database, like SQL or CosmosDB
20-
- Handle state through a workflow engine like durable functions
20+
- Handle state through a workflow engine like [durable functions](https://docs.microsoft.com/azure/azure-functions/durable/durable-functions-overview)
2121

2222
The bottom line is that you should be aware of the need for any state management within processes you're considering to implement with serverless.
2323

@@ -73,7 +73,7 @@ For more information, see [Implementing the Circuit Breaker pattern](../microser
7373

7474
## Versioning and green/blue deployments
7575

76-
A major benefit of serverless is the ability to upgrade a specific function without having to redeploy the entire application. For upgrades to be successful, functions must be versioned so that services calling them are routed to the correct version of code. A strategy for deploying new versions is also important. A common approach is to use "green/blue deployments." The green deployment is the current function. A new "blue" version is deployed to production and tested. When testing passes, the green and blue versions are swapped so the new version comes live. If any issues are encountered, they can be swapped back. Supporting versioning and green/blue deployments requires a combination of authoring the functions to accommodate version changes and working with the serverless platform to handle deployments. One possible approach is to use proxies, which are described in the [Azure serverless platform](azure-functions.md#proxies) chapter.
76+
A major benefit of serverless is the ability to upgrade a specific function without having to redeploy the entire application. For upgrades to be successful, functions must be versioned so that services calling them are routed to the correct version of code. A strategy for deploying new versions is also important. A common approach is to use "green/blue deployments." The green deployment is the current function. A new "blue" version is deployed to production and tested. When testing passes, the green and blue versions are swapped so the new version comes live. If any issues are encountered, they can be swapped back. Supporting versioning and green/blue deployments requires a combination of authoring the functions to accommodate version changes and working with the serverless platform to handle deployments.
7777

7878
>[!div class="step-by-step"]
7979
>[Previous](serverless-architecture.md)

0 commit comments

Comments
 (0)