Giter Club home page Giter Club logo

azureworkshopsfp-ms's Introduction

Projekt treningowy do warsztatu z usług poziomu Platform as a Service na Microsoft Azure

Instrukcja

Zadanie 1 - uruchomienie aplikacji lokalnie

  • Pobierz to repozytorium lokalnie. Polecenie git clone uri_do_repozytorium.
  • Przełącz się na branch 01-start. Polecenie: git checkout 01-start
  • Uruchom aplikację. Baza danych powinna stworzyć się automatycznie na lokalnej instancji SQL Server.

Zadanie 2 - wdrożenie aplikacji na usługi Microsoft Azure

Część pierwsza

Część druga

  • Na zakładce stworzonej bazy danych znajdź jej „connection string” i uzupełnij o brakujące hasło.
  • W Visual Studio użyj opcji „publish” w menu kontekstowym aplikacji webowej i opublikuj projekt wykorzystując przygotowane connection string.
  • Przetestuj aplikację uruchomioną w chmurze Microsoft Azure.

Rozwiązywanie problemów

Zadanie 3 - storage

  • Załóż usługę Storage Account.
  • Uzupełnij implantację klasy FilesStorageService, tak, aby zapisywała ona pliki w Azure Storage i zwracała adres nowego bloba.
    • Zainstaluj paczkę Nuget WindowsAzure.Storage do projektu zawierającego wspomnianą klasę.
    • Wykorzystaj i uzupełnij kod w komentarzach.
    • W razie problemów skorzystaj z instrukcji w dokumentacji - sekcja "Programmatically access Blob storage".
  • Po implementacji powinieneś móc dodać nowy wpis ze zdjęciem do dziennika projektu oraz wyświetlić to zdjęcie na liście wpisów.
  • Zaimplementuj zmiany lokalnie, nie musisz publikować ich na Chmurę.

Gotowe rozwiązanie można znaleźć na kolejnym branchu:

git checkout 02-storage 

Zadanie 4 - diagnostyka

Zacznij to ćwiczenie na kodzie w wersji:

git checkout 02-storage 

  • Zainstaluj do projektu aplikacji web paczkę NuGet "Microsoft.ApplicationInsights.Web"
  • Znajdź w portalu Azure panel zarządzania usługą Application Insights (instancja została stworzona przy okazji tworzenia Web App) i znajdź Instrumentation Key
  • W pliku konfiguracyjnym "ApplicationInsights.config" skonfiguruj InstrumentationKey do stworzonej instancji.
  • Uruchom stronę (lokalnie). Dodaj nowe wpisy, otwórz kilka stron, aby wygenerować ruch.
  • Po kilku minutach otwórz panel usługi Application Insights w portalu i przeanalizuj przesłane dane.

Gotowe rozwiązanie można znaleźć na kolejnym branchu:

git checkout 03-app-insights 

Zadanie 5 - skalowanie

Wstęp: Zrób deploy aplikacji na usługę Web App wykorzystując opcje z ustawień usługi

  • Skonfiguruj: Continuous Deployment/Local Git repository
  • Ustaw poświadczenia repozytorium: Deployment credentials
  • Dodaj nowy 'remote' do repozytorium na twojej maszynie: git remote add azure url_repozytorium_azure
  • Git push azure: git push -u azure 03-app-insights:master

Ćwiczenie

  • Skonfiguruj opcje skalowania aplikacji, aby działała ona na wielu instancjach. Zaobserwuj czy konfiguracja działa ("Rendered at instance" w stopce aplikacji).
  • Zadanie domowe: skonfiguruj automatyczne skalowanie i doprowadź do obciążenia systemu, które spowoduje dodanie nowych instancji.

Zadanie 5 - przetwarzanie w tle

Zacznij to ćwiczenie na kodzie w wersji:

git checkout  04-web-jobs-base 

  • Stwórz usługę Service Bus Namespace (w Azure Classic Portal: https://manage.windowsazure.com/)
  • Uzupełnij brakujące wartości w konfiguracji aplikacji, tak, aby aplikacja Web i PictureOptimizer skomunikowały się wykorzystując Service Bus
  • Przetestuj aplikacje lokalnie - dobrze działająca aplikacja powinna zmniejszać zapisane zdjęcia i na widoku listy prezentować miniatury.
  • Wdróż system na chmurę.
  • Korzystając Web Job Dashboard upewnij się, że aplikacja wdrożona aplikacja poprawnie przetwarza zdjęcia.

Gotowe rozwiązanie można znaleźć na kolejnym branchu:

git checkout 04-web-jobs-ready

IaaS - Ćwiczenia

Ćwiczenie 6 - maszyny wirtualne

  • Stwórz maszynę wirtualną (Windows Serwer 2012 lub Ubuntu Server)
  • Wybierz Deployment model: Resource Manager
  • Połącz się z maszyną (Zdalny pulpit dla Windows, SSH dla Ubuntu)
  • Uruchom lekki serwer http na maszynie.
    • Windows: pobierz nginx i zmień konfigurację firewall, aby udostępnić port 80.
    • Ubuntu: apt-get nginx
  • Zweryfikuj czy można dostać się do stworzonej maszyny.

Ćwiczenie 7 - sieci wirtualne

  • Stwórz usługę Virtual Network, w kreatorze wybrać opcję "Configure a Point-to-Site VPN) oraz dodać Gateway Subnet
  • Na ostatniej zakładce wybierz "add gateway subnet"
  • Stwórz gateway w sieci, używając opcji "Add Gateway" w stopce panelu zarządzania siecią.
  • Powyższa akcja potrwa około 30min - trzeba w takim razie zająć się czymś innym.
  • Wygeneruj self-signed Root Certificate oraz jego Client Certificate.
  • Wgraj Root Certificate do konfiguracji sieci.
  • Pobierz instalator interfejsu VPN i połącz się z siecią.
  • Stwórz maszynę wirtualną (w modelu classic) dodając ją do stworzonej sieci. Skonfiguruj tak, aby dało się do niej podłączyć tylko przez sieć wirtualną.

Azure Active Directory

Zadanie 8* - Azure Active Directory

Zacznij to ćwiczenie na kodzie w wersji:

git checkout 04-web-jobs-ready 

  • Stwórz nowe Azure Active Directory (Classic Azure Portal)
  • W Visual Studio użyj opcji „Configure Azure AD Authentication” w menu kontekstowym aplikacji webowej.
  • Postępuj zgodnie z kreatorem, wybierając stworzone konto AD.
  • Aby zapewnić możliwość wylogowania, umieść fragment kodu w pasku nawigacji, w głównym dokumencie HTML aplikacji: @Html.Partial("_LoginPartial")

Pełne rozwiązanie znajduje się na branchu

git checkout 05-azure-active-directory

azureworkshopsfp-ms's People

Contributors

kszabelski avatar

Stargazers

Piotr Kościelniak avatar

Watchers

James Cloos avatar  avatar

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.