Hacking Azure – PoIaaS model

wpis w: Azure, chmura, IaaS, PaaS | 3

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

/** 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:
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

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łamywordpressaspaas_6

Instalacja zakończyła się sukcesem.

Weryfikacja ostateczna, to uruchomienie  pakietu.

mc -c

I naszym oczom ukazuje się znajomy interfejs programu.

mywordpressaspaas_5

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

 

3 Responses

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.