Moja metodyka zdawania egzaminów certyfikacyjnych Azure

    No Comments

    W dniu dzisiejszym (22.06.2018) udało się zdać z pozytywnym wynikiem jeden z egzaminów Microsoftu dotyczących chmury publicznej Azure

    Chciałbym podzielić się z wami moim doświadczeniem dotyczącym efektywnego przyswojenia wiedzy potrzebnej do takiego wyzwania.

    To z czego korzystam:

    1. Oficjalna strona egzaminu

    https://www.microsoft.com/en-us/learning/exam-70-473.aspx

    Tu należy zwracać uwagę na zmiany, które od czasu do czasu są wprowadzane przez producenta, ma to też wpływ na wybór kursu online.

     

    2. Kurs wideo

    W tym przypadku był to:

    https://www.udemy.com/70473-azure/learn/v4/overview

    Lectures: 69
    Video: 4.5 hours
    Skill level: Intermediate Level

    Prawie 5 godzin, ale taki kurs daje przegląd usług, które są w zakresie egzaminacyjnym, nie zastąpi w żaden sposób ćwiczeń, które utrwalą wiedzę. Te ćwiczenia moim zdaniem są najważniejszym elementem przygotowywania do opanowania zakresu, który nie jest taki mały, jak mi się na początku wydawało, w szczególności dla osób, które dopiero zaczynają poznawać technologie dookoła silnika SQL. Jeżeli są tu braki należy je nadrobić, ale nie w zakresie skompilowanych zapytań t-sql. Tu znajdziemy głównie konfiguracje administratorskie, nadawanie uprawnień, zagadnienia bezpieczeństwa, kopie zapasowe, import i eksport danych i metadanych, itp.

     

    Ćwiczenia wykonuję z poziomu Portalu, PowerShella i Azure CLI 2.0 (az).

    3. Przegląd dokumentacji Microsoftu

    Dokumentacja Microsoftu jest bardzo obszerna. Zapewne nie jestem pierwszą osobą, która taki egzamin zdaje, więc istnieje możliwość, że ktoś wcześniej dokonał już wyboru dokumentacji, kursów i wpisów na blogu.

    Przykładem jest strona www.mssqltips.com

    https://www.mssqltips.com/sqlservertip/4913/exam-material-for-the-microsoft-70473-designing-and-implementing-cloud-data-platform-solutions/

    W przypadku 70-473 znalazłem również stronę:

    Exam 70-473 – Designing and Implementing Cloud Data Platform Solutions

     

    Na te materiały należy oczywiście spojrzeć krytycznie pod kątem aktualności względem zmian wprowadzanych cyklicznie przez Microsoft.

    3. MVA Microsoftu

    https://mva.microsoft.com/en-us/training-courses/certification-exam-overview-70473-designing-and-implementing-cloud-data-platform-solutions-17402

    Nie polecam, znajdują się tam często przestarzale treści, ale to też w zależności od egzaminu.

     

    4. Portale społecznościowe

    W chwilach desperacji zawsze można zadać pytanie na grupie na Facebooku Microsoft Azure User Group Poland

    Polscy MVP z obszaru Azure chętnie odpowiedzą.

    5. Nauka cykliczna

    Cykliczne powtórki treści, które wymagają zapamiętania. Parametry poszczególnych maszyn wirtualnych  (liczba rdzeni, wielkość pamięci), wielkości baz danych w poszczególnych planach, jest tego trochę.

    Korzystam z ANKI

    6. Uwagi końcowe

    Można też wykupić przykładowe zestawy pytań, ale to radzę robić z dużą ostrożnością. Uczenie się na pamięć jest drogą na skróty, a tak przyswojona wiedza wyparuje szybciej niż myślimy. A przecież głównym celem zdania egzaminu powinno być potwierdzenie, że to czego nauczyliśmy się w praktyce pozwala na zamknięcie pewnego zakresu kompetencyjnego, a nie kolejny znaczek lub wydrukowany dokument.

     

    Są też dostępne dumpy  z pytaniami na rożnych stronach, ale tu radzę, jeśli już chcemy z nich koniecznie korzystać, weryfikować każdą poprawną odpowiedź. Bez ćwiczeń, o czym wspomniałem już wcześniej nie obędzie się, wiem, bo je próbowałem oglądać. Strata czasu..

    Nie należy stresować się brakami w wiedzy “on-premise”, jeśli tak się zdarzy, to pytam mądrzejszych. Ważne, by czas poświęcony nauce był dla nas intelektualnym wyzwaniem, nie należy też przesadzać z intensywnością. Pamiętajmy o celu.

    Chmura publiczna jest doskonałym zestawem usług, gdzie w ramach wirtualnej serwerowni możemy sami zbudować rozwiązanie end2end.

     

    Mały dodatek.

    Egzaminy z Azure proponuję zacząć od 70-533

    Zgodnie z informacją

    There are exam updates effective as of March 29, 2018. To learn more about these changes and how they affect the skills measured, please download and review the Exam 533 change document.

    Uważajcie na zmiany.

    Ja zacząłem od https://www.mssqltips.com/sqlservertip/4853/exam-material-for-the-microsoft-70533–implementing-microsoft-azure-infrastructure-solutions/

    Kurs na Udemy.

    https://www.udemy.com/70534-azure/learn/v4/content

    By the numbers
    • Lectures: 238
    • Video: 16 hours
    • Skill level: Intermediate Level

    Dodatkowo na githubie mam forkowane repozytoria:

    https://github.com/djkormo/Exam-70-533-Azure

    https://github.com/djkormo/microsoft-exam-prep-70533

    Trzeba dużo czytać, ale radzę omijać dokumentację z czasów Windows Azure, potem polecam przeklikać zakres w Portalu Azure.

    Trochę pracy ze skryptami w PowerShellu.

     

    Categories: Azure, chmura

    Azure Hacking – logowanie CLI za pomocą service principala

    No Comments

    Od kiedy zainteresowałem się chmurą Microsoft Azure początkowe kroki skierowałem do Portalu.

    Postawiłem kilka maszyn wirtualnych, strony www, proste funkcje. Następnie spróbowałem  przygotować to samo bez jednego kliknięcia myszą. Do wyboru miałem Powershell i moduł az CLI 2.0 napisany w Pythonie. Wybrałem az.

    Pierwsza linia kodu skryptu powołującego chmurową infrastrukturę wyglądała tak.

    Pojawia się wtedy komunikat

    To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code CCJULN8F8 to authenticate.

    Za pomocą podanej strony i kodu autoryzacyjnego muszę wskazać użytkownika , a potem wpisać hasło.

    Co zrobić, jeśli chciałbym uniknąć podawania za każdym razem hasła administratora subskrypcji i stworzyć techniczny byt, który pozwoli na wielokrotne uruchamianie np. skryptu wdrożeniowego, oczywiście bez interakcji z wyskakującymi oknami.

    Poniżej przedstawiam prosty sposób na skorzystanie z service principala

     

    Składnia

    Jak widać potrzebne nam będą trzy identyfikatory.

    Zacznijmy od TENAND_ID.

    Wybieramy menu  Azure Active Directory i zakładkę Properties

    azure_sp_1

    To, co widzimy w miejscu Directory ID to nasz TENAND_ID. Kopiujemy i zapisujemy sobie na boku.

    Pozostałe dwa identyfikatory wymagają stworzenia aplikacji.

    Zmieniamy zakładkę Properties na App registrations.

    Tworzymy nową aplikację typu Web app/API. Swoją nazwałem deployer. Adres url nie ma znaczenia w naszym zastosowaniu, wpisujemy dowolną wartość.

    azure_sp_2

     

    Po utworzeniu aplikacji mamy dostęp do identyfikatora APP_ID

    azure_sp_3

    Kopiujemy Application ID i zachowujemy  w tym samym miejscu co TENANT_ID.

    Czas na ostatni identyfikator, czyli KEY. Wchodzimy na zakładkę Keys.

    Tworzymy nowy klucz o nazwie np. KeyOne i terminie wygaśnięcia za jeden rok, pole Value zostanie wypełnione po zapisaniu klucza

    azure_sp_4

    W tym momencie powinniśmy skopiować wartość klucza. Jest to operacja jednorazowa. Portal o tym uczciwie przypomina. Klucz oczywiście można skasować i wygenerować kolejny.

    azure_sp_5

    Mamy już trzy identyfikatory. Co dalej ?

    Spróbujmy połączyć się do subskrypcji z poziomu linii komend.

    Po zalogowaniu się pojawi się zwrotny komunikat w postaci JSON

     

    Podanie błędnych danych kończy się małą katastrofą z kodem 401.

    Spróbujmy stworzyć nową grupę zasobów

    Pojawił się komunikat.

    Brakuje uprawnień dla naszej aplikacji i słusznie.

    Nadajmy uprawnienia dla aplikacji na poziomie subskrypcji.

    Dodajemy z poziomu zakładki Access control [IAM] uprawnienia Contributor dla całej subskrypcji.

    azure_sp_6

    Uruchamiamy ten sam kod i teraz mamy już komunikat zwrotny

    Wchodzimy na zakładkę Activity Log naszej nowej grupy zasobów i widać, kto i kiedy utworzył zasób.

    azure_sp_7

     

    Usuwamy grupę zasobów

    To samo można zrobić z poziomu CLI bez korzystania z Portalu, ale o tym innym razem…..

     

    Literatura:

    https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal

    https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli?toc=%2Fazure%2Fazure-resource-manager%2Ftoc.json&view=azure-cli-latest

     

     

    Categories: Azure, chmura, migawka, Python

    Hacking Azure – PoIaaS model

    3 komentarze

    Pierwszy wpis na blogu dotyczący chmury publicznej Microsoftu Azure.

    Każdy młody adept  Azure  spotyka się na początku z różnymi modelami obsługi zasobów w chmurze. Zgodnie z poniższym rysunkiem.

    https://social.technet.microsoft.com/wiki/cfs-filesystemfile.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/5482.sec_2D00_cloudstack.png

    To, co na zielono kontroluje Microsoft, a to co na niebiesko właściciel subskrypcji, czyli w dużym uproszczeniu, ja. Jak u każdego chlopca, który krzyczy po raz pierwszy “Ja sam, ja sam!”.

    Rozpocząłem klasycznie od  lewej strony, czyli postawiłem kilka maszyn wirtualnych, Najpierw z poziomu portalu, a potem za pomocą Azure CLI 2.0, od czasu do czasu Azure Cloud Shell był pomocny. Skoncentrowałem swoje działania wokół dystrybucji Ubuntu , na której w finalnym instalowałem Midnight Commandera. Prześmiewcom tego pakietu powiem tylko tyle ze linuxa używam wcześniej niż pojawiła się dystrybucja RedHata 4.0. To taka sentymentalna podróż do czasów produktów Petera Nortona. Następnie skoncentrowałem się na modelu PaaS, gdzie  poznawałem bazy danych i usługi pod strony www.

    Dziś chciałbym opowiedzieć o jednej z nich: App Service on Linux

    Instalację wykonałem zgodnie z

    https://github.com/djkormo/azurewordpress

    Z tym, że jako bazę mysql wykorzystałem usługę Azure datatabase for Mysql

    .mywordpressaspaas_1

     

    Konfiguracja po stronie WordPressa wymagała ustawienia czterech zmiennych środowiskowych, zgodnie z zapisem w pliku
    wp_config.php

    Po stronie aplikacji wyglądało to tak:
    mywordpressaspaas_2

    Nie jest to bardzo bezpieczne, ale na Proof of Concept na początek wystarczy.

    Po zainstalowaniu kodu WordPressa pobranego z repozytorium na Githubie pokazała się ładna strona. Dowolna zmiana w kodzie repo powoduje uruchomienie wdrożenia zmian.

    Po konfiguracji oprogramowania  możemy się pochwalić stroną startową.

    mywordpressaspaas_3

    Udało się. Pierwsza strona www z obsługa PHP i Mysql została uruchomiona. Chciałem sprawdzić,  jakie są dalsze możliwości konfiguracyjne, a przy okazji dowiedzieć się co właściwie jest pod spodem, np. z którą dystrybucją linuxa mamy do czynienia.  Uwaga!. To jest ta część kontrolowana przez dostawcę usług, czyli przez Microsoft.

    Wykorzystałem w tym celu wbudowane w usługę narzędzie KUDU . Gorąco polecam.

    Uruchomienie to zakładka Advanced Tools -> go.

    A potem z poziomu KUDU uruchomiłem SSH.

    mywordpressaspaas_4

    Jaka tam jest jest dystrybucja  ?

    Polecenie

    Linux 1c7503c5ac2b 4.4.0-112-generic #135-Ubuntu SMP Fri Jan 19 11:48:36 UTC 2018 x86_64 GNU/Linux

    Spróbowałem zainstalować na początku pakiet mc. Po wpisaniu polecenia

    system stwierdził, że nie znalazł pakietu, ale wystarczyło po chwili zastanowienia

    Sprawdziłem czy to działamywordpressaspaas_6

    Instalacja zakończyła się sukcesem.

    Weryfikacja ostateczna, to uruchomienie  pakietu.

    I naszym oczom ukazuje się znajomy interfejs programu.

    mywordpressaspaas_5

    Czy można zrobić upgrade pakietów systemu operacyjnego ?

    Zakończyło się bez błędu, ale z zerowym przebiegiem.

    I tu się zacząłem zastanawiać, co w jakim modelu stworzyłem moją stronę wordpressową ?  IaaS (mam dostęp do systemu operacyjnego), czy PaaS, a może model hybrydowy który tu roboczo nazywam PoIaaS. (Platform on IaaS) .

    Kolejne pytania, które się pojawiły:

    • W jaki sposób zachowa się system podczas autoskalowania? Czy kolejne “maszyny” wstaną z zainstalowanym mc czy bez?
    • Co jest wzorcem dla takie usługi ?
    • I kto zadba o zmiany w systemie operacyjnym ? Microsoft czy ja ?

    Sprawdzam, jakie procesy w są uruchomione:

    Zrobiłem już kilka eksperymentów i wiem …. Zrób i ty…. Odpowiedz na te trzy pytania.

    Pozdrawiam.

    Komentujcie…..

    Krzysztof Pudłowski

     

    Categories: Azure, chmura, IaaS, PaaS