Přejít k navigační liště

Zdroják » PHP » PHP v cloudu II

PHP v cloudu II

Články PHP

Posledně jsme si v úvodním dílu seriálu představili konkrétní situace, kdy je vhodné hostovat aplikace v cloudu a jaké nám to přináší výhody. Dnešní díl bude již více praktický, budeme se totiž věnovat nasazení vlastní PHP aplikace do prostředí Microsoft Azure.

Seriál: PHP v cloudu (4 díly)

  1. PHP v cloudu I 13. 6. 2014
  2. PHP v cloudu II 25. 6. 2014
  3. PHP v cloudu III 2. 7. 2014
  4. PHP v cloudu IV 11. 7. 2014

Nálepky:

Posledně jsme si v úvodním dílu seriálu představili konkrétní situace, kdy je vhodné hostovat aplikace v cloudu a jaké nám to přináší výhody. Dnešní díl bude již více praktický, budeme se totiž věnovat  nasazení vlastní PHP aplikace do prostředí Microsoft Azure (jak získat zkušební verzi Microsoft Azure na měsíc zdarma, najdete na konci prvního dílu). Využijeme k tomu službu Microsoft Azure Web Sites a zaměříme se zejména na konfiguraci prostředí pro vysokou dostupnost.

Vytvoření prostoru pro web aplikaci

V prvním kroku si připravíme prostor pro nasazení PHP web aplikace.

  1. Přihlaste se do administračního portálu.
    Administrační portál
  2. Otevřete záložku Web Sites.
    Web Sites
  3. V levém dolním rohu klikněte na NEW.
    New
  4. Pokud byste zvolili FROM GALLERY, tak si můžete vybrat z mnoha předpřipravených aplikací, které můžete automaticky nasadit a používat. Nás zajímá volba QUICK CREATE, která vytvoří prázdný prostor pro aplikaci.
    Quick create
  5. URL aplikace je asi jasné. Aplikace se nejdříve nasadí na doménu třetí úrovně, které pak můžete nastavit doménu druhé úrovně. Pole WEB HOSTING PLAN vám umožňuje sdružovat Web Sites z hlediska nastavení. V poli REGION vyberete datové centrum, kam chcete aplikaci nasadit. Po chvilce máte prostor připravený.
    Připravený prostor
  6. Kliknutím na jméno Web Sites se dostanete do konfigurace.
    Konfigurace

Základní konfigurace

Zatím nás bude zajímat jen záložka CONFIGURE. Na této záložce si vyberete verzi PHP a můžete zapnout různé typy logování chyb na serveru. Některé vlastnosti jsou dostupné pouze pro placené varianty Web Sites.

Configure

Při prvním vytvoření běží aplikace v režimu Free, který má celou řadu omezení, ale pro první testy a seznámení s platformou stačí. Pro ostrý provoz bude třeba aplikaci přepnout do režimu SHARED, BASIC nebo STANDARD. To se dělá na záložce SCALE.

Scale

Jednotlivé režimy mají opět různé vlastnosti. Nejzásadnější rozdíl je, jestli máte pro svou aplikaci vyhrazený vlastní virtuální stroj nebo ho s někým sdílíte. Podle toho se samozřejmě odvíjí i cena.

Změna výchozí konfigurace PHP

Pokud potřebujete změnit výchozí konfiguraci PHP, tak stačí do kořenového adresáře aplikace přidat soubor .user.ini a v něm nastavit nové hodnoty.

Aplikace může také využívat i další rozšíření, která nejsou součástí výchozí konfigurace.

  1. Vytvořte adresář bin v kořenovém adresáři aplikace.
  2. Do adresáře nahrajte rozšíření. Tato rozšíření musí být VC9 a non-thread-safe (nts).
  3. Seznam rozšíření je třeba přidat do konfigurace (záložka CONFIGURE). Jednotlivá rozšíření se oddělují čárkou.
    Rozšíření

Nasazení aplikace

Na záložce DASBOARD najdete vše potřebné pro nasazení aplikace. To nejjednodušší je využití FTP. V dalším díle si ukážeme propojení s GIT pro kontinuální nasazení.

Nasazení pomocí FTP

Vlastní aplikace se pak nahraje do adresáře /site/wwwroot.

FTP upload

Nyní již stačí zkopírovat vaši aplikaci. Podívejte se na výpis phpinfo().

Nastavení scénářů očekávaná a neočekávaná zátěž

Zatím jste neviděli nic, co by se nějak významně lišilo od běžného hostingu, tedy kromě poskytované bezpečnosti a dostupnosti vyplývající z nasazení aplikace do skutečného cloudu.

Tím, že při automatickém škálování dochází k přidávání a ubírání instancí webové aplikace, tak nic nesmíte ukládat přímo v instanci, např. na lokální disk. Za pár okamžiků už konkrétní instance vaší aplikace nemusí existovat a o data přijdete. Server, který zajišťuje load balancing, je totálně „hloupý“ a vůbec neřeší, aby požadavky jednoho klienta chodily na stále stejnou instanci. Nezapomínejte na to!

Pokud potřebujete aplikaci automaticky škálovat, ať už v závislosti na vytížení CPU nebo čase, vše potřebné najdete na záložce SCALE.

  1. Přepněte Web Site do režimu STANDARD.
  2. Vyberte si požadovanou INSTANCE SIZE, výkon serveru, na kterém poběží vaše Web Site.
  3. Automatické škálování se nastavuje na základě vytížení CPU. Pokud zátěž CPU přesáhne horní hranici, tak se přidá další instance, pokud klesne pod dolní hranici, tak se jedna instance odebere. Minimální a maximální počet instancí nastavujete volbou INSTANT COUNT.

Capacity

Zálohování

Na záložce BACKUP můžete nastavit automatické zálohování aplikace.

Automatické zálohování

Zálohování můžete provést taky ručně, a to kliknutím na BACKUP NOW v dolní části. Po kliknutí na tlačítko RESTORE NOW si můžete vybrat verzi, ke které se chcete vrátit.

Choose backup source

Obnovení ze zálohy můžete udělat do aktuální instance nebo do nové instance s jiným doménovým jménem, abyste nenarušili produkční prostředí. Využívá se tady tzv. staging prostředí, ale o tom až v dalším díle.

Restore settings

Komentáře

Subscribe
Upozornit na
guest
19 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
karel

Ale uplně nechápu k čemu php cloud slouží, úzké hrdlo aplikace bývá na 99% v batabázi a tu mi je php cloud naprosto k ničemu, ba naopak pokud použiju na cachování apc, tak to cloud totálně odvaří, takže se bude muset použít memcache(d) podle toho kdo co rád, a počítám že to bude za příplatek.
Sorry php neni java abych kvůli pár uživatelům potřeboval hromadu ram a procesorů a pokud to tak někdo má měl by se dosti zamyslet nad tím co napsal.

karel

budu se tesit

psvoboda1

Jak je to třeba se Session? Plati stejná omezeni jako v případě ukládání na lokální disk?

pilifs

Tipoval bych že z důvodu těch více instancí bude nutné držet SESSION v nějakém jiném uložišti než na disku. Asi pouze databáze?

Honza

Ty sessions by to chtělo více rozvést. Pokud Azure Storage neumí adresáře, pak se těžko nastaví php session dir.
Navíc by bylo hezké vědět, zda Azure umí sticky sessions, tj. zda již vytvořenou session směruje na tentýž backend server, kde byla session vytvořena. To by se hodilo, kdybychom si chtěli držet něco navíc v memcache.

m&m

Provozovat PHP na Windows (IIS)? v ostrem provozu je zhovadilost.
Chcete-li PHP v cloudu pouzijte AWS nebo Google App engine.

Jan

Přesně tak, vůbec nechápu proč tu neni seriál například o AWS. Bylo by to mnohem přínosnější. Nevidim jedinej důvod proč hostovat PHP ve windows cloudu. Fakt ne.

Martin Hassman

Proč tu není seriál o AWS říkáte? Důvod tu je. Ale nechám vás hádat. 8-)

Pepa

Zatím jste neviděli nic, co by se nějak významně lišilo od běžného
hostingu, tedy kromě poskytované bezpečnosti a dostupnosti vyplývající
z nasazení aplikace do skutečného cloudu.

Mohl byste trochu rozvést co myslíte tím:

  • poskytované bezpečnosti – jakou mi to poskytně bezpečnost?
  • do skutečného cloudu – co je to skutečný cloud?

nějak si nedokáži představit tu bezpečnost a ten skutečný cloud, stačí mi i odkazy

Pilgrim

Zvláštní je, že ereg v PHP je deprecated od verze 5.3.0, ale v phpinfo s verzí 5.4.23 modul existuje. Microsoft magic? :-)

Karlos

Jako sorry, ale doporucovat nekomu PHP na widlich? No hezky takovy clovek jednou podekuje.
Azure je pomala sracka kde PHP poradne nefunguje. Zkuste napsat http://mojestranka.cz/ěščřžýá co vam IIS to posle do PHP. Ale je mozny ze uz to spravili. Ale jako PR to tady asi plni svuj ucel.

Karlos

Drupal 7. Zakladni instalace – prumerny pageload 5-10 sekund. Pak zapnout modul Path, vytvorit node a dat mu v URL aliasu ceskou diakritiku. IIS+PHP udela papa – illegal character set. To mixovani ruznych kodovani jsem testoval na vice strojich s IIS 7.5 asi pred rokem a vsude to padalo, staci si debugova promennou $_SERVER a je tam videt, jak to mrvi. Tu pomalost jsem mozna jen chytl pretizeny server, kdo vi, ale nikde jinde krom wedosu jsem to nevidel jet tak pomalu.

Karlos

muzes tam jeste udelat nejaky skutecny node ktery bude mit url prave takhle s diakritikou?

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.

Pocta C64

Za prvopočátek své programátorské kariéry vděčím počítači Commodore 64. Tehdy jsem genialitu návrhu nemohl docenit. Dnes dokážu lehce nahlédnout pod pokličku. Chtěl bych se o to s vámi podělit a vzdát mu hold.