Zpět na blog

Evoluce webu: od CGI k Websocketům (a jak vám pomůže lépe monitorovat vaši cloudovou infrastrukturu)

Evoluce webu: od CGI k Websocketům (a jak vám pomůže lépe monitorovat vaši cloudovou infrastrukturu)

V posledních několika letech websockets se staly víceméně standardní součástí všech moderních webových aplikací, ale proč tomu tak je a jak jsme se sem dostali? Co je však nejdůležitější, jak vám mohou websockets pomoci efektivněji monitorovat vaši cloudovou infrastrukturu?

Vzhledem k technické povaze tohoto tématu je možné se ponořit velmi hluboko do detailů. Pokusím se však držet věci na relativně obecné úrovni a zaměřit se na přínosy pro uživatele naší cloudové infrastruktury.

Starý způsob, jak se věci dělaly

V počátcích webu bylo vše statické. Pokud jste potřebovali komunikovat se serverem (kromě vykreslení statické stránky), museli jste spustit nějaký CGI skript. Typickým příkladem toho bylo například přihlášení k odběru newsletteru. Zadáte svou e-mailovou adresu, stisknete „odeslat“ a poté se vám zobrazí samostatná stránka, která data zpracovala. To byl zase skript, který přijal vstup a zpracoval ho na serveru.

PHP Logo
Do 90. let se skriptování na straně serveru výrazně vyvinulo. Technologie se posunula od provádění jednoduchých úkolů k vytváření plně dynamických stránek. Programovací jazyky jako PHP, a pokročilejší technologie na straně serveru, jako je mod_perl, umožnily mnohem sofistikovanější webové programování. I když tyto technologie byly významné, stále se točily kolem konceptu generování stránky při načtení. Po načtení musel člověk pro obnovení obsahu znovu načíst celou stránku.

Jak se web vyvíjel, vstoupili jsme do AJAX/Web 2.0-éry let ’00, webové stránky se staly mnohem dynamičtějšími a responzivnějšími. Už jste nemuseli znovu načítat stránku, abyste aktualizovali obsah na obrazovce. Stačilo jen spustit nějaké akce v JavaScriptu. Mnoho AJAXových stránek bylo stále poháněno PHP, ale s příchodem JavaScriptu na straně klienta mohly být ještě dynamičtější.

Představení AJAXu

S příchodem AJAXu nabývala na významu neustálá komunikace mezi serverem a klientem. Najednou jste mohli mít značné množství volání API generovaných od jednoho uživatele na dané stránce. To se provádí způsobem „pull“, což znamenalo, že klient požadoval aktualizace ze serveru v určeném intervalu (nebo na základě nějaké akce).

S příchodem let ’10 bylo běžné, že webové stránky byly zcela rozděleny na front-end (HTML/JavaScript/CSS) a back-end (Ruby on Rails, Django atd.), který byl často hostován na jiných serverech. Způsob, jakým front-end komunikoval s back-endem, byl prostřednictvím API. Front-end byl víceméně statický. S tímto trendem se volání API na server stalo významným úzkým hrdlem. Pokud jste potřebovali ze serveru načíst deset různých věcí, často to znamenalo, že jste museli provést deset různých volání API, přičemž každé volání s sebou neslo značnou režii a latenci.

Moderní způsob

HTML5 LogoK vyřešení tohoto problému s latencí a režií byly v rámci HTML5 představeny websockets a implementovány do všech moderních prohlížečů. Na rozdíl od tradičního přístupu „pull“ (tj. klient se dotazuje serveru na změny) je websocket, jak už název napovídá, socket, kde může server „tlačit“ (push) změny klientovi. Pokud tedy nedojde k žádným změnám, není nutná žádná komunikace. Navíc, protože klient může komunikovat přímo se serverem bez dodatečné režie spojené s otevíráním a zavíráním připojení, stává se aplikace mnohem responzivnější.

Přesně takto je postavena i naše vlastní web application . Samotná aplikace je statická stránka, která otevírá websocketové připojení k API. Jakmile je tento socket otevřený, webová aplikace může přijímat oznámení o změnách ze serveru. Příkazy stále odesíláme do RESTful API, ale oznámení ze serveru klientovi posíláme (push) pomocí websocketu.

Nejen pro webové stránky

Zatímco nejzřejmějším případem pro příjem aktualizací pomocí websocketu je prohlížeč, existují i jiné případy. Možná píšete nástroj, který monitoruje změny ve vaší architektuře a na základě toho spouští akce. V takovém případě můžete svou aplikaci výrazně zrychlit využitím našeho websocketu.

V naší Python knihovně, pycloudsigma, máme vestavěnou podporu pro websockety. Máme dokonce i jednoduchý příklad, jak to můžete využít k monitorování aktivit websocketu pomocí pouhých několika řádků kódu. Zde je rychlá ukázka monitor_websocket_activity.py monitorující akce spuštěné uživatelským vstupem ve webové aplikaci.
Pro více informací o našich službách se podívejte na naše Funkce.

author

Viktor Petersson

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.