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í
×
    dnes 02:44 | IT novinky

    Microsoft Defender nově podporuje linuxové desktopy.

    Ladislav Hagara | Komentářů: 0
    včera 21:00 | Komunita

    Oficiální Epic Games Launcher je v nové preview verzi poprvé dostupný i pro Linux (FAQ). Pracuje se na novém Easy Anti-Cheatu pro Linux (EAC Linux v2) a podpoře hry Fortnite na Linuxu.

    Ladislav Hagara | Komentářů: 1
    včera 13:44 | Nová verze

    Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.8. Novinky zahrnují lepší podporu vzdálené plochy, sdílení a nahrávání obrazovky a řadu drobností napříč uživatelským rozhraním (úplný seznam změn, shrnutí ve wiki).

    ʚĭɞ 🍉 | Komentářů: 16
    včera 10:55 | IT novinky

    Apple představil 7palcový displej Apple HomeView s podporou Apple Intelligence a Siri AI pro ovládání chytré domácnosti, novou řadu vybavení chytré domácnosti Apple Home Collection, další generaci HomePodu mini a novou Apple TV 4K. Apple HomeView není v Evropské unii v prodeji, jelikož umělá inteligence Siri v rámci systému iOS v EU momentálně není k dispozici. Apple spolupracuje s EU a snaží se najít cestu, jak situaci vyřešit.

    Ladislav Hagara | Komentářů: 3
    včera 03:55 | Komunita

    KDE slaví 30 let. Přesně před 30 lety, 14. října 1996, poslal Matthias Ettrich do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu KDE. Důležité milníky jsou zobrazeny na časové ose.

    Ladislav Hagara | Komentářů: 3
    včera 03:22 | Nová verze

    Byl vydán Mozilla Firefox 158.0. Stejně jako Chrome 155 s podporou JPEG XL (test). Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 158 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 03:00 | Nová verze

    Svobodný kancelářský balík ONLYOFFICE (Wikipedie) byl vydán ve verzi 10.0. Jak online Docs, tak i offline Desktop Editors. Přehled novinek také na YouTube.

    Ladislav Hagara | Komentářů: 0
    13.10. 14:44 | IT novinky

    Mozilla představuje Firefox Enterprise určený jako podnikový prohlížeč pro organizace s přísnými požadavky na bezpečnost, správu a dodržování předpisů. S profesionální podporou. Dostupný je zatím ve Francii, Německu, Rakousku a Švýcarsku.

    Ladislav Hagara | Komentářů: 11
    13.10. 14:33 | Bezpečnostní upozornění

    Kybernetický útok zasáhl nejméně 150 supermarketů Intermarché a několik prodejen řetězců Leclerc a Coopérative U. Chladicí jednotky napadených obchodních domů byly nastaveny na nepřetržité odmrazování a teplota v nich mnohdy vystouala až nad 50°C. Škody napáchané na chlazeném a mraženém zboží budou patrně dosahovat miliónů eur.

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 4
    13.10. 04:00 | Komunita

    Stát Kalifornie zažaloval výrobce 3D tiskových filamentů Polymaker. Vrchní soud San Diego County tvrdí, že firma propagací svých výrobků mezi příznivci 3D tištěných zbraní podporovala výrobu takzvaných 'ghost guns' (DIY zbraní) a že její PLA filament pro 3D tiskárny lze za těchto okolností považovat za součást určenou k výrobě střelné zbraně. Žaloba požaduje mimo jiné finanční sankce a soudní zákaz činnosti, Polymaker se hájí tím, že filament je běžný a sám o sobě legální produkt. Celý text žaloby (PDF na Google Drive).

    ❗Červivý Hřib krade❗ | Komentářů: 28
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2845 hlasů
     Komentářů: 32, poslední 11.10. 17:02
    Rozcestník

    Dotaz: Automatizace nasazovani PHP do produkce

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

    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ákno • Nahoru

    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.