Coder Social home page Coder Social logo

microsoft / mcw-modern-cloud-apps Goto Github PK

View Code? Open in Web Editor NEW
110.0 69.0 139.0 412.88 MB

MCW Modern cloud apps

License: MIT License

PowerShell 0.16% C# 11.54% CSS 34.05% HTML 5.97% JavaScript 48.28%
mcw azure app-service vsts aad app-insights pci-dss sql-database data-factory sql-data-warehouse

mcw-modern-cloud-apps's Introduction

Modern cloud apps

This workshop is archived and no longer being maintained. Content is read-only.

The Contoso Sports League Association (CSLA) is one of the largest sports franchises and is struggling to keep up with demand from their growing user base. They currently host an e-commerce website and have a backend website that supports their call center, allowing employees to view order information.

CSLA would like to modernize their websites and move to the cloud, ultimately moving away from managing infrastructure. They are interested in whether Platform-as-a-Service (PaaS) will meet their needs so they can completely remove the infrastructure management overhead. However, they are concerned about securing their websites and data to meet the stringent PCI (Payment Card Industry) compliance requirements.

December 2021

Target audience

Application developers

Abstracts

Workshop

In this workshop, you will work as a group to implement an end-to-end solution for e-commerce that is based on Azure App Services, Azure Active Directory, and Azure DevOps. You will ensure the solution is PCI compliant, and appropriate security measures are put into place for both on-premises and public access scenarios.

At the end of this workshop, you will be better able to deploy and configure Azure Web Apps and associated services. In addition, you will learn to configure Web Apps for authentication with Azure AD, instrument and load-test the application with App Insights, and automate back-end services using Azure Functions and Logic Apps.

Whiteboard design session

In the whiteboard design session, you will work in groups to design a solution to modernize CSLA's e-commerce and back-end services while maintaining existing PCI compliance. To ensure compliance, you will ensure data privacy and protection across all aspects of the system, in transit and at rest. The goal is to use Azure PaaS services for the public-facing and back-end websites, while providing a way for the on-premises components to securely communicate with these services. You will also design fault-tolerance and a regional failover plan of the Azure components.

By the end of this whiteboard design session, you will have a better understanding of how to modernize a legacy web app by retargeting it for the cloud, taking advantage of the many services Azure provides to enhance functionality and secure your solution's components by following best practices for PCI compliance and security.

Hands-on Lab

In this hands-on lab, you will be challenged to implement an end-to-end scenario using a supplied sample that is based on Azure App Services, Microsoft Azure Functions, Azure SQL Database, Azure Logic Apps, and related services. The scenario will include implementing compute, storage, workflows, and monitoring, using various components of Microsoft Azure.

Please note that as opposed to the Whiteboard Design Session, the lab is not focused on maintaining PCI compliance and using more advanced security features such as App Service Environment, Network Security Groups, and Application Gateway. The hands-on lab can be implemented on your own, but it is highly recommended to pair up with other members at the lab to model a real-world experience and to allow each member to share their expertise for the overall solution.

By the end of this hands-on lab, you will have learned how to use several key services within Azure to improve overall functionality of the original solution, and to increase the security and scalability of the new and improved design.

Azure services and related products

  • Azure App Service (Web App, API App)
  • App Service Environment
  • Azure Functions
  • Application Gateway
  • Azure Traffic Manager
  • Azure Storage
  • Azure Storage Queues
  • Azure Data Factory
  • Azure SQL Database
  • Azure Active Directory
  • Azure Logic Apps
  • Azure DevOps
  • Azure Application Insights
  • Visual Studio 2019 Community Edition or later
  • Twilio (third-party service to send SMS messages)
  • GitHub

Azure solutions

App Modernization

Related references

Help & Support

We welcome feedback and comments from Microsoft SMEs & learning partners who deliver MCWs.

Having trouble?

  • First, verify you have followed all written lab instructions (including the Before the Hands-on lab document).
  • Next, submit an issue with a detailed description of the problem.
  • Do not submit pull requests. Our content authors will make all changes and submit pull requests for approval.

If you are planning to present a workshop, review and test the materials early! We recommend at least two weeks prior.

Please allow 5 - 10 business days for review and resolution of issues.

mcw-modern-cloud-apps's People

Contributors

codingbandit avatar crpietschmann avatar daronyondem avatar dawnmariedesjardins avatar deltadan avatar iizotov avatar infosatheesh2020 avatar joelhulen avatar kylebunting avatar microsoftopensource avatar msftgits avatar mwasham avatar saimachi avatar soupman98 avatar timahenning avatar waltermyersiii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mcw-modern-cloud-apps's Issues

HOL unguided

Task 6, Step 11 - please verify code - I'm seeing instructions, then an empty grey box, then:
// App_Start\Startup.Auth.cs using System; using Owin; using Microsoft.Owin.Security; using Microsoft.Owin.Security.Cookies; using Microsoft.Owin.Security.OpenIdConnect; using System.Threading.Tasks; using Microsoft.Owin.Security.Notifications; using Microsoft.IdentityModel.Protocols;

Is that thread supposed to be inside the box?

Issue while doing tasks related to Azure functions.

While doing > Exercise 5: Automating backend processes with Azure Functions and Logic Apps > Task 1 > step 10

Expand the Log pane on the bottom.

Note: You should see several messages about downloading dependent assemblies such as the Azure SDK and iText Sharp that were defined in the project.json file.

Instead of the downloading messages I am getting the following error :

2019-01-03T09:26:30 Welcome, you are now connected to log-streaming service.
2019-01-03T09:27:27.371 [Information] Script for function 'ContosoMakePDF' changed. Reloading.
2019-01-03T09:27:27.581 [Warning] warning CS1702: Assuming assembly reference 'Microsoft.Extensions.Primitives, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' used by 'Microsoft.AspNetCore.Http.Features' matches identity 'Microsoft.Extensions.Primitives, Version=2.1.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' of 'Microsoft.Extensions.Primitives', you may need to supply runtime policy
2019-01-03T09:27:27.593 [Warning] run.csx(12,19): warning CS1702: Assuming assembly reference 'Microsoft.Extensions.Primitives, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' used by 'Microsoft.AspNetCore.Http.Features' matches identity 'Microsoft.Extensions.Primitives, Version=2.1.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' of 'Microsoft.Extensions.Primitives', you may need to supply runtime policy
2019-01-03T09:27:27.594 [Information] Compilation succeeded.
2019-01-03T09:28:18.303 [Information] Script for function 'ContosoMakePDF' changed. Reloading.
2019-01-03T09:28:19.206 [Error] D:\home\site\wwwroot\ContosoMakePDF\CreatePdfReport.csx(1,7): error CS1504: Source file 'ViewModels.csx' could not be opened -- Could not find file.
2019-01-03T09:28:19.329 [Error] run.csx(1,7): error CS1504: Source file 'StorageMethods.csx' could not be opened -- Could not find file.
2019-01-03T09:28:19.519 [Error] run.csx(2,7): error CS1504: Source file 'ViewModels.csx' could not be opened -- Could not find file.
2019-01-03T09:28:19.532 [Information] Script for function 'ContosoMakePDF' changed. Reloading.
2019-01-03T09:28:19.713 [Error] D:\home\site\wwwroot\ContosoMakePDF\CreatePdfReport.csx(5,7): error CS0246: The type or namespace name 'iTextSharp' could not be found (are you missing a using directive or an assembly reference?)
2019-01-03T09:28:19.907 [Error] D:\home\site\wwwroot\ContosoMakePDF\CreatePdfReport.csx(6,7): error CS0246: The type or namespace name 'iTextSharp' could not be found (are you missing a using directive or an assembly reference?)
2019-01-03T09:28:20.108 [Information] Script for function 'ContosoMakePDF' changed. Reloading.
2019-01-03T09:28:20.260 [Error] D:\home\site\wwwroot\ContosoMakePDF\CreatePdfReport.csx(7,7): error CS0246: The type or namespace name 'PdfRpt' could not be found (are you missing a using directive or an assembly reference?)
2019-01-03T09:28:20.365 [Error] D:\home\site\wwwroot\ContosoMakePDF\CreatePdfReport.csx(1,7): error CS1504: Source file 'ViewModels.csx' could not be opened -- Could not find file.
2019-01-03T09:28:20.551 [Error] D:\home\site\wwwroot\ContosoMakePDF\StorageMethods.csx(9,17): error CS0234: The type or namespace name 'WindowsAzure' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
2019-01-03T09:28:20.613 [Error] run.csx(2,7): error CS1504: Source file 'ViewModels.csx' could not be opened -- Could not find file.
2019-01-03T09:28:20.681 [Error] D:\home\site\wwwroot\ContosoMakePDF\StorageMethods.csx(9,17): error CS0234: The type or namespace name 'WindowsAzure' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
2019-01-03T09:28:20.748 [Error] D:\home\site\wwwroot\ContosoMakePDF\StorageMethods.csx(10,17): error CS0234: The type or namespace name 'WindowsAzure' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
2019-01-03T09:28:20.827 [Error] D:\home\site\wwwroot\ContosoMakePDF\StorageMethods.csx(10,17): error CS0234: The type or namespace name 'WindowsAzure' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
2019-01-03T09:28:20.918 [Error] D:\home\site\wwwroot\ContosoMakePDF\CreatePdfReport.csx(8,7): error CS0246: The type or namespace name 'PdfRpt' could not be found (are you missing a using directive or an assembly reference?)
2019-01-03T09:28:20.919 [Error] D:\home\site\wwwroot\ContosoMakePDF\StorageMethods.csx(11,17): error CS0234: The type or namespace name 'WindowsAzure' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
2019-01-03T09:28:20.994 [Error] D:\home\site\wwwroot\ContosoMakePDF\CreatePdfReport.csx(9,7): error CS0246: The type or namespace name 'PdfRpt' could not be found (are you missing a using directive or an assembly reference?)
2019-01-03T09:28:21.081 [Error] D:\home\site\wwwroot\ContosoMakePDF\StorageMethods.csx(11,17): error CS0234: The type or namespace name 'WindowsAzure' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
2019-01-03T09:28:21.226 [Error] D:\home\site\wwwroot\ContosoMakePDF\StorageMethods.csx(12,17): error CS0234: The type or namespace name 'WindowsAzure' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
2019-01-03T09:28:21.318 [Error] D:\home\site\wwwroot\ContosoMakePDF\CreatePdfReport.csx(18,38): error CS0246: The type or namespace name 'OrderViewModel' could not be found (are you missing a using directive or an assembly reference?)
2019-01-03T09:28:21.318 [Error] D:\home\site\wwwroot\ContosoMakePDF\StorageMethods.csx(13,17): error CS0234: The type or namespace name 'WindowsAzure' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
2019-01-03T09:28:21.365 [Warning] D:\home\site\wwwroot\ContosoMakePDF\CreatePdfReport.csx(18,77): warning CS0618: 'TraceWriter' is obsolete: 'Will be removed in an upcoming version. Use Microsoft.Extensions.Logging.ILogger instead.'
2019-01-03T09:28:21.365 [Warning] run.csx(11,62): warning CS0618: 'TraceWriter' is obsolete: 'Will be removed in an upcoming version. Use Microsoft.Extensions.Logging.ILogger instead.'
2019-01-03T09:28:21.447 [Error] run.csx(48,36): error CS0246: The type or namespace name 'OrderViewModel' could not be found (are you missing a using directive or an assembly reference?)
2019-01-03T09:28:21.448 [Error] D:\home\site\wwwroot\ContosoMakePDF\CreatePdfReport.csx(5,7): error CS0246: The type or namespace name 'iTextSharp' could not be found (are you missing a using directive or an assembly reference?)
2019-01-03T09:28:21.473 [Warning] run.csx(48,58): warning CS0618: 'TraceWriter' is obsolete: 'Will be removed in an upcoming version. Use Microsoft.Extensions.Logging.ILogger instead.'
2019-01-03T09:28:21.501 [Error] run.csx(48,8): error CS0246: The type or namespace name 'OrderViewModel' could not be found (are you missing a using directive or an assembly reference?)
2019-01-03T09:28:21.560 [Error] D:\home\site\wwwroot\ContosoMakePDF\CreatePdfReport.csx(20,29): error CS0246: The type or namespace name 'PdfReport' could not be found (are you missing a using directive or an assembly reference?)
2019-01-03T09:28:21.666 [Error] D:\home\site\wwwroot\ContosoMakePDF\CreatePdfReport.csx(6,7): error CS0246: The type or namespace name 'iTextSharp' could not be found (are you missing a using directive or an assembly reference?)
2019-01-03T09:29:30 No new trace in the past 1 min(s).

Can somebody have a look on this?

No Data in Database. No Products. Connection String good.

When I complete the steps, there is no data in the Database. So no products. I have verified the connection strings with App Service Diagnostics. I know its right. I tried twice and got same result both times. Is there supposed to be a load script of some sort?

WDS - student guide

Under design a proof of concept
Access control is listed, with one question, under Geo-resiliency. It's listed again, with 2 questions, under Data warehouse. That last section is not answered in the trainer guide.

WDS trainer guide

Enabling PCE compliance section -
Student guide has question 1, a., then bullets. Answer portion of the trainer guide has 1, then a sentence, then a - e.
Trainer guide then answers a question 2 that is not in the student guide

Change from Storage Queues to use Service Bus instead

Change from using Storage Queues to using Service Bus or Event Grid for the messaging that kicks off the Logic App and Azure Function for a more modern Event Driven Serverless architecture. Ideally Event Grid would be best for the modern serverless approach. However, to be more of an "enterprise" solution the use of Service Bus could be done as well.

Before making the change, please assess which is the most appropriate for the scope and lab time.

async issue with Edit in CartController

The Edit method (HttpPost version) in the CartController (project Contoso.Apps.SportsLeague misses an await on _db.SaveChangesAsync. This leads to rollbacks because the context is disposed before the method is completed.

The await keyword should be added (the method is already in async scope).

CartController.cs:
await _db.SaveChangesAsync();

MCW folder not present when initally logged into VM

Hi - using this workshop as part of a customer lab. One of the attendees created the VM and did not see the MCW folder after logging into the VM. It took less than 5 minutes but the folder showed up on the c:\drive. Is this expected behavior?
Great lab by the way!
Thanks!

With the next update it's probably a good idea to change the initialization of the database to use the EF Core seeding feature (HasData on configuring of the model in the context-class) instead of the current implementation.

With the next update it's probably a good idea to change the initialization of the database to use the EF Core seeding feature (HasData on configuring of the model in the context-class) instead of the current implementation.

Originally posted by @christiannagel in #47 (comment)

Azure AD B2C Exercise 3

Exercise 3 has some issues.

Task 5

Task 5 mentions to add UseAuthorization. However, this API call is already in the source code. Instead, UseAuthentication needs to be added.

In the ConfigureServices method, the information to add AddAuthentication is missing. I was successful in adding this (this is the same code as generated from the default template when selecting Azure AD B2C for identity).

            services.AddAuthentication(AzureADB2CDefaults.AuthenticationScheme)
                .AddAzureADB2C(options => Configuration.Bind("AzureAdB2C", options));

Task 6

The image to add a controller is from the .NET Framework version. This should be changed to the ASP.NET Core version.

In the AccountController, instead of using HttpContext.Challenge, the Challenge method of the base class can be used.

Task 7

With ASP.NET Core, ClaimsPrincipal.Current returns null, as documented here:

https://docs.microsoft.com/en-us/aspnet/core/migration/claimsprincipal-current?view=aspnetcore-3.1

I've changed the Claims method in the HomeController:

        [Authorize]
        public ActionResult Claims()
        {
            var displayName = User.Identity.Name;
            ViewBag.DisplayName = displayName;
            ViewBag.Claims = User.Claims;
            return View();
        }

The code for the view also needs to be changed:

    @foreach (Claim claim in ViewBag.Claims)
    {
        <tr>
            <td class="claim-type claim-data">@claim.Type</td>
            <td class="claim-data">@claim.Value</td>
        </tr>
    }

March 2020 Updates

Here's a list of updates I propose to make to the Modern cloud apps MCW for the March 2020 update:

Update in Progress: This update is currently being worked on, and this Issue will be updates with status of changes that have been made in the Update-March-2020 branch

  • Update the apps to .NET Core 3.1 LTS (Issue #50)
    • The apps have been updated to .NET Core 3.1, with the Azure Function updated to v3
  • Change to use SQL Database Failover Groups (Issue #44)
    • Also removed failing back, as that's a bit redundant and time consuming that isn't necessary in the lab.
  • Update to use Service Bus Queues for the messaging (#42)
  • Update Azure AD B2C with updates mentioned in Issue #54

Didn't get to these as there didn't end up being enough time to work on these. Mostly due to Auth issues with Azure AD B2C integration:

  • Move connection strings and keys to be stored in Key Vault (#43)
  • Update data initialization to use EF Core seeding feature (#52)

Change to use SQL Database auto-failover groups

For Exercise 1, Task 2:

  • Change this to use auto-failover groups. Failover using this is fast, so it can be tested within the time constraints of the lab.
  • Have users update the connection string of the e-commerce website to use the read-write listener endpoint of the failover group. (This would happen in Key Vault and provide a new version of the secret.)
    • Include ApplicationIntent=ReadOnly; at the end of the connection string, and point out the significance of this to users.
  • Failover the database and show that no app changes were required. This will allow the failover to happen without the need to update the connection string in the application.

For Exercise 1, Task 5 (Offers API):

  • Add a new read-only database connection string into Key Vault (ContosoSportsLeagueReadOnly) that references the read-only listener endpoint of the failover group.
  • Configure the Offers API to use the read-only listener endpoint of the failover group. This will demonstrate how read-only workloads can be pointed to a read-only secondary to lessen the impact of reading from the primary database.
  • Since the Offers API is using Swagger, perhaps add a few steps to have the users navigate to the Swagger UI, select the Offers endpoint and "Try it out."

Lab guide need to be updated.( Steps related to : Azure Functions and Application insight)

In Exercise 4 > Task 1 > Subtask 2 > Step 3

In the Azure portal, under the 'configure' menu, 'Getting started' option is not available

In Exercise 5 > Task 1 > Step 4

According to the lab guide, we should select 'Generic WebHook' option, which is not available in the Azure portal. The lab guide should get updated according to the latest Azure Portal updates.

Database initialization in Contoso.Apps.SportsLeague.Admin

In the Startup class of the project Contoso.Apps.SportsLeague.Admin, the ProductContext can be disposed before the Configure method is completed.
The Configure method is not awaited.

Options for a fix:

  • using Wait() like in the project Contoso.Apps.SportsLeague.Web
  • using await
  • injecting the ProductContext with the Configure method of the Startup class

HOL - unguided & step-by-step

Punctuation is inconsistent. MS Style guide states bulleted & numbered items do not have periods at the end of the sentence unless they have multiple sentences. Document goes back and forth, needs to be corrected please.
Example:
Task 1: Enable Azure AD Premium Trial
Tasks to complete

  • Enable Azure AD Premium on your existing Azure AD Tenant
    Exit criteria
  • The Azure AD Premium SKU should be enabled on your subscription.

Failed to publish the Contoso.Apps.SportsLeague.Admin

Exercise 1:- Task 3:- subtask 3 :- while publishing the Contoso.Apps.SportsLeague.Admin web application it is showing an error ... after updating the nuget package publishing of the application was successful but no content was there in webpage

WDS trainer presentation (PPT) & Preferred Solution (PPT)

Slide 15 - missing alt-text
Slide 16 - alt-text is on each individual image but reader doesn't know how to read. Image needs to be flat and alt-text updated
Slide 19 - same as above

All slides - please check all slides to make sure images are flat with alt-text. Example, slide 4 has one box for the full image with correct alt-text, but there is also a box for the Contoso logo and a box for the Azure web app icon that does not have alt-text. The accessibility checker is seeing all of those as missing alt-text. Screen shots need to be taken of the final image and the remaining boxes need to be removed.

WDS trainer guide

Offers service - asks 3 questions in student guide, answers 2 in solution section.

Add use of Key Vault for securing application secrets

Add the use of Key Vault for securing application secrets.

  • For all steps that require adding connection strings into App Service configuration settings, use Key Vault references. This should also be mentioned in the whiteboard design documents, as it allows secrets to be managed and provided to applications without developers ever needing to see or know the secrets.
  • Set up managed identities for each of the App Services and assign an access policy for each that allows Get on secrets.
  • Add the database connection string as a secret in Key Vault.
  • Add the queue connection string as a secret in Key Vault.

Exercise 1 - task 6 - subtask 2

I have run through all the content and deployed the applicable services. When I go to checkout (with default values) I get an checkout error "no valid combination of account information found"

Sept-2018-Test-Fix Ready for QA

The Sept-2018-Test-Fix is ready for QA. The compliance checks have run and they are passing. Please let me know if you need anything.

Dan.

Before the HOL document

Need to correct document name - Before the HOL - Modern cloud apps
Need to convert to most current template - add header, licensing info & TOC

Starter Solution is the finished solution

Starter project is incorrect. It is actually not the starter project but the finished project. It has code added in the exercises for Identity, existing publish profiles etc...

step-by-step HOL instructs to deploy app service instead of ASE

Although the HOL states that the solution has to be PCI compliant, the apps are asked to be deployed to App service, but not ASE. Either the deployment environment needs to be changed to ASE, or the reason for not using ASE in HOL, needs to be explained.

HOL - step-by-step incorrect numbering

Need to review & correct numbering inside lab steps please.

Exercise 1, task 1 - step 10 jumps to 15 next, moves to step 19, then jumps to 21

Subtask 3 - after step 7 has an image at the end of a text line, no hard return and I think it's missing a step number.

Exercise 2, Subtask 2, step 5 is showing the backslash - 5. Click Save. \ those need to be removed and replaced with a hard return please. The code may not show in HTML but it shows on GitHub and there will be people who look at the GitHub site.

Task 3, subtask 2 Create a new logic app, step 31 has }''' after it, then it jumps to step 33.

Also seeing some steps using a. b. c. as next steps, later in the document, they're round bullets at the same level. The level assignments need to be consistent throughout the documents.

Some of the Note: xxxx sections are in grey boxes, some just regular text. Documents need to be consistent.

November 2019 - Content update

This workshop is scheduled for a content update. Solliance, please review the workshop and provide your update suggestions for SME review here.

WDS - presenter presentation (PPT)

Slide 2 - Update abstract if needed with new abstract requirements.
Slide 5 - 1st bullet - need to spell out acronym the first time it's shown with the (OLTP) following please.
Slides 6 & 7 - Customer needs. Student guide lists 7 customer needs, PPT bullets 8, trainer notes list 10
Slide 9 - Missing alt-text
Slide 11 - Outcome says 10-minute chalk-talk format. Should be 15-minute (Old template??)
Slide 12 - Same as above

ReadMe page

ReadMe page needs to be updated from template and abstracts written/updated please.

HOL - unguided

Exercise 1, Task 1 Exit criteria reads
The web application should display in Microsoft Azure by navigating to its [web app name].azurewebsites.net URL.

Is there supposed to be something inside those brackets?

Before the HOL doc

Under Requirements...2nd bullet reads:

  • Azure subscription
  • Local machine or Azure LABVM virtual machine configured with: ???
  • Visual Studio 2017 Community Edition

Q4 - Content Update request

Field request - content update request for Q4 update:

WDS trainer guide - Modern cloud apps
I see that you have Traffic Manager doing the load balancing. I would suggest you change that to Azure Front Door or position it as an alternative. TM does DNS based load balancing which has some problems when it comes to DNS caching and such. AFD is the Microsoft answer to cloudflare and akamai. It provides IP based load balancing among other things.

HOL step-by-step - Modern cloud apps.md
We should not be teaching customers to put their username/password into app settings but instead show them how to use managed identities instead. See https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-connect-msi for details.

Performance testing in App Service will be going away. The people that own the service behind that in devdiv have decided to drop support in the next year. This will need to be evolved to use app insights later on. I don’t have details on that as yet but FYI. This part should be marked for a revisit in the July/August timeframe.

App Service plan and app creates will both be getting an overhaul by BUILD. You will want to update your screen caps after that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.