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

Zdroják » PR Články » Stavíme vysoce dostupné webové stránky za 25 korun měsíčně

Stavíme vysoce dostupné webové stránky za 25 korun měsíčně

Články PR Články

Platforma Microsoft Azure nabízí vysoce dostupný hosting webových stránek v cloudu. Tato služba obsahuje i tarify, jejichž měsíční cenovka je 0 Kč. Nyní si ukážeme, jak takový hosting zprovoznit a doplnit ho o řešení CDN (Content Delivery Network). To nám umožní na stránky přivést bezpečně více návštěvníků bez dopadu na jejich odezvu a dostupnost, a to za cenu více než přijatelnou.

Úvod

Microsoft Azure nabízí předplatné a tarif pro hosting webových stránek, který je zcela zdarma. Má samozřejmě minoritní omezení, jako je 60 minut procesorového času, 165 MB datového přenosu na den a nemožnost provozovat zde umístěný obsah na vlastní doméně. Ale pokud využijeme umístění našich stránek na Azure CDN, která umožňuje užití vlastní domény a vysokou dostupnost a odezvu i při návštěvnosti v řádech statisíců, tato omezení padnou. Navíc provoz v rámci CDN je velmi levný. Například s více než 50 000 zobrazeními měsíčně se stále ještě vejdeme do ceny 25 Kč měsíčně. Detaily cenové rozvahy najdete v závěru tohoto článku.

Takto popsané řešení nebude fungovat pro plně dynamický obsah, jakým je například blog nebo webová aplikace, ale většina webových stránek je relativně malá a vyskytuje se na nich jen statický obsah. Příkladem mohou být stránky malých podnikatelů, obchodní vizitky, produktové stránky a katalogy. Ovšem není problém také využít větší z dostupných plánů, přihodit do košíku nám blízkou databázi jako SQL nebo MySQL a povolit skripty PHP či jazyk .NET pro naši aplikaci. Nebo rovnou využijeme připravenou šablonu systémů jako WordPress nebo Orchard a během několika minut je naše webová prezence online a připravena na stovky tisíc návštěvníků.

Společně projdeme následujícími kroky:

  1. Vytvoříme hosting v cloudu v rámci tarifu zdarma.
  2. Vytvoříme CDN pro náš obsah a nasměrujeme ji na náš hosting.
  3. Připojíme vlastní doménové jméno obsahu v CDN.
  4. Rozešleme informaci o našich stránkách světu.

Pusťme se do toho.

Ukázkový web

Pro ukázku funkčnosti našeho řešení budeme potřebovat webový obsah, který chceme návštěvníkům zobrazovat. Využít můžete samozřejmě obsah ryze vlastní, případně námi připravené demo ukázky dostupné ke stažení na https://github.com/TeamSpark-Learning/VSO-Deploy-WebApp-HTML-01/archive/master.zip. Co je obsahem našeho archivu:

  • web.config – Soubor obsahující konfiguraci webového serveru. Jeho existence není nutná, ale doporučená. S jeho pomocí můžete měnit chování webového serveru, například preferenci HTTPS, přesměrování, chyby 404 a další, podobně jako se soubory httpd.conf nebo .htaccess.
  • index.html – Hlavní stránka našeho webu. Tato bude zobrazována jako výchozí, pokud uživatel stránku navštíví.
  • about.html – Další stránka webu. Slouží pro ukázku, že hypertextové odkazy fungují v pořádku.
  • yoda.jpg – Ukázkový obrázek. Síla je s námi a zobrazení grafiky na našem webu funguje.
  • main.js – Protože nepoužíváme skripty na straně serveru, můžeme použít a otestovat skripty na straně návštěvníka.
  • main.css – Prezentuje grafický styl našeho webu a slouží k otestování, že i s kaskádovými styly není problém.

Vytváříme nový web v Microsoft Azure

Pro vytvoření nového webu potřebujeme předplatné služeb Azure. Toto předplatné je pouze účtem, podobně jako máte účet u svého oblíbeného prodejce online muziky. Pokud si žádnou muziku nepřehráváte, nic neplatíte. V případě, že jste student, můžete v programu DreamSpark předplatné získat zcela zdarma i pro některé placené služby formou pravidelného kreditu. Pokud předplatné nemáte, můžete si registrovat zkušební verzi na 30 dní na stránkách https://azure.microsoft.com/en-us/trial/free-trial-open-source a získat kredit 200 dolarů i pro ostatní služby. Během registrace zkušební verze je nutné ověřit telefonní číslo a platební kartu. Ovšem nebojte se, nebude vám stržena byť jediná koruna.

Jakmile máme aktivované předplatné, můžeme navštívit administrační portál na adrese https://portal.azure.com/.

Zde vybereme založení nové služby tlačítkem plus a zvolíme kategorii Web a Mobile. Zde pak vybereme Web App.

image00

V nabízeném formuláři vyplníme následující pole:

  • App Service Name – Název našeho webu. Musí být unikátní napříč všemi zákazníky platformy Azure. Může být náš jedinečný identifikátor. Po založení služby Azure přiřadí doménové jméno třetího řádu ve tvaru $nazev_naseho_webu.azurewebsites.net. Ovšem nebojte, na závěr přiřadíme skutečné doménové jméno.
  • Subscription – Pokud bychom měli více předplatných, můžeme zde vybrat, vůči kterému by byl běh služby fakturován.
  • Resource Group – Název skupiny zdrojů naší webové aplikace. Neovlivňuje chování technické části, ale dovoluje umístit všechny potřebné zdroje k jedné aplikaci do virtuálního kontejneru. Ten pak mohu například na dálku vypínat a zapínat, škálovat a další.

Kliknutím na App Service Plan / Location se posuneme na další stránku průvodce.

image02

V rámci servisního plánu můžeme vytvářet opět skupiny aplikací či jejich instancí, které spolu logicky souvisí, jsou jednotně fakturovány, případně se nalézají ve stejném regionu. Všechny Azure služby běží z datových center v jednotlivých regionech, jako je Amerika, Evropa, Japonsko a další. Výběrem regionu přiblížíme obsah uživatelům daného regionu.

My zvolíme možnost vytvoření nového plánu volbou Create New. V novém okně se objeví volba názvu plánu, který by měl být opět unikátní. Regionu, kde volíme západní Evropu a Pricing Tier.

image01

Zde přepnutím na plné zobrazení vybereme plán Free, tedy zdarma.

image04

Potvrzením tlačítkem Select na dolní části formuláře potvrdíme naši volbu a zpětně pomocí tlačítka OK potvrzujeme dosud zadané volby a tlačítkem Create se začne s vytvářením webové instance pro naše stránky.

Tato akce většinou trvá minutu či dvě. Nemusíte se lekat, že Azure lze řídit jen z webové konzole. K dispozici je řada automatizačních nástrojů a pomocí PowerShellu dokážete celou akci provést i jen z příkazové řádky.

Nasazujeme obsah pomocí FTP

Stejně jako u každého jiného hostingu potřebujeme náš obsah dostat online. K dispozici je opět celá řada metod, ale použití protokolu FTP je jedna z nejsnadnějších.

V prvním kroku musíme na námi vytvořené aplikaci nastavit přihlašovací jméno a heslo pro možnosti publikace obsahu přes FTP. Zvolíme Settings a v části Deployment Credentials nastavíme potřebné.

POZOR! Uvedené údaje jsou používány pro všechny aplikace a FTP přístupy ve vašem předplatném. Držte je tedy v bezpečí!

image03

Nyní potřebujeme znát název FTP hostitele, ke kterému se musíme připojit, abychom mohli náš obsah nahrát. Opět v menu Settings naší webové aplikace nyní vybereme Properties. Zde najdeme dvě důležité hodnoty: FTP Host Name a FTP Deployment User.

image06

Nyní můžeme použít našeho oblíbeného FTP klienta pro nahrání obsahu webu na server. Například FileZilla nebo Total Commander. Po zadání hostitele, jména a hesla je umožněno připojení. Je nutné potvrdit certifikát, neboť je používáno zabezpečeného a šifrovaného FTPS spojení, což jste jistě očekávali.

image05

Pak již jen nahrajeme samotné soubory. Lokální disk počítače nalevo, hosting napravo. Nahrané soubory musí jít do adresáře wwwroot v adresáři site. Ostatní složky obsahují logy, výstupy analytických nástrojů nebo nástrojů automatizačních, které můžeme také volitelně použít. Například trasování chybových stránek, měření výkonu webové aplikace a její odezvy. Vymažeme výchozí hostingstart.html a zkopírujeme obsah našeho webu.

image08

Abychom se ujistili, že vše funguje v pořádku, ověříme, co uvidí uživatelé, kteří web navštíví. Z menu Properties vybereme Browse.

image07

Pokud vše funguje správně, zobrazí se naše testovací stránka nebo obsah, který jste si vytvořili. Pokud je vše v pořádku, budeme pokračovat dále.

image11

Vytváříme CDN

Pro vytvoření CDN v hlavní části portálu https://portal.azure.com/ vybereme služby Media + CDN a následně samotnou CDN.

image09

Opět se otevře průvodce vytvořením služby, kde tentokrát volíme:

  • Name – Název naší CDN. Musí být opět unikátní.
  • Location – Region datových center, kde bude uloženo základní nastavení a primární zdroje CDN. Je výhodné zvolit stejný region jako region našich stránek, tedy západní Evropu.
  • Resource Group – Název skupiny zdrojů, pro logické spojení více služeb. Můžeme vybrat skupinu, kterou jsme si vytvořili v předchozím kroku.
  • Pricing Tier – Zde volíme konkrétní plán, podle kterého bude provoz služby účtován. Našim účelům plně postačuje Standard.
  • Subscription – A opět vybíráme předplatné, vůči kterému bude prováděna fakturace.

Tlačítkem Create naši volbu potvrdíme a počkáme několik minut na vytvoření CDN.

Konfigurace CDN

CDN vytvořenou v předchozí části potřebujeme dále nastavit, aby návštěvníkům nabízela námi chtěný obsah. Jakmile je CDN hotova, v její administraci zvolíme přidat Endpoint.

image10

V průvodci vybereme a vyplníme to podstatné:

  • Name – Unikátní název obsluhovaného URL.
  • Origin Type – Typ URL, pro které CDN slouží. Nám postačí zvolit Custom Origin.
  • Origin Hostname – Název našeho webu, který jsme získali z předchozího kroku.
  • Origin Path – Ponecháme beze změny.
  • Origin Host Header – Opět uvedeme název našeho webu.
  • Protocol – Povolíme přenos po HTTPS i HTTP pro naše stránky.

Potvrdíme volbou Add. Přidání jednotlivého URL chvilku trvá a výsledky se projeví do následujících 60 minut.

Připojení doménového jména

Posledním krokem pro dobrou uživatelskou zkušenost je připojení vlastního doménového jména domény druhého řádu.

image12

V rámci naší CDN zvolíme její URL a přidáme opět z menu Endpoints přidání Custom Domain a vepíšeme název naší domény. Tento postup vyžaduje ověření, že dané doménové jméno vlastníte pomocí vytvoření CNAME záznamu v DNS vaší domény. Daný CNAME musí směřovat na aktuální URL vytvořené CDN. Nezapomeňte, že změny v DNS se mohou propagovat notnou chvíli od jedné minuty až po 48 hodin.

Závěr

Nyní můžeme přistoupit k našim stránkám hned z několika adres:

  • aboyko-demo-site.azurewebsites.net – Název, který byl na začátku alokován pro naši webovou stránku. Pokud použiji toto jméno, odebírám z mého předplatného zdarma limit odchozího provozu.
  • aboyko-demo-site.azureedge.net – Název, který byl alokován pro CDN. Přístup z této adresy neodebírá kredit z webové stránky, ale vyžaduje platbu za přenos v CDN.
  • cdn-demo.testing.in.ua – Je synonymem pro adresu z mojí CDN, která je přístupnější pro uživatele i SEO.

A nyní se podívejme po finanční stránce tohoto nastavení. Za co budeme platit?

  1. Azure Web App – Vytvořili jsme web v rámci varianty zdarma. Cena je tedy 0 Kč měsíčně.
  2. Azure CDN – Platíme za přenos v rámci CDN. Cena za přenos jsou zhruba 2 koruny měsíčně za 1 GB přenesených dat.
  3. Internetová doména – Doménové jméno jsme zakoupili zvlášť a zde jej nezapočteme.

Platit tedy budeme pouze za přenos v rámci CDN. Velikost běžné stránky se pohybuje řádově do 0,2 MB. Jaký tedy bude výsledek, pokud stanovíme rozpočet 25 Kč měsíčně?

25 / 2 / 0,0002 = 62 500

Jinými slovy za 25 Kč si mohu dovolit zhruba více než 65 000 zobrazení našich stránek měsíčně bez dopadu na jejich dostupnost, výkon mého serveru či čas věnovaný údržbě. Ale co je nejlepší, pokud před Vánoci zaznamenám nárůst návštěvnosti na dvojnásobek, tedy více než 130 000 návštěvníků, zaplatím místo 25 Kč jen korun 50.

Tento článek je volným překladem textu Cloud hosting for a static web site for less than $1/month, jehož autorem je Anton Boyko.

Mnoho štěstí s vaší cestou do cloudu.

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.