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.
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
.
Konfiguracja po stronie WordPressa wymagała ustawienia czterech zmiennych środowiskowych, zgodnie z zapisem w pliku
wp_config.php
/** The name of the database for WordPress */
define('DB_NAME', getenv('WORDPRESS_DB_NAME'));
/** MySQL database username */
define('DB_USER', getenv('WORDPRESS_DB_USER'));
/** MySQL database password */
define('DB_PASSWORD', getenv('WORDPRESS_DB_PASSWORD'));
/** MySQL hostname */
define('DB_HOST', getenv('WORDPRESS_DB_HOST'));
Po stronie aplikacji wyglądało to tak:
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ą.
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.
Jaka tam jest jest dystrybucja ?
Polecenie
uname -a
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
apt-get install mc -y
system stwierdził, że nie znalazł pakietu, ale wystarczyło po chwili zastanowienia
root@1c7503c5ac2b:/home/site/wwwroot# apt-get update -y
Hit http://security.debian.org jessie/updates InRelease
Ign http://httpredir.debian.org jessie InRelease
Hit http://httpredir.debian.org jessie-updates InRelease
Hit http://httpredir.debian.org jessie Release.gpg
Hit http://httpredir.debian.org jessie Release
Get:1 http://security.debian.org jessie/updates/main amd64 Packages [644 kB]
Get:2 http://httpredir.debian.org jessie-updates/main amd64 Packages [23.1 kB]
Get:3 http://httpredir.debian.org jessie/main amd64 Packages [9064 kB]
Fetched 9731 kB in 44s (217 kB/s)
Sprawdziłem czy to działa
Instalacja zakończyła się sukcesem.
Weryfikacja ostateczna, to uruchomienie pakietu.
mc -c
I naszym oczom ukazuje się znajomy interfejs programu.
Czy można zrobić upgrade pakietów systemu operacyjnego ?
apt-get dist-upgrade -y
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:
root@1c7503c5ac2b:/home/site/wwwroot# ps -ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 /bin/bash /bin/init_container.sh
25 ? Ss 0:00 /usr/sbin/sshd
29 ? S 0:00 /bin/sh /usr/sbin/apache2ctl -D FOREGROUND
31 ? S 0:01 /usr/sbin/apache2 -D FOREGROUND
32 ? S 0:01 /usr/sbin/apache2 -D FOREGROUND
33 ? S 0:00 /usr/sbin/apache2 -D FOREGROUND
34 ? S 0:00 /usr/sbin/apache2 -D FOREGROUND
35 ? S 0:00 /usr/sbin/apache2 -D FOREGROUND
36 ? S 0:00 /usr/sbin/apache2 -D FOREGROUND
37 ? S 0:00 /usr/sbin/apache2 -D FOREGROUND
38 ? Ss 0:00 sshd: root@pts/0
40 pts/0 Ss 0:00 -bash
153 pts/0 S+ 0:00 mc -c
155 pts/1 Ss+ 0:00 bash -rcfile .bashrc
163 ? Ss 0:00 sshd: root@pts/2
165 pts/2 Ss+ 0:00 -bash
659 ? S 0:00 /usr/sbin/apache2 -D FOREGROUND
661 ? S 0:00 /usr/sbin/apache2 -D FOREGROUND
8134 ? S 0:00 /usr/sbin/apache2 -D FOREGROUND
8135 ? Ss 0:00 sshd: root@pts/3
8137 pts/3 Ss+ 0:00 -bash
8191 ? Ss 0:00 sshd: root@pts/4
8193 pts/4 Ss 0:00 -bash
8199 pts/4 R+ 0:00 ps -ax
Zrobiłem już kilka eksperymentów i wiem …. Zrób i ty…. Odpowiedz na te trzy pytania.
Pozdrawiam.
Komentujcie…..
Krzysztof Pudłowski
Mario
Fajny tutorial, przydał mi się 🙂 dzięki!
Jacek
Pierwsze koty za płoty fajny wpis. Pozdrawiam
Mateusz
Fajne inne spojrzenie na Azure. Dzieki