Technologie užívané při vývoji velkých e-shopůPeckaDesign.cz
Aby e-shop dokázal obsloužit stovky nebo tisíce požadavků za minutu, musí jeho programátoři vědět, co dělají. Nevystačí si jen se základními znalostmi PHP a MySQL, ale je potřeba využít širší portfolio technologií a technik, které mu zaručí jak dostatečný výkon, tak efektivitu řešení. Představím vám náš technologický stack, díky kterému jsme na špici." - Milan Pála
Poznáte nejaké HTTP hlavičky? Určite áno. A viete aj že niektoré tieto hlavičky zvyšujú bezpečnosť webu? Nie? V tom prípade sa uvidíme, pretože sa budeme rozprávať o kadejakých hlavičkách, ktoré spravia web bezpečnejší.
Tomáš je informatik, fotograf, športovec ale vo svojej podstate bezpečnostný paranoik, ktorý nemá prelepenú webkameru na notebooku.
Technologie užívané při vývoji velkých e-shopůPeckaDesign.cz
Aby e-shop dokázal obsloužit stovky nebo tisíce požadavků za minutu, musí jeho programátoři vědět, co dělají. Nevystačí si jen se základními znalostmi PHP a MySQL, ale je potřeba využít širší portfolio technologií a technik, které mu zaručí jak dostatečný výkon, tak efektivitu řešení. Představím vám náš technologický stack, díky kterému jsme na špici." - Milan Pála
Poznáte nejaké HTTP hlavičky? Určite áno. A viete aj že niektoré tieto hlavičky zvyšujú bezpečnosť webu? Nie? V tom prípade sa uvidíme, pretože sa budeme rozprávať o kadejakých hlavičkách, ktoré spravia web bezpečnejší.
Tomáš je informatik, fotograf, športovec ale vo svojej podstate bezpečnostný paranoik, ktorý nemá prelepenú webkameru na notebooku.
Jak si (ne)nechat hacknout Wordpress stránky - How to have unhackable WordPre...Michal Kubicek
What may make the owner of the site as a user pages on the WordPress platform for it to become a victim of a successful hacker attack, as the simplest way to protect your website against malware attacks, spambots and other vermin. Examples from practice and a more or less successful stories of what can happen when ...
Skrz.cz hlídá každé uživatelovo prohlédnutí nabídky. Jsou to miliony pidirequestů denně. Použít PHP-FPM by znamenalo zbytečně další server(y). ReactPHP díky asynchronnímu IO dovoluje s minimálními nároky zpracovávat tisíce req/s. Nechtěli jsme se vzdát Symfony, a tak vznikl bridge mezi Symfony a asynchronním světem ReactPHP.
Nastavení autentizace prostřednictvím Shibbolethu v systému DSpace.
Chcete vědět víc? Mnoho dalších prezentací, videí z konferencí, fotografií i jiných dokumentů je k dispozici v institucionálním repozitáři NTK: http://repozitar.techlib.cz
Would you like to know more? Find presentations, reports, conference videos, photos and much more in our institutional repository at: http://repozitar.techlib.cz/?ln=en
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...Security Session
Na workshopu si ukážeme základní zabezpečení nově nainstalovaného serveru pomocí iptables. Instalaci a nastavení Fail2Ban tak, aby sledoval logování SSH přístupů a při neoprávněném pokusu o příhlášení zablokoval IP adresu útočníka. Vyzkoušíme si i honeypotu, který nám pomůže útočníka zdržet. Nastíníme sledování logů jiných služeb, získávání blacklistovaných IP z abuse trackerů a povíme si i další tipy jak znepříjemnit atakování serveru.
Pokud chcete jako vývojáři ulehčit práci ostatním, nejdřív ulehčete práci sobě. Deployment aplikace nemusí být voser, dá se řešit bez výpadku a existují služby a nástroje, které k tomu pomohou. Podíváme se na nastavení automatizovaných testů, oťukneme Docker a nasadíme automaticky aplikaci do clusteru v AWS.
Jak si (ne)nechat hacknout Wordpress stránky - How to have unhackable WordPre...Michal Kubicek
What may make the owner of the site as a user pages on the WordPress platform for it to become a victim of a successful hacker attack, as the simplest way to protect your website against malware attacks, spambots and other vermin. Examples from practice and a more or less successful stories of what can happen when ...
Skrz.cz hlídá každé uživatelovo prohlédnutí nabídky. Jsou to miliony pidirequestů denně. Použít PHP-FPM by znamenalo zbytečně další server(y). ReactPHP díky asynchronnímu IO dovoluje s minimálními nároky zpracovávat tisíce req/s. Nechtěli jsme se vzdát Symfony, a tak vznikl bridge mezi Symfony a asynchronním světem ReactPHP.
Nastavení autentizace prostřednictvím Shibbolethu v systému DSpace.
Chcete vědět víc? Mnoho dalších prezentací, videí z konferencí, fotografií i jiných dokumentů je k dispozici v institucionálním repozitáři NTK: http://repozitar.techlib.cz
Would you like to know more? Find presentations, reports, conference videos, photos and much more in our institutional repository at: http://repozitar.techlib.cz/?ln=en
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...Security Session
Na workshopu si ukážeme základní zabezpečení nově nainstalovaného serveru pomocí iptables. Instalaci a nastavení Fail2Ban tak, aby sledoval logování SSH přístupů a při neoprávněném pokusu o příhlášení zablokoval IP adresu útočníka. Vyzkoušíme si i honeypotu, který nám pomůže útočníka zdržet. Nastíníme sledování logů jiných služeb, získávání blacklistovaných IP z abuse trackerů a povíme si i další tipy jak znepříjemnit atakování serveru.
Pokud chcete jako vývojáři ulehčit práci ostatním, nejdřív ulehčete práci sobě. Deployment aplikace nemusí být voser, dá se řešit bez výpadku a existují služby a nástroje, které k tomu pomohou. Podíváme se na nastavení automatizovaných testů, oťukneme Docker a nasadíme automaticky aplikaci do clusteru v AWS.
Microservice Stategies - Scaling your API design workflowJakub Nesetril
Across the 200,000+ APIs we've seen at Apiary, here are 5 simple lessons on what to watch out for when switching to micro services.
First presented at SF Microservices meetup on May 19th, 2016.
Miroslav Bajtoš - Nativní async/await v Node.js - už tam jsme?Develcz
Pouze dvě nová klíčová slova, a tolik nadšení! Co je async/await, proč je to v Node.js komunitě tolik očekáváno? Jak postupuje implementace a jaký je současný stav? V přednášce se dozvíte nejenom odpovědi na tyto otázky, ale taky praktické rady jestli, kdy a jak začít používat async/await už dnes.
K čemu je deployment? Proč automatizovat? Kdo to vyřeší za vás? Jak začít? Jak to dělat ve velkém? V přednášce si ukážeme na problematice nasazení jednoduché PHP aplikace (Wordpress) jak to jde dělat a ukážu v čem jsou úskalí a na čem je potřeba pokud máte heterogenní prostředí jako u nás v LMC (Jobs.cz, Prace.cz). Apllication deployment (capistrano, fabric, cfengine, controltier) a configuration management (bcfg2, pupper, chef, cfengine, lcfg) jsou hlavní oblasti o kterých budeme mluvit.
#golang @SkrzCzDev (Skrz DEV Cirkus 21.10.2015)Jakub Kulhan
Go se @SkrzCz používá pro výkonově nejnáročnější části aplikaci. Jedna z nich je servírování bannerů a výběr těch správných reklam do nich. 1000 req/s v peaku a "adbandit" má minimální nároky na server. Podívejte se, jak použít Go ve spolupráci s ReactPHP a RabbitMQ.
9. Proč WebSockety v PHP a ne v něčem
vhodnějším, třeba node.js?$
$
Pokud máte už běžící aplikaci, tak
napsáním WS funkcionality v PHP budete
těžit z jednotné codebase, využití znalostí
týmu a stejných procesů na testování,
continuous integration, build a deployment.$
$
Pokud stavíte na zelené louce a chcete se
naučit něco nového, tak vás do PHP nutit
nebudu :)
16. use
RatchetHttpHttpServer;
use
RatchetServerIoServer;
use
RatchetWebSocketWsServer;
use
ReactEventLoopFactory;
use
ReactSocketServer;
$
$loop
=
Factory::create();
$server
=
new
Server($loop);
$server-‐>listen(8080,
'0.0.0.0');
$
new
IoServer(
new
HttpServer(new
WsServer($app)),
$server
);
$
$loop-‐>run(); Spuštěný proces spravujte např. pomocí
supervisord.org, aby stále běžel.
17. use
RatchetConnectionInterface
as
Client;
$
class
App
implements
RatchetMessageComponentInterface
{
$
public
function
onOpen(Client
$client)
{
$
}
$
public
function
onMessage(Client
$client,
$message)
{
$
}
$
public
function
onClose(Client
$client)
{
}
$
public
function
onError(Client
$client,
Exception
$e)
{
$
}
$
}
18. public
function
onMessage(Client
$client,
$message)
{
foreach
($this-‐>clients
as
$c)
{
if
($c
!==
$client)
{
$c-‐>send($message);
}
}
}
Rozeslání zprávy
na ostatní klienty
19. Při navázání spojení
pošlete klientovi
počáteční stav
Např. posledních 10 zpráv v chatu. Pokud
byste počáteční stav nepotřebovali, tak vlastně
nepotřebujete ani žádné úložiště na data.
20. Časovače
$loop-‐>addTimer(5,
function()
{
//
za
pět
sekund
});
$
$loop-‐>addPeriodicTimer(5,
function()
{
//
každých
pět
sekund
});
Na odpojení uživatele při neaktivitě, na zasílání
pingu pro udržení připojení. Časovače jsou jen
v paměti, po pádu a obnovení procesu
je musíte zrekonstruovat.
22. use
RatchetServerFlashPolicy;
use
RatchetServerIoServer;
use
ReactSocketServer;
$
$server
=
new
Server($loop);
$server-‐>listen(843,
'0.0.0.0');
$policy
=
new
FlashPolicy();
$policy-‐>addAllowedAccess('*',
8080);
$
new
IoServer($policy,
$server);
$loop-‐>run();
FlashPolicy
23. Long polling
AJAX fallback, který funguje všude$
POST požadavky pro odchozí zprávy$
Stream příchozích zpráv přes dlouhodobý
GET požadavek$
xhr.responseText &
xhr.onreadystatechange
25. Ratchet neumí SSL (wss://)$
Webserver může fungovat jako proxy,
která zabezpečenou komunikaci zajistí$
Webserver může WebSockety poskytnout
na klasických portech (80 a 443) –
např. na subdoméně$
Apache – mod_proxy_wstunnel