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 19:44 | Nová verze

    Byla vydána verze 9.1 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a informačním videu.

    Ladislav Hagara | Komentářů: 0
    dnes 17:44 | IT novinky

    Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem zůstává El Capitan od HPE (Cray) s výkonem 1,809 exaFLOPS. Druhý Frontier má výkon 1,353 exaFLOPS. Třetí Aurora má výkon 1,012 exaFLOPS. Nejvýkonnější superpočítač v Evropě JUPITER Booster s výkonem 1,000 exaFLOPS je na čtvrtém místě. Nejvýkonnější český superpočítač C24 klesl na 192. místo. Karolina, GPU partition klesla na 224. místo a Karolina, CPU partition na 450. místo. Další přehledy a statistiky na stránkách projektu.

    Ladislav Hagara | Komentářů: 1
    dnes 17:22 | IT novinky

    Microsoft představil Azure Cobalt 200, tj. svůj vlastní SoC (System-on-Chip) postavený na ARM a optimalizovaný pro cloud.

    Ladislav Hagara | Komentářů: 0
    dnes 12:00 | IT novinky

    Co způsobilo včerejší nejhorší výpadek Cloudflare od roku 2019? Nebyl to kybernetický útok. Vše začalo změnou oprávnění v jednom z databázových systémů a pokračovalo vygenerováním problém způsobujícího konfiguračního souboru a jeho distribucí na všechny počítače Cloudflare. Podrobně v příspěvku na blogu Cloudflare.

    Ladislav Hagara | Komentářů: 5
    včera 23:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) první RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.

    Ladislav Hagara | Komentářů: 2
    včera 23:22 | Komunita

    Eugen Rochko, zakladatel Mastodonu, tj. sociální sítě, která není na prodej, oznámil, že po téměř 10 letech odstupuje z pozice CEO a převádí vlastnictví ochranné známky a dalších aktiv na neziskovou organizaci Mastodon.

    Ladislav Hagara | Komentářů: 0
    včera 19:44 | Nová verze

    Byla vydána nová major verze 5.0 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v obsáhlých poznámkách k vydání. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 14:00 | Upozornění

    Cloudflare, tj. společnost poskytující "cloudové služby, které zajišťují bezpečnost, výkon a spolehlivost internetových aplikací", má výpadek.

    Ladislav Hagara | Komentářů: 11
    včera 04:22 | Pozvánky

    Letos se uskuteční již 11. ročník soutěže v programování Kasiopea. Tato soutěž, (primárně) pro středoškoláky, nabízí skvělou příležitost procvičit logické myšlení a dozvědět se něco nového ze světa algoritmů – a to nejen pro zkušené programátory, ale i pro úplné začátečníky. Domácí kolo proběhne online od 22. 11. do 7. 12. 2025 a skládá se z 9 zajímavých úloh různé obtížnosti. Na výběru programovacího jazyka přitom nezáleží – úlohy jsou

    … více »
    SoutezKasiopea | Komentářů: 1
    včera 04:11 | Nová verze

    Byla vydána nová verze 2.52.0 distribuovaného systému správy verzí Git. Přispělo 94 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (46%)
     (19%)
     (18%)
     (23%)
     (15%)
     (23%)
     (15%)
     (17%)
    Celkem 371 hlasů
     Komentářů: 17, poslední dnes 21:57
    Rozcestník

    Dotaz: Automatizace nasazovani PHP do produkce

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

    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: 49 | 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: 49 | 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.