On Sun, Oct 28, 2018 at 10:11 PM Petr Messner <petr.mess...@gmail.com> wrote:
> pá 26. 10. 2018 v 23:23 odesílatel starenka . <staren...@gmail.com> > napsal: > >> Appka sama o sobe nemuze bezet dvakrat z duvodu, ktery tady nechci >> rozebirat (ve zkratce taha to data, ktery sou stream a nemuzu se tam >> pripojit vickrat a zaroven je blby kdyz kus dat ztratim. Ty data se pak >> zpracovavaji zpusobem dost narocnym na zdroje pres rq, takze i tim musim >> setrit, aby to na ty masine vubec jelo +- realtime). >> > > Nevím, o co přesně jde, můžeme se o tom pobavit na Pyvu :) Ale obecně se v > těhle případech snažím ten “síťový” problém oddělit do samostatné, co > nejminimalističtější komponenty (procesu), a na to pak navázat už nějak > normálně, aby to odpovídalo “standardům mojí infrastruktury”. > > Příklad: mám aplikaci, která hodně používá websockets. A já chci, aby ta > spojení byla co nejstabilnější, např. aby se neresetovala, když nasadím > novou verzi aplikace. Samozřejmě bych toho klienta měl mít udělaného tak, > aby zkoušel reconnect, ale i to chci pokud možno minimalizovat. Tak jak to > teda udělám, abych mohl nasadit novou verzi aplikace a ty websockety to > nejen neshodilo, ale aby se dokonce “přesunuly” na tu novou verzi? Tak, že > tu aplikaci rozdělím na “vstupní část”, která skoro nic nedělá, jen udržuje > ta spojení a poskytuje nějaké úplně low-level API pro tu “aplikační část”, > která teprve obsahuje nějakou business logiku. A cílem je při nasazování > nové verze nasazovat jen tu aplikační část, a naopak minimalizovat hýbání s > tou síťovou částí. U klasických webových aplikací tuto roli hraje v > podstatě load balancer, a ten vlastně taky obvykle bývá “mimo” (hlavně v > cloudu). > > Python je na tohle použití super, mj. díky asyncio. Ale dá se to napsat i > v C/C++ za použití libuv, zmq apod. a na to pak navázat v Pythonu. > > No a tu aplikační část bych dal klidně do kontejneru, ale tu “low-level > síťovou část” bych spíš nechal mimo (klidně i na jiném VM/hardware). > > Tohle se vůbec nemusí týkat Stařenky, jen píšu svůj pohled na věc :) > Take to takhle delim na vstupni vs "aplikacni" cast, ja takhle hlavne resim vstupy typu UDP kde je prvni super tenka vrstva ktera jen cte a preposila do solidnejsiho uloziste (typicka kafka). Vubec bych se ale nebal tohle vsechno bezet v dockeru, nemam rad michani raw OS veci a dockeru a ani k tomu neni duvod, i databaze provozujeme v dockeru, jen je potreba samozrejme ohlidat napojeni volumes aby to melo primy pristup k disku a ne tu docker storage hybrid nad tim. > PM > > > -- > -- > E-mailová skupina django-cs@googlegroups.com > Správa: http://groups.google.cz/group/django-cs > --- > Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny > „django-cs“ ve Skupinách Google. > Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, > zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com. > Chcete-li tuto diskusi zobrazit na webu, navštivte > https://groups.google.com/d/msgid/django-cs/CAK9Q5BQE1x0-uGDS5E5H1JSUYh7dhMeOaJD%2Bwr%3DNTpJWpEwRxg%40mail.gmail.com > <https://groups.google.com/d/msgid/django-cs/CAK9Q5BQE1x0-uGDS5E5H1JSUYh7dhMeOaJD%2Bwr%3DNTpJWpEwRxg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > Další možnosti najdete na https://groups.google.com/d/optout. > -- -- E-mailová skupina django-cs@googlegroups.com Správa: http://groups.google.cz/group/django-cs --- Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs ve Skupinách Google. Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com. Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/CADoCwr1m-aG-A_Euivo15AOM2KjR_kBmkT7gvDXr86wtJtmBYQ%40mail.gmail.com. Další možnosti najdete na adrese https://groups.google.com/d/optout.