Course Code: microsoftazureaks
Duration: 28 hours
Overview:
Podczas szkolenia omówimy techniki tworzenia aplikacji z wykorzystaniem chmury obliczeniowej Microsoft Azure, konteneryzacji (Docker) i usługi Azure Kubernetes Service (AKS). Szkolenie rozpoczniemy od omówienia Microsoft Azure od strony architektonicznej. W szczególności jakie są dostępne strategie hostowania aplikacji: maszyny wirtualne, konteneryzacja, serverless, AppService, Azure Batch i AKS. Omówimy też zakres możliwości Microsoft Azure i nauczymy się tworzyć grupy zasobów oraz zasoby/usługi z wykorzystaniem portalu, Azure CLI i CloudShell. Wdrożymy też przykładowe aplikacje Kotlin i Python. Dowiemy się jakie usługi umożliwiają nam przechowywanie danych w Microsoft Azure, i jak je zintegrować z aplikacjami poprzez odpowiednie SDK.
Dalej przejdziemy do omówienia nowoczesnego tworzenia aplikacji w oparciu o chmurę, repozytorium Git, kontenery Docker, przepływy CI/CD (z Azure DevOps services) i AKS. Poznamy tak zwaną wewnętrzną i zewnętrzną pętle, i zobaczymy jak poszczególne elementy składają się na automatyzację wdrożenia. W efekcie końcowym uzyskamy konfigurację, w której wysłanie kodu do odpowiedniej gałęzi w repozytorium Git spowoduje skompilowanie aplikacji, utworzenie obrazu Docker, i wdrożenie do klastra AKS lub usługi AppService. Po drodze zobaczymy w jaki sposób można automatycznie skalować aplikację w AKS i dostosowywać zasoby sprzętowe do aktualnego obciążenia.
Course Outline:

Ramowy program szkolenia:

  1. Wprowadzenie do Microsoft Azure
  2. Tworzenie grup zasobów, usługi i ich konfiguracja przy użyciu portalu, CloudShell i Azure CLI
  3. Omówienie dostępnych usług.
  4. Możliwości hostingowe: maszyny wirtualne, konteneryzacja, serverless.
  5. Tworzenie i konfiguracja maszyn wirtualnych.
  6. Style architektury.
  7. Usługi do przechowywania (magazyn) danych: Table Storage, Blob Storage, SQL Database, CosmosDB.
  8. Azure SQL Database:
    1. Jak korzystać
    2. Na co zwrócić uwagę
    3. Dobre praktyki
  9. Azure App Service i usługi towarzyszące.
  10. Azure Kubernetes Service i Azure Container Services.
  11. Przykładowe wdrożenia do AppService: aplikacje Kotlin (SpringBoot) i Python (Flask) oraz połączenie z usługą Azure SQL Database.
  12. Azure Autoscale – automatyczne skalowanie na platformie Azure
  13. Serverless: wprowadzenie do Azure Functions i Azure LogicApps
  14. Azure Monitor, Insights i Log Analytics.
  15. Ansible
  16. Konfiguracja sieci w Azure (w tym network security group)
  17. Komunikacja z wykorzystaniem Azure Service Bus:
    1. Przykład wykorzystania w architekturze mikrousług
  18. Omówienie schematu tworzenia nowoczesnych aplikacji:
    1. Pętla wewnętrzna i zewnętrzna,
    2. Kontenery i klastry AKS,
    3. Azure DevOps Repos
    4. Azure DevOps Pipelines do uzyskania CI/CD.
  19. Wprowadzenie do obrazów i kontenerów Docker:
    1. Omówienie podstawowych pojęć: obraz, kontener, DockerFile.
    2. Tworzenie obrazów aplikacji Kotlin i Python.
    3. Wykorzystanie narzędzia Swagger do dokumentacji API.
  20. Kubernetes:
    1. Omówienie głównych pojęć, takich jak Control Plane i Worker Nodes, Pods.
  21. Azure Kubernetes Service (AKS):
    1. Czym zarządza AKS?
    2. Tworzenie klastra z kontenerami Linux i Windows Server – omówienie różnic.
    3. Wdrożenie aplikacji do AKS.
    4. Automatyczne skalowanie podów i klastra (liczby węzłów, worker nodes) w celu dopasowania do bieżącego obciążenia.
    5. Testowanie aplikacji pod obciążeniem.
    6. Helm.
    7. Terraform.
    8. Monitorowanie klastra.
    9. Networking: Kubenet i Azure CNI
    10. Reguły sieciowe (network policies)
    11. Network security group
  22. Integracja z Azure DevOps i automatyczne wdrożenia CI/CD.
  23. Mini-warsztat: samodzielna implementacja aplikacji, konfiguracja usług w Microsoft Azure i AKS przez uczestników szkolenia.
  24. Podsumowanie i dalsze kroki.