- 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.
Część pierwsza
- Zaloguj się do portalu Azure https://portal.azure.com
- Stwórz dwie usługi: Azure Web App oraz Azure SQL Database.
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
- Skorzystaj z Remote Debugging
- Zaloguj błąd do Trace i uruchom Diagnostic logs następnie skorzystaj z zakładki Log Stream w portalu.
- 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
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
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.
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
- 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.
- 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ą.
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