abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 03:55 | Nová verze

    Immich byl vydán v nové verzi 3.0.0. Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.

    Ladislav Hagara | Komentářů: 5
    včera 02:55 | IT novinky

    Společnost Juno Computers prodávající počítače s předinstalovaným Linuxem má nově v nabídce linuxový tablet Juno Tab 4 - WiFi. Na výběr je Debian, Ubuntu a Kubuntu. Předobjednat jej lze za 949 liber (26 500 korun).

    Ladislav Hagara | Komentářů: 0
    včera 01:22 | Nová verze

    Podman (Pod Manager), nástroj umožňující vytvářet a provozovat kontejnery, aniž by uživatel potřeboval práva roota, byl vydán v nové major verzi 6.0.0. Přehled novinek v poznámkách k vydání. Řešena je i vážná bezpečnostní chyba CVE-2026-57231.

    Ladislav Hagara | Komentářů: 0
    včera 00:11 | IT novinky

    Společnost Sony oznámila, že od ledna 2028 přestane vydávat nové hry pro PlayStation na fyzických discích. Všechny budoucí tituly budou dostupné výhradně v digitální podobě na PlayStation Store.

    Ladislav Hagara | Komentářů: 4
    2.7. 16:55 | Nová verze

    Google Chrome 150 byl prohlášen za stabilní. Nejnovější stabilní verze 150.0.7871.46 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 433 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    2.7. 13:00 | Nová verze

    Soudní dvůr Evropské unie potvrdil rekordní pokutu 4,125 miliardy eur (100 miliard Kč) americké technologické firmě Google ze skupiny Alphabet. Pokutu firmě v roce 2018 vyměřila Evropská komise (EK) za to, že Google podle ní zneužívá operačního systému Android k potlačení konkurence na trhu vyhledávacích služeb.

    Ladislav Hagara | Komentářů: 17
    2.7. 12:44 | IT novinky

    Administrativa amerického prezidenta Donalda Trumpa povolila firmě Anthropic obnovit plný přístup klientů k modelům umělé inteligence (AI) Fable 5 a Mythos 5. Ty byly nedostupné bezmála tři týdny kvůli bezpečnostním obavám vlády, třebaže americké ministerstvo obchodu minulý pátek povolilo omezený přístup k modelu Mythos 5 pro některé „důvěryhodné“ domácí organizace.

    Ladislav Hagara | Komentářů: 1
    2.7. 12:22 | Zajímavý článek

    Francúzska organizácia na ochranu spotrebiteľa, po viac než ôsmych rokoch skúmania, žaluje Epson za plánované zastarávanie tlačiarní. Súd sa začína dnes, 2. 7. 2026, vo francúzskom Nanterre.

    Vlado99 | Komentářů: 9
    2.7. 03:00 | Zajímavý software

    Erin Catto, autor open source 2D fyzikálního enginu Box2D (Wikipedie), představil nový 3D fyzikální engine Box3D. Engine je již používán ve hře The Legend of California.

    Ladislav Hagara | Komentářů: 0
    2.7. 01:00 | Nová verze

    Byla vydána nová verze 4.0.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy nových filtrů na PIXLS.US.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (16%)
     (25%)
    Celkem 2051 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Automatizace nasazovani PHP do produkce

    22.2.2019 18:28 ET
    Automatizace nasazovani PHP do produkce
    Přečteno: 684×

    Zdravim,

    zdedil jsem jednu apku v PHP (po odeslych programatorech) a resim, jak zautomatizovat deployment kodu do produkce (pro novy server, na ktery se bude migrovat). Kod je zatim v SVN, ale planuji prestehovat do GITu (resp. on-premise gitlabu).

     

    Produkcni server je klasicke kombo NGINX/PHP-FPM/MARIADB, kde ma kazdy "zakaznik" vlastni instanci, tj:

    * vlastni (sub)domenu/www-root

    * vlastni kod (vetsinou stejny mezi instancemi, ale pro testovani se nekdy pouziva kod z jine revize/branche)

    * vlastni DB (postavenou z "migrations" skriptu)

     

    Hledam teda nastroj, ktery umi "snadno":

    1) vytvorit/upravit NGINX konfigurak pro novy/stavajici VirtualHost

    2) nasadit do daneho www-rootu/domeny kod z SVN/GIT (e.g. revize/branche 12345xyz)

    3) vytvorit prazdnou DB a spustit "migrations" skripty

    bohuzel jsem nic moc pouzitelneho nenasel (mozna prehledl).

     

    Jak provadite deployment u podobnych projektu? Nechce se mi verit, ze to vsichni bastli svymi vlastnimi skripty (navesenymi do SVN/GIT hooku apod.), nebo pouzivaji vice nezavislych nastroju (pro nginx, pro GIT/SVN, pro DB).  Koukal jsem na Gitlab CI, ale to mi pripada, ze je spise na "testovani" kodu, nez na deployment na server...

     

    Predem diky za pripadne nasmerovani/doporuceni.

     

     

     

     

     

     

     

    Odpovědi

    Pavel 'TIGER' Růžička avatar 22.2.2019 18:54 Pavel 'TIGER' Růžička | skóre: 54
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce
    Ano, myslím si, že toto je přesný čas pro vlastní skripty.
    xkucf03 avatar 22.2.2019 19:21 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce

    +1

    Poslední dobrou se často setkávám s jakýmsi náboženstvím (nebo jak to nazvat), že by na všechno měl existovat nějaký dedikovaný nástroj, který danou činnost „usnadní“.

    Spousta nástrojů, frameworků a knihoven často ale práci spíš přidělávají – zejména pokud se použijí na menší úkoly, než pro jaké byly navržené.

    Ano, pro hromadné nasazování existuje třeba Ansible, Puppet, CFE a další. Na automatizované úpravy konfiguráků zase Augeas. Ale zrovna to, co chce tazatel, bych řešil pomocí Bashe a SSH.

    Nechce se mi verit, ze to vsichni bastli svymi vlastnimi skripty

    Na tom není nic neuvěřitelného a často je to nejlepší volba. Bash je přesně nástroj pro úlohy typu „potřebuji něco někam nakopírovat“ nebo „potřebuji spustit příkaz XY“. Pokud je někomu bližší třeba Perl nebo Python, udělá v nich totéž, jako v tom Bashi.

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Pavel 'TIGER' Růžička avatar 22.2.2019 19:42 Pavel 'TIGER' Růžička | skóre: 54
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce
    Já se s tím také setkávám, ale vnímám to jako: "Nechci to dělat, nebaví mne to, chci aby to za mne udělalo něco jiného a já mohl strávit čas jinak." A vlastně to je ještě ten lepší případ, v tom horším je v seznamu navíc "... neumím to ..." Přijde mi, že ubývá lidí, které jejich práce baví. Tím, nechci říct, že je to i tento případ. Někdy je zase dobré znát možnosti a mít možnost výběru.
    24.2.2019 22:15 ET
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce
    Panove diky, ale zbytecnej hrot ;)

    Ja si to klidne zbastlim v bash/php/python/java a po nikom nechci, aby to delal za me - jen nechci vynalezat kolo pro takto beznou ulohu. Rad bych to po realizaci nekomu predal, coz s "prasenim" vlastnich skriptu moc dohromady nejde ;). Ale mozna by to byl dobry namet na novy (OSS) projekt.

    Jak teda bezne pouzivate celej ten cirkus pro deployment?

    * pouzivate ciste bash - tj. mate hromadu skriptu a ty pak pri deploymentu volate?

    * mate (web)gui, nebo ciste prikazova radka?

    * umite roll-back? (nebo pak nekde zustava smeti)

    * pouzivate pro skripty navrhovy vzor(y)?

    * jak "generujete" konfigurak pro nginx(/apache)? Mate sablonu a tu kopirujete a `sed`ujete?

    * kolik dalsich lidi to umi ovladat? mate to zdokumentovane? komentare v kodu? wiki? readme?

    PS: webmin nechci

    Pavel 'TIGER' Růžička avatar 24.2.2019 23:50 Pavel 'TIGER' Růžička | skóre: 54
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce
    Podle mne tohle všechno se odvíjí i od toho, jak schopnému člověku to budeš předávat. Někdo se raději naučí to, co připravíš, jiný si to raději předělá podle sebe.

    * pokud bych nenarazil na nějakou překvapivou překážku, tak by mi mohl bash stačit.

    * web gui k tomuto není potřeba

    * raději s roll-backem

    * návrhové vzory většinou ne

    * ano, předpřipravená šablona je fajn

    * nikdo, ale kdyby takový požadavek byl, není problém zaškolit. Nejsem nejmladší, takže komentáře v ḱódu určitě. Zbytek dle požadavků, nebo složitosti projektu.

    PS: Ani já bych k tomuto účelu webmin nechtěl.
    22.2.2019 22:11 Vlado
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce
    +1 Naučiť sa logiku niektorého "kombajnu", nakonfigurovať ho, vysporiadať sa s jeho zvláštnosťami, ... to môže byť viac práce a starostí, než napísať pár skriptov na mieru.

    Namiesto slova "náboženstvo" ma napadá skôr "choroba": ako sú dnes ľudia zblnutí z klikania, majú pocit, ze všetko sa musí naklikať (prípadne napatlať prstom na obrazovke).
    22.2.2019 21:52 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce
    V současné době dělám deployment přes
    make deploy
    a potřebné závislosti mám ukryty v Makefile. Výhodou je, že jsou hezky pohromadě, sdílené s ostatními požadavky (DRY) a že se přes to dobře spouští generátory.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    24.2.2019 22:46 ET
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce
    Diky, to mi pripada celkem elegantni (i kdyz stale na urovni "praseni" vlastnich skriptu). Jestli tomu dobre rozumim, ma teda kazda "instance" vlastni Makefile (s vlastnimi parametry)?

    xkucf03 avatar 24.2.2019 23:10 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce
    Make je dobrá věc a nutí dát těm skriptům nějakou strukturu a trochu standardní UI.

    Jinak nevím, proč o tom píšeš pořád jako o „prasení“ – umět číst a psát jednoduché skripty je základní schopnost, kterou by každý administrátor měl mít. Jasně, že předat někomu stovky nebo tisíce řádků nepřehledných skriptů je špatně, ale to tu nikdo neradí. Většina podobných skriptů se ale dá napsat v délce cca na jednu obrazovku – a když k tomu přijde někdo jiný, tak jen koukne a vidí. Pokud tam nepoužíváš nějaké záludnosti a píšeš to přímočaře, tak to ani nemusíš moc komentovat, protože kód dokumentuje sám sebe – v těchto případech je lepší si přečíst pár řádků kódu a vědět s jistotou, co to dělá, než si přečíst pár řádků komentářů a doufat, že kód tomu odpovídá.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    25.2.2019 00:00 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce
    Podstatné je, že se v tom Makefile nachází hlavně ty vlastní parametry a že jsou přehledně koncentrovány do jednoho souboru. U větších projektů je možné totéž udělat v každém podadresáři a spouštět rekurzívně do hloubky.

    V tom Makefile mám všechny potřebné utility, včetně spouštění testů, generování závislostí, deploymentu či mazání cache. Na tu obrazovku se to skutečně vejde.

    Hodně utilit však spouštím i přes Git. Má to trochu jiné vlastnosti, například že se úlohy spouští v kořeni projektu. Jsou to hlavně skripty, které jsou univerzálně použitelné v každém projektu a mohou tedy být umístěny v ~/.gitconfig

    Make může spouštět Git a Git může spouštět Make. Jen je dobré si z těchto dvou přístupů vybrat a nemíchat je.

    Jedinou nevýhodou Make je závislost na platformě, což může u některých projektů představovat problém. V takovém případě dám Makefile do .git/info/exclude a neverzuji ho.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Josef Kufner avatar 25.2.2019 02:23 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce
    Gitlab CI je přesně ten nástroj, který chceš. Je to však jen jedna půlka řešení.

    Ta druhá půlka je skript, který nakopíruje tvoje soubory tam, kam patří. Může to být klidně jen zaobalené volání rsync nebo něčeho takového. Přesná podoba tohoto skriptu záleží na prostředí i projektu.

    Makefile je velice užitečný na organizaci takových skriptů. Typicky chceš příkazy na build, na migrace databáze, na spuštění testů, na vyčištění cache a na nasazení. Jako výchozí cíl doporučuju mít nápovědu. Makefile má výhodu v tom, že všechna ta volání různých nástrojů dostaneš na jedno místo a nemusíš hledat, co ten který projekt zrovna používá a jak se to spouští.

    Makefile se naopak nehodí na spouštění parametrizovaných úloh. Na to je lepší mít nějaký jiný entrypoint, například bin/console postavené na Symfony Console.

    Celé řešení deploye vypadá tak, že Gitlab CI spustí pipeline, tam se provedou testy, build a nakopíruje se výsledek na server, kde se pak ještě spustí migrace databáze a vyčištění různých cache. Když se to povede, v Gitlabu uvidíž zelenou fajfku, když ne, tak ti přijde mail a máš k dispozici log výstupu toho deploy skriptu.
    Hello world ! Segmentation fault (core dumped)
    25.2.2019 17:53 ET
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce
    Super, diky.

    Ja uz jim ve firme pred nejakou dobou rozjel on-premis gitlab (i s runnerem), ale prislo mi, ze CI je jen na "otestovani" pred deploymentem - co mi teda uteklo a je dulezite je PIPELINE.

    Predstavuju si to dobre, ze mas nadefinovanou pipeline/sekvenci akci (podle potreby projektu) a v nich "tahas" za make(file)? :)

    25.2.2019 17:57 ttt
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce
    Na deploy používám většinou Capistrano / Ansitrano (https://github.com/ansistrano/deploy) volané z GitlabCI.
    Josef Kufner avatar 25.2.2019 18:33 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Automatizace nasazovani PHP do produkce
    Víceméně se to tak dá říct. Občas se tam připlete nějaký rsync, scp, či curl, aby se výsledek dostal na správné místo a nebo se zavolal nějaký externí (web)hook.
    Hello world ! Segmentation fault (core dumped)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.