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

Zdroják » PR Články » WordPress v cloudu krok za krokem

WordPress v cloudu krok za krokem

Články PR Články

V tomto článku ukážu, jak nasadit a provozovat redakční systém WordPress v cloudovém prostředí Microsoft Azure zdarma, a to včetně pokročilé diagnostiky aplikace. Ukážu, že i bez znalostí cloudového prostředí Azure je nastavení celé aplikace hračka a oproti prehistorickým hostingům také zábava.

1. Založení Microsoft Azure

Microsoft Azure je dnes už velmi rozsáhlá platforma, která se skládá z desítek služeb, které spolu velmi efektivně koexistují a kooperují. Řada těchto služeb je zdarma nebo za minimální poplatek. Založení účtu na Azure je možné zdarma a na první měsíc vývojář dostává kredit v hodnotě 200 USD, který může dle libosti vyčerpat i na placených službách.

V Microsoft Azure lze mít vlastní virtuální počítače s RDS přístupy, inteligentní multihostingové plány, datová úložiště (MySQL, SQL, NoSQL), služby pro cachování (Redis), řadu analytických služeb a služeb pro prediktivní analýzu, mikroslužby, různé notifikační huby… zkrátka všechno, co vývojář může pro svůj šťastný život potřebovat.

Azure je zároveň služba s naprosto podrobnou dokumentací, kterou vytváří produktoví manažeři, vývojáři i komunita kolem celé platformy. Dokumentace je díky této kooperaci neustále aktuální. O novinkách v Azure se lze dočíst prakticky okamžitě na Azure blogu.

image1

2. Zakládáme WordPress web

Po registraci do Azure má vývojář k dispozici nový portál:

kde lze vytvářet a konfigurovat služby. Vedle portálu lze spravovat služby i pomocí různých externích nástrojů (např.: Visual Studio nebo PowerShell). Pro Azure již vzniklo téměř 3 500 aplikací, které jsou dostupné v tzv. Marketplace. Instantně tak lze založit například Drupal, CakePHP nebo třeba Umbraco. My v novém portálu zvolíme možnost New a necháme si vyhledat WordPress:

image2

Výsledkem by mělo být hned několik možností:

image3

Zvolíme si hned první možnost WordPress, dále odklikneme tlačítko Create a dostaneme se na blade, kde lze založit službu App Service (případně zvolit již existující).

2.1. App Service

App Service je služba pro hostování webových aplikací. Nejlépe si ji lze představit jako virtuální stroj, v rámci kterého lze následně vytvářet aplikace. Čili svým způsobem se jedná o multihosting s řadou dalších funkcí, včetně podpory verzovacích systémů nebo například Continuous Integration.

Od založení WordPressu nás dělí vyplnění jen několika položek:

App name: Reprezentuje název aplikace a subdoménu, na které bude aplikace dostupná. Pokud zvolíme mujtest, aplikace bude dostupná na adrese mujtest.azurewebsites.net, a to na HTTP i HTTPS.

Subscription: Je název předplatného. V případě nově založených služeb obvykle Trial, Free Trial nebo něco podobného.

Resource Group: Název skupiny zdrojů slouží pro snadnější správu pomocí Azure Powershellu a vůbec. Ideální je použít název resource group vždy pro celé řešení.

App Service plan / Location: Umožňuje vytvořit stroj, na kterém bude aplikace hostována (výše popsaná App Service). Pro tento stroj jsou typická dvě nastavení: lokalita a cenová hladina. Free plán je zcela zdarma a plně dostačující pro testovací účely. Pokud například chystáte WordPress šablonu pro klienta, není ani potřeba mít web na vlastní doméně. Pokud ano, nebo potřebujete větší výkon, lze sáhnout po placeném multihostingu.

Database: Umožňuje zvolit databázi pro WordPress. K dispozici jsou opět různé plány od malé neplacené free verze až po 10GB MySQL databázi se 100% dostupností a automatickým zálohováním. Pro účely testování nebo „vývoje do šuplíku“ bohatě stačí free verze.

image4

Web App Settings: Jsou již specifická nastavení přímo pro WordPress. Pokud nevíte, co která položka dělá, nemusíte nic měnit.

Po kliknutí na

image5

se již vytváří virtuální stroj, zakládá se aplikace a provádí se automaticky deploy aplikace WordPress. My do tohoto procesu nemusíme vůbec zasahovat. Máme v podstatě hotovo.

2.2. Přehled vytvořených služeb

Po dokončení vytváření můžeme přejít přes menu na stránku All resources a dohledat vše, co jsme jediným formulářem vytvořili. Mělo by se jednat o 4 nové položky:

image6

Na obrázku můžete vidět vytvořený App Service plán s názvem phpwebsites, pro který se vytvořila automaticky první aplikace s názvem mujWordPress. Díky vyplněným údajům o databázi máme k dispozici i MySQL databázi s názvem WordPressDb.

2.3. Konfigurace WordPressu

Kliknutím na položku s názvem webové aplikace (v mém případě mujWordPress) lze vidět podrobné nastavení aplikace.

image7

Na tomto obrázku jsem oranžově zvýraznil odkaz na samotnou aplikaci. Po kliknutí na tento odkaz se skutečně dočkáme načtení webové aplikace a průvodce nastavením WordPressu:

image8

2.4. Přístup ke zdrojovým kódům

K aplikaci lze přistupovat pomocí FTP údajů, které jsem na screenshotu výše označil zeleně. Kromě FTP je k dispozici řada dalších služeb, odkud lze aplikaci publikovat. Tento seznam je zpřístupněn přes možnost Continuous deployment a pro připojení služby stačí pouze zadat vlastní přihlašovací údaje a zvolit zdroj pro publikaci. Pro Dropbox je to například složka, pro GitHub zase repository a branch.

image9

2.5. Přístup k databázi

Postup je analogický jako v případě konfigurace WordPressu (viz. 2.3.). Opět vybereme možnost All resources a dohledáme položku s databází. V mém případě WordPressDb. Po výběru položky se zobrazí nastavení databáze. Protože nemáme dedikované řešení, není zde ani možnost správy databázového serveru. Databázi však samozřejmě spravovat můžeme.

image10

Na stránce s nastavením je vidět přehledně využití databáze v rámci free plánu. Po zvolení položky Properties je možné najít i přihlašovací údaje k samotné databázi. Tyto údaje má WordPress aplikace již nastavené a není nutné je jakkoliv měnit.

3. Diagnostika aplikace

V bodu 2.2. jsme si ukázali, že Azure vytvořil celkem 4 služby. App Service, aplikaci a databázi jsme si již ukázali. Tou čtvrtou je služba pro diagnostiku a monitoring aplikace: Application Insights.

Služba Application Insights se jako jediná vytvořila v jiném datacentru (není třeba se tím trápit – služba je ve verzi public preview a jiné lokality zatím nejsou k dispozici). Samotná služba slouží k velmi podrobné diagnostice a monitoringu dostupnosti aplikace. O této službě jsem napsal řadu článků, které nabízí velmi podrobný pohled na všechny klíčové funkce:

3.1. Nastavení Application Insights

Integrace služby do WordPressu je otázkou několika kliknutí skrze plugin vydaný přímo vývojářským týmem.

image11

Po instalaci pluginu je nutné nastavit instrumentační klíč v sekci Settings -> Application Insights. Tento klíč najdeme v Azure portálu v nastavení služby:

image12

Po uložení instrumentačního klíče služba Application Insights začíná automaticky sbírat data. Níže je vidět několik záznamů po návštěvě webu:

image13

Pokud je služba nastavená, lze již po několika hodinách získat podrobné statistiky o vytížení aplikace, podobně jako to mám na osobním webu:

image14

O tom, že něco není v pořádku, vás služba umí upozornit i emailem:

image15

4. Škálujeme

Máme za sebou vytvořené kompletní řešení webové aplikace s databází a diagnostickou službou za 0 Kč. Pokud hodláte provozovat WordPress v ostrém provozu, není problém se přizpůsobit aktuální zátěži a celé řešení výkonnostně doladit. V takovém případě můžeme opustit free plán a zvolit některý mocnější (scale up). Například plán Basic B1 nabízí 1,75GB RAM pro webovou aplikaci s podporou až 3 instancí, 10 GB prostoru a možností nasazení na vlastní doménu.

Plán Basic B1 nám již umožňuje škálovat i horizontálně (scale out) – čili postavit vedle sebe více strojů se stejnou hardware konfigurací.

image16

5. Vlastní doména a SSL

Provoz na vlastní doméně je otázkou několika kliknutí. Webová aplikace je dostupná na IP adrese, kterou je nutné zadat v nastavení DNS záznamů společně s CNAME, kterým se ověří vlastnictví.

Máte-li vlastní SSL certifikát, stačí jej uploadovat na Azure a připojit k nastavené doméně. Ukázkou budiž opět můj osobní web:

image17

Závěr

Ukázali jsme si, jak jednoduché je provozovat WordPress v cloudu. Prakticky bez vývojářských znalostí a bez nutnosti napsat jediný řádek zdrojového kódu. Diagnostika Application Insights automaticky sbírá data o stavu WordPress aplikace a aktivně zasílá emaily, pokud dojde k výkonnostním potížím.

Služba App Service a webová aplikace je připravena na vertikální i horizontální škálování, automatické zálohování (dle cenového plánu) nebo například na zabezpečení přístupu zvolenou metodou (Facebook, Google, Active Directory).

Přístup k aplikaci máme skrze FTP, ale nastavit můžeme i automatické publikování z různých služeb (Dropbox, GitHub, Bitbucket, atd.). Fajnšmekři ocení i možnost tvorby více deployment slotů, které lze využít k tvorbě testovacích prostředí nebo pro účely A-B testování.

K tématu se vám může hodit následující video:

Miroslav Holec

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.