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

Zdroják » Různé » WordPress v cloudu

WordPress v cloudu

Články Různé

Nainstalovat si WordPress a psát zvládne přeci každý. Sdílený hosting, PHP, MySQL databáze, a jedem! Ale co když chci něco trošku modernějšího? Co když chci použít CDN, cloudový LAMP, externí služby? Půjde to? A proč bych to měl chtít? Otázky, samé otázky…

Páteční „lehčí čtení“ bude tentokrát svého druhu „případová studie“. Dozvíte se v ní, jak si vytvořit blog na míru, jak ho přesunout do cloudu a co si pod tím vlastně autor představuje.

Požadavky

Chtěl jsem vytvořit blog, kam bych přesunul články o hrách, co jsem v průběhu let napsal, a kde bych mohl s tímto koníčkem pokračovat, aniž by se mi to motalo do jiných témat.

Primární požadavek byl „good enough“ – nechci instalaci, zprovoznění a vlastnímu provozu věnovat víc, než je nezbytně třeba. A to ani peněz, ani času.

Druhý požadavek byla možnost rozšiřování, úprav a doplňování např. o výpis z Twitteru.

Třetí požadavek: dostupná šablona. V rámci požadavku „… nevěnovat víc, než je nezbytně třeba“ je jasně řečeno, že nestojím o lepení nějakého vzhledu ad hoc. Můj čas je poměrně drahý a zastávám názor, že originální blog nedělá originální design, ale originální obsah.

Systém

Požadavek na dostupnost šablon splňovaly především dva systémy: Blogger.com a WordPress. U Drupalu, na kterém provozuji další weby, to není tak slavné. Proto jsem se zaměřil na první dva jmenované s tím, že popřípadě šablonu „ohnu“, kdyby se ukázalo, že systém sám je nevhodný. Nakonec jsem objevil rozumnou šablonu jak pro Blogger, tak pro WordPress (výběr zabral cca půl dne). Po krátkém testu obou systémů bylo jasné, že s rozhraním Blogger.com kamarádi nebudeme, takže volba padla na WordPress.

Hostovaný, nebo vlastní?

Další volba zněla: využít nějaký veřejný blogovací systém, nebo vlastní instalaci? Veřejné blogovací systémy mají výhodu v tom, že se o ně nemusíte starat. Prostě jen píšete. O aktualizace, hosting atd. se stará někdo jiný (nebo taky nestará…) Na druhou stranu vás hodně omezuje např. co do možnosti rozšiřování, což ale byla pro mne podmínka sine qua non. (České blogovací systémy byly hned od počátku mimo hru – jsou to buď přílepky k online deníkům, nebo jsou zamrzlé v roce 2007 s nejistou budoucností.)

Nakonec tedy zvítězila volba „redakční systém, který si nainstaluju a budu spravovat sám“. Na výběr jsem měl Drupal nebo WordPress, s tím, že WordPress měl plus za existující šablonu. 

Další možnost ke zvážení byla použít „blogování verzovacím systémem“ či nějakou podobu „offline blogování“, kdy se lokálně vygenerované stránky kopírují někam na levný statický hosting. Nakonec jsem nenašel vhodný systém, s nímž bych byl ochoten do tohoto způsobu jít, a psát vlastní se mi v danou chvíli rozhodně nechtělo.

Předpokládal jsem, že blog bude česky pro české čtenáře, takže umístěn by měl být ideálně v ČR, nebo alespoň v evropských datacentrech. Mám hostované virtuální servery u Virtualmaster, ale ty používám spíš pro nějaké specialitky – CGI skripty, Python, CouchDB, Node.js… Na provoz redakčního systému v PHP se SQL databází mi to připadalo trošku nepatřičné.

Suma sumárum: WordPress nebo Drupal, umístění v ČR/EU, zvážit statické generování.

Důsledky

Myšlenka staticky generovaných stránek se mi líbila. Chtěl jsem využít Amazon S3, především kvůli bezkonkurenční ceně (stránky, které tam provozuji, jsou dostatečně rychlé a měsíčně platím něco okolo jednoho dolaru). Staticky generované stránky ale přinášejí některé odlišnosti od klasického online blogovacího systému.

Například komentáře. Přidání komentáře znamená přegenerování všech stránek, kterých se komentář týká (příspěvek, leckdy i indexová stránka). Naštěstí mám ke komentářům rezervovaný vztah, nepovažuju je za nezbytnou integrální součást každého webu, a rozhodně není pro mne jejich hodnota taková, abych na ně plýtval databází a výpočetním výkonem. Zvolil jsem tedy Disqus a komentáře „outsourcoval“. Případný flamewar nebo spamový útok tak nepoteče z „mých“ prostředků. Naštěstí jak Drupal, tak WordPress mají plugin pro Disqus.

Totéž platí pro ankety, a vlastně pro vše, co by nějak způsobovalo časté přegenerovávání stránek: Svěřit to externí službě.

Při výběru hostingu nakonec pomohla náhoda. Právě jsem testoval Webcloud od Ignum, tedy vlastně „cloudový LAMP“, a napadlo mě použít jej právě na tento účel (více informací v článku Tři nové cloudové hostingy z ČR). Vzhledem k cenové politice, kdy se platí „čistý čas procesoru při zpracování dotazů“, byly jasné dvě věci:

1. Bude potřeba razantně cachovat,
2. Bude potřeba snížit počet požadavků na minimum.

Tím se do hry vrátil Amazon S3, který „odhostuje“ statické stránky za několik korun měsíčně a uleví tím výrazně vlastnímu „výkonnému jádru“. Výsledné řešení tedy záleželo na tom, který systém nabídne lepší spolupráci s Amazon S3 (či jiným podobným úložištěm). Vítězem se nakonec stal WordPress, kde nalezení této podpory bylo otázkou několika minut (u Drupalu mi potřebný modul poradil až Jakub Suchý poté, co jsme se vůbec shodli na tom, co že vlastně hledám a proč).

Řešení

  • WordPress (aktuální) + plugin pro práci s CDN
  • Hosting redakčního systému ve WebCloud
  • Statický obsah (obrázky, skripty, styly, videa) publikované via Amazon S3
  • Funkce, které vyžadují přegenerovávání stránek (komentáře, ankety a další „feedback“), řešit pomocí externích služeb.

V této sestavě se WebCloud stará pouze o poslání HTML stránek z cache návštěvníkům a o administrátorské funkce (zadávání nových článků). Při návštěvách od uživatelů je naprostá většina dotazů uspokojena z Amazon S3 (datové centrum v Irsku), přes který je také přenesena většina dat. Rychlost přístupu k těmto datům je bez problémů srovnatelná s přístupem k datům v českých datacentrech, respektive rozdíl max. tří desítek ms není natolik výrazný, aby byl kvůli němu web „pocitově pomalejší“ a aby stálo za to platit vyšší cenu za hostování statického obsahu v ČR.

Realizace

Zvolil jsem aktuální verzi WordPressu (3.2.1.) – nabízí ji i „šablony“ ve WebCloud. Instalace trvala cca 20 minut od zadání požadavku do funkčního webu – mezitím jsem si připravil poddoménu „cdn“ a nasměroval ji (CNAME) na Amazon S3.

Základním pluginem, který jsem instaloval jako první, byl WP Super Cache. Tento plugin umožňuje jednak cachovat veškerý obsah, ale krom toho umí i spravovat „statický obsah na jiné doméně“. K němu jsem instaloval i CDN Sync Tool, tedy plugin, který umí dle potřeby uploadovat soubory do různých úložišť, včetně Amazon S3/CloudFront.

Z dalšího obrázku jsou patrné možnosti CDN Sync Tool – kromě zadání přístupových údajů k CDN umožňuje například i zpracování obrázků pomocí Smush.it nebo spojení skriptů a jejich minifikaci (zvolil jsem Google Closure Compiler)

Poznámka: Zvolil jsem Amazon S3 v režimu Reduced Redundancy Storage – nepovažuju osobní blog za tak důležitý, aby byl servírován z „opravdového CDN“ (CloudFront), a případné riziko ztráty dat, které s sebou RRS nese, je do velké míry eliminováno tím, že zdrojové soubory leží i na WebCloudu a lze je tedy kdykoli bez potíží nakopírovat znovu.

Logickým doplňkem pak byly pluginy jQuery CDN, Disqus, PollDaddy. RSS kanál pak je samozřejmě puštěný přes FeedBurner.

Zkušenosti

Po měsíci provozu jsem s celým „cloudovým blogem“ spokojený. Náklady jsou minimální, údržba nenáročná, výpadky nulové a samotné nastavení, zprovoznění, vyladění a zkušební publikování několika článků zabralo jedno sobotní odpoledne. Díky posílání statického obsahu a multimédií z Amazon S3 je zátěž samotného serveru u WebCloud minimální, rychlost webu je mnohem vyšší než např. při hostování u HostMonster, a to při srovnatelné ceně.

Komentáře

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

Ten webcloud od ignumu neni moc rychly…. page generated in 1.889 seconds.
Mohli byste take uvest na kolik tenhle pocin cenove prijde. Ignum bude dle mého názoru alespon 1tis rocne ale zalezi na navstenosti. Take by me zajimalo jakou ma web oldplayer.cz denni navstevnost.

Franta

Předně díky za praktický článek podložený nějakou konkrétní zkušeností.

Do jaké míry bylo v tomto případě použití „cloudu“ nutnost (jinak by to nešlo, je to optimální řešení) a do jaké míry to bylo „hraní si“ (vyzkoušet si různé technologie, které třeba později použiji jinde)? Dají se stanovit nějaká kritéria (návštěvnost, typ obsahu…), pro který web je vhodné toto řešení, pro který klasický webhosting a pro který třeba vlastní HW nebo virtuál?

Případová studie by měla testovat (nebo vytvářet) nějakou hypotézu – a ta mi tu právě trochu chybí. Tou hypotézou by mohlo být třeba „Cloud se vyplatí.“ nebo „Cloud se vyplatí v případě, že …“

K samotnému webu: líbí se mi vzhled, hodí se k obsahu. Ale jedna věc mě na něm rozčiluje – proč je ta tabulka „Shrnutí“ tak jiná? Celý web je hnědo červený a tohle je najednou modro bílé. Chápu, že závěrečné shrnutí je dobré nějak vypíchnout, ale tohle je vážně jako pěst na oko a neladí to se zbytkem stránky. Totéž je pole pro vkládání komentářů – ta bílá tam taky moc svítí.

P.S. Nechceš se někdy rozepsat i o příjmové stránce takového webu? (reklama, odkazy do obchodů) Mohla by to být zajímavá inspirace pro ostatní, zda se takovou cestou vyplatí jít, nebo zda je lepší takové weby/blogy brát jako neziskovou nadšeneckou záležitost.

plistiak

Ako natruc, práve keď som si prečítal článok a chcel sa pozrieť na http://www.oldplayer.cz, tak som dostával „503 Service unavailable“. Bola to chyba v konfigurácii alebo mal výpadok cloud?

koss43

Nechápu, proč to autor řeší tak složitě, nechci se dohadovat o každou korunu, ale můj hosting stojí 24 Kč měsíčně s DPH a WordPress sem měl nainstalovaný za 10 minut bez žádné extra konfigurace CDN apod.

Mě to přijde jak návod na to, jak dělat naprosto jednoduchou věc složitě. Proč bych probůh instaloval WordPress do Cloudu, když klasický hosting má cenu jednoho kafe z automatu???

František Kučera

Proto by právě bylo dobré do toho článku explicitně napsat, pro koho je určen (resp. pro koho je vhodné takovéhle řešení).

Spoléhat se na nějaké nevyslovené předpoklady, že lidi chápou a pak to použijí, nebo nechápou a pak to nepotřebují, mi přijde nešťastné. Protože někdo třeba „nechápe“ a přesto takové řešení potřebuje a někdo jiný si „myslí, že chápe“, ale do takového řešení se požene zbytečně a vůbec ho nepotřebuje.

koss43

Tohle je odpověď na můj dotaz, abych se trošku přiblížil, provozuji web IT Efektivně, a zabývám se efektivitou v IT – web shodou okolností mám na WordPressu, takže vím trošku o čem je tu řeč.

Za hosting platím 24 Kč měsíčně – nebudu mu tu dělat reklamu, a jak jsem vás pochopil, tak vy chcete ušetřit z 200 Kč měsíčně paušálu. T.j. místo toho platit za hosting 2.400 Kč ročně za něj platit nějakých 200 Kč ročně. Řekněme, že ušetříte 2.200 Kč ročně a na rozchození toho všeho vydáte 4 hodiny času, kdy byste mohl vydělat 200 Kč čistého na hodinu, tedy za 4 hodiny na rozchození tohodle vydáte 800 Kč. Pokuď to dobře počítám, tak se vám investice do toho vrátí za půl roku.

Jednoduše řečeno se to vyplatí u více webů, nikoliv u jednoho a to je důležitá informace, která mi v článku chyběla. Z pozice člověka, kterého zajímá finanční efektivita je to pro mě docela důležité – nebudu přeci plýtvat svým drahocenným časem.

Tohle mě u vás Martine často udivuje, že řešíte takové drobnosti, přičemž v IT běhají neskutečné peníze za „ptákoviny“. Občas to na mě dělá ten dojem, jako byste v IT nedělal v nějaké korporaci, nebo nepodnikal, ale jen teoretizoval. Můžete mi trošku přiblížit čím se vlastně živíte, docela by mě to zajímalo – tipuji si, že psaním článků :) Ne, že bych to chtěl shazovat, sem tam píšete opravdu velmi dobré články a kvalita písemného projevu je u vás vynikající (kéž bych to mohl říci o sobě), ale schází tomu nadhled někoho kdo v oboru opravdu dlouho dělá.

hugo antilopa

Těšíme se na úžasné články od Vás.

linyKun

Nac ta ironie, ja celkem ano. Jelikoz povazuji za lepsi clanky od cloveka z praxe nez od ‚akademika‘. Ale jinak je pan Maly sikovny autor, jen tento clanek mu proste nevysel.

jAM_jAM

Šlo by více rozepsat to s tou „jednou instalací RS“? Používáte WordPress MU?

jAM_jAM

Díky, to je přesně co jsem myslel.

Anonym

WordPress se má správně psát WordPress (velké P). V samotném WordPressu je na to dokonce i funkce, která to po uživatelích automaticky opravuje…

Michal

Ty musis mit docela dobrej mindrak kdyz mas zapotrebi tohle resit u takovyho clanku jako je tenhle..

Anonym

Díky, nejde o žádný mindrák, ani „nutkavé“ upozorňování na nějakou pravopisnou chybu, jen jsem nedávno četl o tom, že byla do WordPress speciálně přidána funkce pro tyto účely (automatická oprava malého na velké P) a vyvolala v komunitě poměrně rozsáhlé diskuze. A po zběžném projití Zdrojáku jsem si všiml, že je tu WordPress velmi často zmiňován právě s malým písmenem. A protože šlo o aktuální článek, tak jsem na to jenom upozornil…

w359

Vdaka, pekna pripadova studia. Po dlhsej dobe ma clanok pohol k nastudovaniu si „novych“ technologii na webe. Aj ked ich sam nepotrebujem.
Ale pripajam sa k diskutujucim (Franta Kučera) vyssie, nevyslovene predpoklady „je vhodne“ tiez uviest. Nemoze to uskodit a zvysi pouzitelnost uz aj tak skveleho clanku.

w359

Islo mi o to, co ste popisal vo svojej odpovedi: http://zdrojak.root.cz/clanky/wordpress-v-cloudu/nazory/20276/
T. j. kedy, pre koho a za akych okolnosti je taketo riesenie vhodne.

norbertlaposa

Myslim, ze reseni popsane v clanku nesplnuje zakladni pozadavky na cloud, tedy ze koncovemu uzivateli ma byt jedno na cem jeho aplikace fyzicky bezi a take, ze svoji aplikaci muze okamzite premistit/obnovit na jinem miste. Strucne receno byt nazavisly na poskytovateli. To co v clanku je popsano je reseni zavisle na systemech minimalne trech ruznych poskytovatelu. Splneni podminky nezavislosti si muzete overit jednoduchym testem kdy zkusite prejit na jineho poskytovatele, podobne jako s poskytovatelem elektriny.

Pokud je vas cloud primo napsany pro dejme tomu uloziste Amazon S3, tak je to jako byste mely svoje domaci elektricke spotrebice funkcni pouze s elekrinou od spolecnosti CEZ.

Viz: http://en.wikipedia.org/wiki/Cloud_computing
…that do not require end-user knowledge of the physical location and configuration of the system that delivers the services. Parallel to this concept can be drawn with the electricity grid, wherein end-users consume power without needing to understand the component devices or infrastructure required to provide the service.

Asi tezko memu klientovi vysvetlim, ze mu chci ulehcit zivot, tak mu nabizim cloud a kvuli tomu musi jit zaregistrovat a platit hosting Amazon S3 pro velke soubory, dale hosting WebCloud pro vypocetni vykon a jeste si davat pozor na zmeny podminek/konfi­gurace v dalsich CDN. To zcela urcite neni odprosteni koncoveho uzivatele od systemu na pozadi. Jakmile vaseho klienta oddelite od tech konkretnich systemu na pozadi a z jeho hlediska budete poskytovatelem vy a klient bude platit pouze vas, tak potom jste PRO KONCOVEHO KLIENTA TEN CLOUD PRAVE VY.

Doporucuji zamyslet se nad timto clankem:
http://blog.bytemark.co.uk/2011/11/03/the-cloud-is-your-install-script

František Kučera

Tohle je právě rozpor mezi tím „jak to je“ a „jak by to mělo být“. Bohužel současné marketingově-mediální pojetí „cloudu“ je proprietární jedinečná služba od konkrétního dodavatele. Souhlasím, že by to mělo fungovat jako ta elektřina, u které je jedno, zda ji beru od téhle firmy nebo od jiné, spotřebiče jsou kompatibilní. Ale bohužel tam ještě nejsme* a potrvá celkem dlouho, než tam budeme. Dneska se hodně firem snaží přesvědčit zákazníka, ať přenese svoje aplikace do jejich cloudu, zaváže se platit poplatky a už nikdy neodchází.

Ad „klient bude platit pouze vas, tak potom jste PRO KONCOVEHO KLIENTA TEN CLOUD PRAVE VY.“

Tady nesouhlasím. V takovém případě jsem v roli generálního dodavatele nebo systémového integrátora, ale ne poskytovatele cloudu.

*) i když existují světlé výjimky, pro které je důležitá otevřenost, jsou tu i různé iniciativy a organizace… hodně je to podporované ze světa svobodného softwaru (když už cloud, tak otevřený).

snajpa

Totalne tam chybi Relbit (http://relbit.com), cesko-slovenska zalezitost, na ktere WordPress jede bez jedine upravy.

volani.webnode.cz

Přijde složité a nepraktické.
Co použít něco českého, levného s multihostingem?
Jako třeba tohle:
http://jabb.im/4bj
http://jabb.im/4bk

Sám se přiznám k tomu že jsem BFU/lama a používám webnode (pravda od roku 2007 moc nových funkcí opravdu nepřibylo) a statický web dělaný hlavně v kompozeru se složitějšími prvky odjinud.
Vzhledem k tomu že často používám „možná archaický“ levý panel jako menu tak do pravého panelu cpu s oblibou všelijaké věci, jako galerie na rajčeti a podobně.. :)
Blueboard a vsevjednom se starají o diskuze a podobné vylomeniny (ankety mají buď už na freehostingu a nebo taktéž to co jsem zmiňoval).
Ještě se mi zdá zajímavý google sites, ale tam byl problém s doménou bez www na začátku.. :) na gug.cz to měli dělané přes hardlinky na jiném web serveru a přesměrované (pořád mi to vrtalo hlavou jak to udělali :D).
Teda pokud se něco nezměnilo ten google sites jsem zkoušel tak rok dozadu..

Také neívm co přímo nabízí wordpress jako služba a jaké to má omezení.. :)
V češtině si toho o těchto věcech pro BFU moc nepíše.

Velký problém s BFU a weby/blogy vidím také s RSS/atom čtečkami.. Není jich moc, natož kvalitních.

pravednes, rssmonitor, google reader, Mozilla Thunderbird..
Moc toho v češtině kvalitního opravdu není :(

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.