Možná se na to můžeme podívat ještě z větší dálky :) Ať už chceme, nebo ne,
tak Python je na webu minoritní platforma oproti PHP a Node.js. Myslím si,
že ve snahách okolo deploymentu bude rozumnější dívat se na obecnější
technologii spíš než na Python-only řešení. A díky kontejnerům takové
technologie existují. Mám tím na mysli "lehké" hostingy typu now.sh,
hyper.sh, a pak cloudové služby GCP Kubernetes Engine, AWS Fargate... Např.
stačí dodat kontejner, který na nějakém portu poslouchá přes HTTP a je
jedno, jestli uvnitř běží Python nebo cokoliv jiného. Vy jako vývojář
řešíte kontejner (resp. image), cloud za vás řeší spouštění, škálování,
bezešvý deployment, CI, staging, logování, zálohování... Pokud nemáte rádi
cloud, tak to může být i nějaké udělátko běžící na vašem železe.

Ještě to teda není v ideálním stavu, teprve to všechno vzniká a
krystalizuje. Tak se aspoň přinejmenším můžeme dívat :)

Uvedu příklad: dělám komunitní web typu pyworking.cz. Teď děláme trochu
redesign a chci někde publikovat rozpracované verze, aby se na to mohli
podívat ostatní, ale nechci to ještě nasazovat naostro. Pokud nad tím
přemýšlím "klasicky", tak mi někde na serveru jede aplikace (ať už
gunicorn, gunicorn v dockeru, mod_wsgi...) a nějak nakonfigurovaný
webserver a kdybych chtěl pustit další verzi webovky, tak musím
přidat/upravit konfiguraci, něco nového spouštět... No a nebo to, co mám v
aktuálním adresáři rozpracované, vypublikuju na now.sh jediným příkazem a
dostanu URL, na které se to za půl minuty objeví. Toto si klidně můžu
napojit i na CI a publikovat každý pull request například. Jediné, co je
potřeba, je krátký Dockerfile, ve kterém se akorát spustí gunicorn. Nikam
se nepřihlašuju přes SSH (takže neřeším Putty ani SCP), nevytvářím na
serveru venv (to dělá ten Dockerfile, ale tomu já nakonec ani nemusím až
tak rozumět), nic nereloaduju (protože se při každém nasazení spouští nový
kontejner).

Nejlepší na tom je, že takový deployment je obecný (tj. ne jen pro Python)
a zároveň jednodušší, než Python "standard" (šolichání s venvy,
supervisory...). Nevýhodou je, že to je pár vrstev navíc, které buď
zaplatíte v cloudu, nebo se trochu zapotíte při setupu na vlastním železe,
ale to je doufám jen otázka času.

Co si o tom myslíte? :)

PM

Dne 26. ledna 2018 13:22 Jachym Cepicky <[email protected]>
napsal(a):

> No, já nad tím uvažuju spíš nějak jako
>
> - docker s gunicorn
> - apache/jinej httpd server na přesměrování portů
>
> tím se docílí dost zapouzdření, možnosti testování, přepínání instancí
>
> vlastně se divím, že ten docker tady zatím nepadnul
>
> P.S: Jardův dotaz byl, počítám, inspirovaný nějakým zadáním ze školy, ale
> posunuli jsme to trochu víc akademickým směrem a já jsem za to rád, vlastně
> ani na konferách tohle zatím nikdo nerozebral z různých úhlů - max. tak
> ještě téma "takhle to máme, je to nejlepší řešení na všechno a všichni na
> to hned přejděte"
>
> pá 26. 1. 2018 v 12:52 odesílatel Ales Zoulek <[email protected]>
> napsal:
>
>> > - proč supervisord a ne systemd? Síla zvyku/již hotová infrastruktura,
>> nebo systemd nepoužíváte úmyslně?
>>
>> Zaprve kterykoliv z nich je fajn. (Podobne jak klidne jinej webserver,
>> nebo jak pise starenka prohodit gunicorn.) Prave proto, mame ty vrstvy
>> oddeleny :)
>>
>> Ja osobne mam radsi supervisord, protoze je na vsech distro stejny, je v
>> pythonu (daji se do nej dopsat pluginy - https://pypi.python.org/pypi/
>> supervisor-wildcards ;-) ), ma API, vyhovuje mi struktura configu i
>> oddeleni "mych" procesu od tech systemovych. A hlavne, je to standardni
>> process control system v GUNS (Gunicorn+Nginx+Supervisor) stacku - dobre
>> dokumnetovany, mnoho hotovych ansible/fabric/bash/salt scriptu pro
>> automatizaci, Q/A stackoverflow, etc...
>>
>> A.
>>
>> On Fri, Jan 26, 2018 at 12:36 PM Petr Messner <[email protected]>
>> wrote:
>>
>>> Teď už se docela vzdalujeme od původního Jardova dotazu, měl bych k tomu
>>> pár připomínek:
>>>
>>> - proč supervisord a ne systemd? Síla zvyku/již hotová infrastruktura,
>>> nebo systemd nepoužíváte úmyslně?
>>> - pokud budete chtít izolovat projekty trochu víc než jen venvem a
>>> použijete proto Docker (nebo jinou kontejnerovou technologii), tak je podle
>>> mě nejjednodušší pustit v Dockeru gunicorn a nasměrovat na něj systémový
>>> nginx (popř. Apache, ideálně s event MPM).
>>> - dá se mod_wsgi kombinovat s asyncio? Pokud nepoužijete mod_wsgi, tak
>>> opět, stačí vám akorát spustit aiohttp server a nakonfigurovat proxy v
>>> nginxu (popř. Apache).
>>>
>>> PM
>>>
>>> Dne 26. ledna 2018 12:16 Ales Zoulek <[email protected]> napsal(a):
>>>
>>>> Rozdeleni stacku na
>>>> - Web Server
>>>> - Supervisord, v nem:
>>>> - Gunicorn (bezici wsgi django/flask) + Celery nebo jiny job worker
>>>>
>>>> Ma fakt hrozne moc vyhod. Pro sysadminy i developery, ktery roli adminu
>>>> musi obas zastat. Napr.
>>>> * oddelena (a tedy typicky prehledneji) konfigurace,
>>>> * oddeleny procesy (lze restartovat postupne jednotlive django workery,
>>>> aniz by to ovlivnilo server, popr. pokud prvni worker nenabehne kvuli
>>>> chybe, neshodite cely web),
>>>> * snazsi a explcitnejsi nastaveni venvu
>>>> * moznost bezet pod stejnou strechou ne-wsgi procesy z projektu
>>>> (celery, nebo pravidelny cron-like scripty), takze mate na jednom miste v
>>>> supervisor configuraci vsechny entrypointy projektu
>>>> * nejste vazani na apache (nginx napr je )
>>>> ....
>>>>
>>>> Je toho fakt hodne, ale vsechno je to jen variace na tema separation of
>>>> concerns.
>>>>
>>>> Prikladu na webu je hodne a hodne (viz treba https://gist.github.com/
>>>> laborautonomo/f9591d15f0c40dcd50785a42e21c2228 ). Myslim, ze jsme se o
>>>> tom i nekolikrat bavili na prazskym Pyvu :)
>>>>
>>>> A.
>>>>
>>>> On Fri, Jan 26, 2018 at 11:03 AM Jachym Cepicky <
>>>> [email protected]> wrote:
>>>>
>>>>> no, to je spíš otázka na sysadminy, já se snažím se v tom moc nevrtat,
>>>>> ale bojím se, že občas mě to nemine
>>>>>
>>>>> pá 26. 1. 2018 v 10:09 odesílatel Vláďa Macek <[email protected]>
>>>>> napsal:
>>>>>
>>>>>> On 26.1.2018 08:44, starenka . wrote:
>>>>>> > A jak pod mod_wsgi behate rq nebo celery?
>>>>>>
>>>>>> Nepouzivam. Na podobny pozadavky angazuju jine nastroje.
>>>>>>
>>>>>> > Me se libi ta oddelenost: python-neco, co ho
>>>>>> spusti-socket-http/proxy.
>>>>>> > Supervisor se imo konfiguruje a udrzuje o dost jednodusejc, nez
>>>>>> vhosty...
>>>>>> > (ano, vhost stejne potrebujete, ale minimalni - tj. cti socket,
>>>>>> davej
>>>>>> > statiky).
>>>>>>
>>>>>> Presne tak (i kdyz nevim, jestli pouziju supervisor, teprve se na
>>>>>> zmenu
>>>>>> chystam).
>>>>>>
>>>>>> mod_wsgi styl (ac ho jak jsem psal pouzivam mnoho let) neni moc
>>>>>> "unixy",
>>>>>> tim myslim, ze pro Django je to trochu smichanina. Vlastne si v
>>>>>> configu
>>>>>> Apache nasmerovanim na knihovny ve virtualenvu definujete znovu
>>>>>> virtualenv
>>>>>> a do mod_wsgi zakompilovanemu interpretu, ktery nemuzete obvykle
>>>>>> ovlivnit,
>>>>>> rikate "tady to je navic".
>>>>>>
>>>>>> Init Django stacku probiha jinak z mod_wsgi a jinak z management
>>>>>> commandu,
>>>>>> ktere jsou na mych projektech zasadni. Nerikam, ze se s tim rozdilem
>>>>>> neda
>>>>>> naucit zit. Da, ale obcas to cloveka pokouse a obvykle se to stane ve
>>>>>> vypjatych chvilich, kdy klient zacina zvedat oboci.
>>>>>>
>>>>>> Takze od oddeleni webserveru a runtimu si slibuju sjednoceni a
>>>>>> jistejsi
>>>>>> kompetence. gunicorn je IIRC pure-python uvnitr projektoveho
>>>>>> izolovaneho
>>>>>> virtualenvu, takze se vse spousti naprosto stejne.
>>>>>>
>>>>>> V.
>>>>>>
>>>>>> --
>>>>>> --
>>>>>> E-mailová skupina [email protected]
>>>>>> 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 [email protected].
>>>>>> Chcete-li zobrazit tuto diskusi na webu, navštivte
>>>>>> https://groups.google.com/d/msgid/django-cs/28aab262-7d9e-
>>>>>> 899d-63ba-b15e9eef8449%40sandbox.cz.
>>>>>> Další možnosti najdete na adrese https://groups.google.com/d/optout.
>>>>>>
>>>>> --
>>>>> --
>>>>> E-mailová skupina [email protected]
>>>>> 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 [email protected].
>>>>> Chcete-li tuto diskusi zobrazit na webu, navštivte
>>>>> https://groups.google.com/d/msgid/django-cs/CAAZUH4HcimeT1CdT8_
>>>>> cVOFC6d5q0oFJ20jGw2O0OTG-rPn2wKQ%40mail.gmail.com
>>>>> <https://groups.google.com/d/msgid/django-cs/CAAZUH4HcimeT1CdT8_cVOFC6d5q0oFJ20jGw2O0OTG-rPn2wKQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>> Další možnosti najdete na https://groups.google.com/d/optout.
>>>>>
>>>> --
>>>> --
>>>> E-mailová skupina [email protected]
>>>> 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 [email protected].
>>>>
>>> Chcete-li tuto diskusi zobrazit na webu, navštivte
>>>> https://groups.google.com/d/msgid/django-cs/CA%2BvQZ8qJOnbL1JH-
>>>> cpRnQeQPW8oaL2ebZv7GwbobDEp9C0P%3DXg%40mail.gmail.com
>>>> <https://groups.google.com/d/msgid/django-cs/CA%2BvQZ8qJOnbL1JH-cpRnQeQPW8oaL2ebZv7GwbobDEp9C0P%3DXg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>
>>>
>>>> Další možnosti najdete na https://groups.google.com/d/optout.
>>>>
>>> --
>>> --
>>> E-mailová skupina [email protected]
>>> 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 [email protected].
>>> Chcete-li tuto diskusi zobrazit na webu, navštivte
>>> https://groups.google.com/d/msgid/django-cs/
>>> CAK9Q5BTTkinQkb4HGJv5Tq28JG4WdTU3SYp%2BQ50necfJ7PVRRw%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/django-cs/CAK9Q5BTTkinQkb4HGJv5Tq28JG4WdTU3SYp%2BQ50necfJ7PVRRw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>> Další možnosti najdete na https://groups.google.com/d/optout.
>>>
>> --
>> --
>> E-mailová skupina [email protected]
>> 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 [email protected].
>> Chcete-li tuto diskusi zobrazit na webu, navštivte
>> https://groups.google.com/d/msgid/django-cs/CA%2BvQZ8o-
>> oTisPTqCWRond5YZrHFB%3DamcMJ%3DF30CLTqNpiaaf1A%40mail.gmail.com
>> <https://groups.google.com/d/msgid/django-cs/CA%2BvQZ8o-oTisPTqCWRond5YZrHFB%3DamcMJ%3DF30CLTqNpiaaf1A%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>> Další možnosti najdete na https://groups.google.com/d/optout.
>>
> --
> --
> E-mailová skupina [email protected]
> 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 [email protected].
> Chcete-li tuto diskusi zobrazit na webu, navštivte
> https://groups.google.com/d/msgid/django-cs/CAAZUH4E35OzmAa1JSxfDNB-
> CmVwMyU1sCKbMANn3dbvAYKzipQ%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-cs/CAAZUH4E35OzmAa1JSxfDNB-CmVwMyU1sCKbMANn3dbvAYKzipQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> Další možnosti najdete na https://groups.google.com/d/optout.
>

-- 
-- 
E-mailová skupina [email protected]
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 [email protected].
Chcete-li zobrazit tuto diskusi na webu, navštivte 
https://groups.google.com/d/msgid/django-cs/CAK9Q5BRXFsgTsMOhji7ePfKDmsshYv3Bxgj5oLpU8gkOdqJyFA%40mail.gmail.com.
Další možnosti najdete na adrese https://groups.google.com/d/optout.

Reply via email to