Modernize your Windows Server apps with containers

  1. 7:15 pm to 7:45 pm EST
  2. Taylor Brown (Speaker), Muzz Imam (Demos)
  3. App works fine, but stuck in an older app model.
    1. Rewrite the whole thing.
    2. Try a new deployment model.
    3. Rewrite parts of it.
  4. Containerize it.
    1. Use a registry.
    2. CI/CD
    3. Deploy to Kubernetes cluster.
  5. IBuySpy
    1. SQL Server
    2. IIS
  6. Create a Dockerfile
    1. Like writing down all the steps to deploy the app.
    2. MSBuild commands, etc.
  7. Demo: Windows Admin Center (WAC) makes managing your server workloads easier.
  8. Announcing an extension today to write your Dockerfile for you.
  9. Point it to your source code.
  10. Define some basic properties, e.g. .NET Framework version.
  11. You can run it from Windows Admin Center, Pull, Push, etc.
    1. Give it your Azure Subscription, where to push to, e.g. Azure Container Registry, etc.
  12. Question: the tool is focused on web apps right now, ASP.NET, etc.  Feedback will determine future capabilities.
  13. Question: can I modify the generated Dockerfile?  Yes!
  14. Question: what Windows Server versions does WAC support?
    1. Answer: Windows Server 2019 is the focus.
  15. Demo: Kubernetes
    1. Create Kubernetes cluster in the Azure portal.
    2. It has already created an agentpool on Linux (default).
    3. We need to create one for Windows.
    4. Network configuration: Select Advanced.
    5. AKS is going to create another resource group for you.
      1. Just be aware of this.
    6. Resources:
      1. SQL Server
      2. SQL Databasse
      3. Kubernetes Service
      4. Container Registry
      5. Virtual Network
    7. Connect AKS with ACR.
    8. AKS can then pull images from ACR.
    9. He’s using Az tools (Azure CLI) from a PowerShell prompt.
    10. Editing Kubernetes .yaml file in VS Code.
    11. kubectl apply -f .\ibuyspy-lm.yaml
    12. kubectl get all
    13. He showed the app running.
    14. Now what do you do?
    15. Monitoring.
    16. He can get IIS and Log Viewer logs in the Kubernetes portal blade.
      1. “Insights”
    17. He can upgrade the cluster from the portal.
  16. You can now add an ingress controller, i.e. like a router.
    1. This is a Linux container.
    2. Deploy it through Helm.
  17. Demo: Modernizing your apps.
    1. kubectl create namespace ingress-basic
    2. helm repo add stable https://kubernetes-charts.storage.googleapis.com/
    3. helm install nginx-ingress stable/nginx-ingress --namespace ingress-basic --set controller.replicaCount=2 --set controller.nodeSelect...
    4. kubectl get svc --all-namespaces
    5. You will get a 404 until you define routes between the components.
    6. Added a new sections to his .yaml file for the Ingress components.
    7. kubectl apply -f .\ibuyspy-n.yaml
    8. Browsed to his app again in the browser.
    9. Now he can perform A/B testing.
    10. Organizes your app easily.
  18. Support for Windows containers in AKS.
  19. Best practices and recommendations
  20. Question: Any plans to get Kubernetes running in Windows only?
    1. Answer: the community has aligned around Linux master and Windows worker model.
  21. Question: Support plan for GMSA (?)?
    1. Windows Authentication.