Skip to content

Commit 9c13674

Browse files
committed
Fix build issues, rename a few things and general clean up
1 parent 1492840 commit 9c13674

File tree

82 files changed

+87
-125
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+87
-125
lines changed

docfx.json

-4
Original file line numberDiff line numberDiff line change
@@ -312,8 +312,6 @@
312312
"docs/azure/**/*.*": "alexwolfmsft",
313313
"docs/orleans/**/*.*": "IEvangelist",
314314
"docs/architecture/**/**.md": "jamesmontemagno",
315-
"docs/architecture/grpc-for-wcf-developers/**/**.md": "JamesNK",
316-
"docs/architecture/modernize-desktop/**/**.md": "OliaG",
317315
"docs/core/**/**.md": "gewarren",
318316
"docs/core/compatibility/**/**.md": "gewarren",
319317
"docs/core/deploying/**/**.md": "adegeo",
@@ -401,8 +399,6 @@
401399
"_vblang/spec/*.md": "wiwagn",
402400
"docs/ai/**/*.*": "alexwolf",
403401
"docs/architecture/**/**.md": "jamont",
404-
"docs/architecture/grpc-for-wcf-developers/**/**.md": "jamesnk",
405-
"docs/architecture/modernize-desktop/**/**.md": "oliag",
406402
"docs/azure/**/*.*": "alexwolf",
407403
"docs/orleans/**/*.*": "dapine",
408404
"docs/core/**/**.md": "dotnetcontent",

docs/architecture/distributed-cloud-native-apps-containers/api-gateways/gateway-patterns.md

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
---
22
title: Gateway patterns
33
description: Architecture for Distributed Cloud-Native Apps with .NET Aspire & Containers | Gateway patterns
4-
author:
54
ms.date: 04/25/2024
65
---
76

docs/architecture/distributed-cloud-native-apps-containers/architecting-distributed-cloud-native-applications/different-distributed-architectures.md

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
---
22
title: Different ways to architect distributed applications
33
description: Architecture for Distributed Cloud-Native Apps with .NET Aspire & Containers | Different ways to architect distributed applications
4-
author:
54
ms.date: 04/06/2022
65
---
76

docs/architecture/distributed-cloud-native-apps-containers/architecting-distributed-cloud-native-applications/why-choose-distributed-architecture.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
---
22
title: Architecting distributed cloud-native applications
33
description: Architecture for Distributed Cloud-Native Apps with .NET Aspire & Containers | Architecting distributed cloud-native applications
4-
author:
54
ms.date: 04/06/2022
65
---
76

@@ -32,5 +31,5 @@ Every application has its own unique requirements, but there are some common pat
3231
In the rest of this book we'll be focusing specifically on how to design and build distributed cloud-native applications using a microservices based architecture. You'll see how the features built into .NET are designed to help you build and deploy microservices, and how to use containers to package and deploy your services successfully.
3332

3433
>[!div class="step-by-step"]
35-
>[Previous](../introduction-dot-net-aspire/observability-and-dashboard.md)
34+
>[Previous](../introduction-dotnet-aspire/observability-and-dashboard.md)
3635
>[Next](different-distributed-architectures.md)

docs/architecture/distributed-cloud-native-apps-containers/cloud-native-identity/azure-entra.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Microsoft Entra ID also helps customers access internal resources such as apps o
1414

1515
## References
1616

17-
- [What is Microsoft Entra ID?](https://learn.microsoft.com/en-us/entra/fundamentals/whatis)
17+
- [What is Microsoft Entra ID?](/entra/fundamentals/whatis)
1818

1919
>[!div class="step-by-step"]
2020
>[Previous](authentication-authorization.md)

docs/architecture/distributed-cloud-native-apps-containers/cloud-native-identity/azure-security.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ No matter if the advantages outweigh the disadvantages of cloud-native applicati
2121
- Who should have access to this data?
2222
- Are there auditing policies in place around the development and release process?
2323

24-
All these questions are part of a process called [Introduction to threat modeling](https://learn.microsoft.com/training/modules/tm-introduction-to-threat-modeling/). This process tries to answer the question of what threats there are to the system, how likely the threats are, and the potential damage from them.
24+
All these questions are part of a process called [Introduction to threat modeling](/training/modules/tm-introduction-to-threat-modeling/). This process tries to answer the question of what threats there are to the system, how likely the threats are, and the potential damage from them.
2525

2626
Once the list of threats has been established, you need to decide whether they're worth mitigating. Sometimes a threat is so unlikely and expensive to plan for that it isn't worth spending energy on it. For instance, some state level actor could inject changes into the design of a process that is used by millions of devices. Now, instead of running a certain piece of code in [Ring 3](https://en.wikipedia.org/wiki/Protection_ring), that code is run in Ring 0. This process allows an exploit that can bypass the hypervisor and run the attack code on the bare metal machines, allowing attacks on all the virtual machines that are running on that hardware.
2727

@@ -63,7 +63,7 @@ This scenario is a perfect example of a seemingly low-value target that can be u
6363

6464
.NET Framework is designed to be secure. It avoids some of the pitfalls of unmanaged code, such as walking off the ends of arrays. Work is actively done to fix security holes as they're discovered. There's even a [bug bounty program](https://www.microsoft.com/msrc/bounty) that pays researchers to find issues in the framework and report them instead of exploiting them.
6565

66-
There are many ways to make .NET code more secure. Following guidelines such as the [Secure coding guidelines for .NET](https://learn.microsoft.com/dotnet/standard/security/secure-coding-guidelines) article is a reasonable step to take to ensure that the code is secure from the ground up. The [OWASP top 10](https://owasp.org/www-project-top-ten/) is another invaluable guide to build secure code.
66+
There are many ways to make .NET code more secure. Following guidelines such as the [Secure coding guidelines for .NET](/dotnet/standard/security/secure-coding-guidelines) article is a reasonable step to take to ensure that the code is secure from the ground up. The [OWASP top 10](https://owasp.org/www-project-top-ten/) is another invaluable guide to build secure code.
6767

6868
The build process is a good place to put scanning tools to detect problems in source code before they make it into production. Every project has dependencies on some other packages. A tool that can scan for outdated packages will catch problems in a nightly build. Even when building Docker images, it's useful to check and make sure that the base image doesn't have known vulnerabilities. Another thing to check is that nobody has accidentally checked in credentials.
6969

@@ -91,11 +91,11 @@ With the network established, internal resources like storage accounts can be se
9191

9292
The nodes in an Azure Kubernetes cluster can participate in a virtual network just like other resources that are more native to Azure. This functionality is called [Azure Container Networking Interface](https://github.com/Azure/azure-container-networking/blob/master/docs/cni.md). In effect, it allocates a subnet within the virtual network on which virtual machines and container images are allocated.
9393

94-
Continuing down the path of illustrating the principle of least privilege, not every resource within a virtual network needs to talk to every other resource. For instance, in an application that provides a web API over a storage account and a SQL database, it's unlikely that the database and the storage account need to talk to one another. Any data sharing between them would go through the web application. So, a [network security group (NSG)](https://learn.microsoft.com/azure/virtual-network/network-security-groups-overview) could be used to deny traffic between the two services.
94+
Continuing down the path of illustrating the principle of least privilege, not every resource within a virtual network needs to talk to every other resource. For instance, in an application that provides a web API over a storage account and a SQL database, it's unlikely that the database and the storage account need to talk to one another. Any data sharing between them would go through the web application. So, a [network security group (NSG)](/azure/virtual-network/network-security-groups-overview) could be used to deny traffic between the two services.
9595

96-
A policy of denying communication between resources can be annoying to implement, especially coming from a background of using Azure without traffic restrictions. On some other clouds, the concept of network security groups is much more prevalent. For instance, the default policy on AWS is that resources can't communicate among themselves until enabled by rules in an NSG. While slower to develop this, a more restrictive environment provides a more secure default. Making use of proper DevOps practices, especially using [Bicep or Terraform](https://learn.microsoft.com/azure/cloud-adoption-framework/ready/considerations/infrastructure-as-code) to manage permissions can make controlling the rules easier.
96+
A policy of denying communication between resources can be annoying to implement, especially coming from a background of using Azure without traffic restrictions. On some other clouds, the concept of network security groups is much more prevalent. For instance, the default policy on AWS is that resources can't communicate among themselves until enabled by rules in an NSG. While slower to develop this, a more restrictive environment provides a more secure default. Making use of proper DevOps practices, especially using [Bicep or Terraform](/azure/cloud-adoption-framework/ready/considerations/infrastructure-as-code) to manage permissions can make controlling the rules easier.
9797

98-
Virtual networks can also be useful when setting up communication between on-premises and cloud resources. A virtual private network can be used to attach the two networks together seamlessly. This approach allows running a virtual network without any sort of gateway for scenarios where all the users are on-site. There are a number of technologies that can be used to establish this network. The simplest is to use a [site-to-site VPN](https://learn.microsoft.com/azure/vpn-gateway/tutorial-site-to-site-portal) that can be established between many routers and Azure. Traffic is encrypted and tunneled over the Internet at the same cost per byte as any other traffic. For scenarios where more bandwidth or more security is desirable, Azure offers a service called [Express Route](https://learn.microsoft.com/azure/expressroute/expressroute-introduction) that uses a private circuit between an on-premises network and Azure. It's more costly and difficult to establish but also more secure.
98+
Virtual networks can also be useful when setting up communication between on-premises and cloud resources. A virtual private network can be used to attach the two networks together seamlessly. This approach allows running a virtual network without any sort of gateway for scenarios where all the users are on-site. There are a number of technologies that can be used to establish this network. The simplest is to use a [site-to-site VPN](/azure/vpn-gateway/tutorial-site-to-site-portal) that can be established between many routers and Azure. Traffic is encrypted and tunneled over the Internet at the same cost per byte as any other traffic. For scenarios where more bandwidth or more security is desirable, Azure offers a service called [Express Route](/azure/expressroute/expressroute-introduction) that uses a private circuit between an on-premises network and Azure. It's more costly and difficult to establish but also more secure.
9999

100100
## Role-Based Access Control (RBAC) for restricting access to Azure resources
101101

@@ -126,7 +126,7 @@ A security principal can take on many roles or, using a more sartorial analogy,
126126

127127
Built into Azure are also a number of high-level roles such as **Owner**, **Contributor**, **Reader**, and **User Account Administrator**. With the Owner role, a security principal can access all resources and assign permissions to others. A Contributor has the same level of access to all resources but they can't assign permissions. A Reader can only view existing Azure resources and a User Account Administrator can manage access to Azure resources.
128128

129-
More granular built-in roles such as [DNS Zone Contributor](https://learn.microsoft.com/azure/dns/dns-protect-zones-recordsets#azure-role-based-access-control) have rights limited to a single service. Security principals can take on any number of roles.
129+
More granular built-in roles such as [DNS Zone Contributor](/azure/dns/dns-protect-zones-recordsets#azure-role-based-access-control) have rights limited to a single service. Security principals can take on any number of roles.
130130

131131
### Scopes
132132

@@ -234,15 +234,15 @@ In any application, there are a number of places where data rests on the disk. T
234234

235235
The underpinning of much of Azure is the Azure Storage engine. Virtual machine disks are mounted on top of Azure Storage. Azure Kubernetes Service runs on virtual machines that, themselves, are hosted on Azure Storage. Even serverless technologies, such as Azure Functions Apps and Azure Container Instances, run off a disk that is part of Azure Storage.
236236

237-
If Azure Storage is well encrypted, then it provides a foundation for everything else to also be encrypted. Azure Storage [is encrypted](https://learn.microsoft.com/azure/storage/common/storage-service-encryption) with [FIPS 140-2](https://en.wikipedia.org/wiki/FIPS_140) compliant [256-bit AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard). This is a well-regarded encryption technology, having been the subject of extensive academic scrutiny over the last 20 or so years. At present, there's no known practical attack that would allow someone without knowledge of the key to read data encrypted by AES.
237+
If Azure Storage is well encrypted, then it provides a foundation for everything else to also be encrypted. Azure Storage [is encrypted](/azure/storage/common/storage-service-encryption) with [FIPS 140-2](https://en.wikipedia.org/wiki/FIPS_140) compliant [256-bit AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard). This is a well-regarded encryption technology, having been the subject of extensive academic scrutiny over the last 20 or so years. At present, there's no known practical attack that would allow someone without knowledge of the key to read data encrypted by AES.
238238

239-
By default, the keys used for encrypting Azure Storage are managed by Microsoft. There are extensive protections in place to prevent malicious access to these keys. However, users with particular encryption requirements can also [provide their own storage keys](https://learn.microsoft.com/azure/storage/common/customer-managed-keys-overview) that are managed in Azure Key Vault. These keys can be revoked at any time, which would effectively render the contents of the Storage account inaccessible.
239+
By default, the keys used for encrypting Azure Storage are managed by Microsoft. There are extensive protections in place to prevent malicious access to these keys. However, users with particular encryption requirements can also [provide their own storage keys](/azure/storage/common/customer-managed-keys-overview) that are managed in Azure Key Vault. These keys can be revoked at any time, which would effectively render the contents of the Storage account inaccessible.
240240

241241
Virtual machines use encrypted storage, but it's possible to provide another layer of encryption by using technologies like BitLocker on Windows or DM-Crypt on Linux. These technologies mean that even if the disk image was leaked, it would remain nearly impossible to read it.
242242

243243
### Azure SQL
244244

245-
Databases hosted on Azure SQL use a technology called [Transparent Data Encryption (TDE)](https://learn.microsoft.com/sql/relational-databases/security/encryption/transparent-data-encryption) to ensure data remains encrypted. It's enabled by default on all newly created SQL databases, but must be enabled manually for legacy databases. TDE executes real-time encryption and decryption of not just the database, but also the backups and transaction logs.
245+
Databases hosted on Azure SQL use a technology called [Transparent Data Encryption (TDE)](/sql/relational-databases/security/encryption/transparent-data-encryption) to ensure data remains encrypted. It's enabled by default on all newly created SQL databases, but must be enabled manually for legacy databases. TDE executes real-time encryption and decryption of not just the database, but also the backups and transaction logs.
246246

247247
The encryption parameters are stored in the `master` database and, on startup, are read into memory for the remaining operations. This means that the `master` database must remain unencrypted. The actual key is managed by Microsoft. However, users with exacting security requirements may provide their own key in Key Vault in much the same way as is done for Azure Storage. The Key Vault provides for such services as key rotation and revocation.
248248

docs/architecture/distributed-cloud-native-apps-containers/cloud-native-identity/identity-server.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ Many cloud-native applications use server-side APIs and rich client single page
102102
## References
103103

104104
- [IdentityServer documentation](https://docs.duendesoftware.com/identityserver/v7/)
105-
- [Application types](https://learn.microsoft.com/en-gb/entra/identity-platform/v2-app-types)
105+
- [Application types](/en-gb/entra/identity-platform/v2-app-types)
106106
- [JavaScript OIDC client](https://docs.duendesoftware.com/identityserver/v7/quickstarts/js_clients/)
107107

108108
>[!div class="step-by-step"]

docs/architecture/distributed-cloud-native-apps-containers/cloud-native-identity/identity.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Typically, the STS is only responsible for authenticating the principal. Determi
2020

2121
## References
2222

23-
- [What is the Microsoft identity platform?](https://learn.microsoft.com/en-us/entra/identity-platform/v2-overview)
23+
- [What is the Microsoft identity platform?](/entra/identity-platform/v2-overview)
2424

2525
>[!div class="step-by-step"]
2626
>[Previous](cloud-native-security.md)

docs/architecture/distributed-cloud-native-apps-containers/cloud-native-resiliency/application-resiliency-patterns.md

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
---
22
title: Application resiliency patterns
33
description: Architecture for Distributed Cloud-Native Apps with .NET Aspire & Containers | Application resiliency patterns
4-
author:
54
ms.date: 04/17/2024
65
---
76

docs/architecture/distributed-cloud-native-apps-containers/cloud-native-resiliency/cloud-infrastructure-resiliency-azure.md

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
---
22
title: Cloud infrastructure resiliency with Azure
33
description: Architecture for Distributed Cloud-Native Apps with .NET Aspire & Containers | Cloud infrastructure resiliency with Azure
4-
author:
54
ms.date: 04/06/2022
65
---
76

docs/architecture/distributed-cloud-native-apps-containers/cloud-native-resiliency/cloud-native-resiliency.md

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
---
22
title: Cloud-native resiliency
33
description: Architecture for Distributed Cloud-Native Apps with .NET Aspire & Containers | Cloud-native resiliency
4-
author:
5-
ms.date: 17/04/2024
4+
ms.date: 09/30/2024
65
---
76

87
[!INCLUDE [download-alert](../includes/download-alert.md)]
98

10-
Your cloud-native applications must embrace the partial failures that will inevitably occur. You apps should continue working when limited failures occur and recover quickly from more serious events. In cloud-native applications, where there are multiple microservices and backing services running in different containers and potentially in different locations, failures can be more common, even if you're using platforms with robust Service Level Aggreements (SLAs).
9+
Your cloud-native applications must embrace the partial failures that will inevitably occur. You apps should continue working when limited failures occur and recover quickly from more serious events. In cloud-native applications, where there are multiple microservices and backing services running in different containers and potentially in different locations, failures can be more common, even if you're using platforms with robust Service Level Agreements (SLAs).
1110

1211
Resiliency is the ability of your system to react to failure and still remain functional. It's not about avoiding failure, but accepting failure and constructing your cloud-native services to recover from them. You want to return to a fully functioning state as quickly as possible.
1312

@@ -38,5 +37,5 @@ Cloud platforms can detect and mitigate many of these infrastructure issues. The
3837
In the following sections, we'll explore defensive techniques that your service and managed cloud resources can use to minimize downtime and disruption caused by these challenges.
3938

4039
>[!div class="step-by-step"]
41-
>[Previous](../chpt8-data-patterns/distributed-data.md)
40+
>[Previous](../data-patterns/distributed-data.md)
4241
>[Next](application-resiliency-patterns.md)

0 commit comments

Comments
 (0)