Miroslav Holec

Software & Cloud Architect

miroslavholec.cz / blog / wordpress-v-cloudu-krok-za-krokem

Wordpress v cloudu krok za krokem

Miroslav Holec

Publikován 3. března 2016 , aktualizace: 29. března 2016 | Diagnostika, App Service, Application Insights, Web

Tento článek je starší 18 měsíců a je proto možné, že popisuje postupy nebo technologie, které v uplynulé době mohly doznat výraznějších změn. Názory a myšlenky v tomto článku již nemusí vyjadřovat současné stanovisko autora nebo autorů. Článek byl napsán 3. března 2016.

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), na desítku 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.

Podrobná Azure dokumentace

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ěř 3500 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 monžost New a necháme si vyhledat Wordpress:

Vytvoření stroje App Service

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

Založení Wordpressu

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 10 GB 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.

Nastavení služby App Service pro Wordpress

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

Tlačítko create

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:

Přehled vytvořených služeb pro Wordpress CMS

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.

Nastavení Wordpressu

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:

Nastavení Wordpress tránky

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.

Seznam služeb podporujících continuous deployment

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.

Nastavení MySQL databáze pro Wordpress

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.

Plugin pro Application Insights

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:

Nastavení instrumentačního klíče pro Wordpress

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:

Přehled v Application Insights

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:

Overview Timeline

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

Proactive detection

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átež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.75 GB 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í.

Škálování

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:

Nastavení SSL a vlastní domény

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í.

Máte už s hostováním Wordpressu v cloudu zkušenosti? Podělte se o ně v diskusi...

Potřebujete pomoci?

Líbil se Vám článek? Máte dotaz nebo chcete v této oblasti s něčím pomoci? Neváhejte se na mě obrátit.

mirek@miroslavholec.cz

  • Řešení vývojářských problémů
  • Konzultace
  • Firemní školení a workshopy