Vývoj vs. repozitáře aneb když nejsou aktuální verze

MP

Hoj,

vyvojari u nas ve firme posilhavaji cimdal vice po novych technologiich. Technologie ruznych typu, primarne pro webove aplikace. Vzhledem k tomu, ze nase servery jsou postavene na Debianech, tak se to stretava z hlediska "zastaralosti" verzi. Zatim se mi podarilo udrzet to ve stavu, kdy na produkcni servery jdou pouze veci z repozitaru Debianu, pripadne primo tvurcu SW, ale narustaji tlaky na pouzivani aktualnich verzi. A neco ma "jen" instalator...

Docela by me zajimalo, kdo si prosel takovymhle obdobim, nez se stabilizovaly procesy z hlediska nasazovani verzi, jak to zhruba probihalo, resp., k cemu se nakonec dospelo.

tldr: vyvojar chce verzi X. V distribuci je verze Y<X, aktualni verze neni ani v unstable/testing, nebo existuje jen instalator. Jake jsou rozumne moznosti reseni?

Jako priklad uvadim composer. V debianu je az v Deb9 se zavislostmi na PHP7, ale verze je starsi nez aktualni. Vyvojar ho chce na Deb8 s PHP5. Pokud budou servery mix Deb8/9, kterou verzi byste tam nainstalovali a proc?
« Poslední změna: 18. 09. 2017, 17:51:13 od Petr Krčmář »


Re:Vyvoj vs repozitare aneb, kdyz nejsou aktualni verze
« Odpověď #1 kdy: 18. 09. 2017, 17:58:46 »
Toto jsem ve firmě řešil víckrát, nakonec jsem vedl úvahu o rozdělení projektů:

1. Projekty, které jdou neustále dopředu, a které mají speciální požadavky.
U takových mám v rozpočtu zahrnuto, že jedou na vlastní VPS (případně aspoň FreeBSD jailu). Těm udržuji prostředí, jaké si řekne programátor a počítám s tím, že to něco stojí. Nepodařilo se mi nikdy nakombinovat na stejný server projekt se speciálními požadavky a "běžné" projekty.

2. Projekty "vyrob a zapomeň".
To jsou projekty, kde zákazníkovi předáte verzi, a nepočítá se s dalším (průběžným) vývojem. Někdy je to dáno typem projektu (jednorázovka, k určité příležitosti), jindy je to dáno budgetem nebo přístupem (očekáváním) zákazníka. V tom případě mají programátoři k dispozici server, kde je aktuální Debian / FreeBSD, který udržím až do konce životnosti ve své verzi.

Tím mi historicky vznikly servery s Debian 7, 8, 9, které udržuji.

3. Udržované projekty
Ty vznikají ze skupin 2 tím, že se na nich aspoň čas od času pracuje, a je tedy časová dotace na to, tyto projekty aspoň pomalu migrovat na vyšší verze prostředí.

4. Databázové servery
PostgreSQL a MySQL, resp. MariaDB mám vždy na oddělených strojích, výjimkou jsou projekty ve skupině 1. Tím si mohu dovolit, že se nemusí dělat změny v práci s databází, i když povýším zbytek prostředí.

5. Využívání FreeBSD a jailů
Dobře se mi osvědčilo pracovat v jailech na FreeBSD. Tím můžu mít s poměrně malou režií k dispozici víc kombinací prostředí.


Summa summarum: nejprve je potřeba rozdělit projekty podle toho, na co je budget. Pak je jistě potřeba trochu držet zpátky programátory, ne vždy a všude je možné jim dělat custom prostředí. Instalovat z neoficiálních repozitářů lze, ale o to více je problematická otázka udržitelnosti prostředí. Často tyto repozitáře uhynou, nebo podporují jen nejnovější debian, a pak jste nahraný. Naopak, tam kde je budget, lze jít stále dopředu. Pak je docela zajímavé zvážit FreeBSD, jeho systém instalace z portů má nesporné výhody v těchto situacích. Lze tam nakombinovat verze daleko volněji, než u Debiana.

Re:Vývoj vs. repozitáře aneb když nejsou aktuální verze
« Odpověď #2 kdy: 18. 09. 2017, 18:16:16 »
Docker... rikam to nerad, sere me ve spouste veci, ale tohle nam vyresil.
Děkuji za možnost editace příspěvku.

MP

Re:Vývoj vs. repozitáře aneb když nejsou aktuální verze
« Odpověď #3 kdy: 19. 09. 2017, 17:32:28 »
Docker... rikam to nerad, sere me ve spouste veci, ale tohle nam vyresil.

Jak docker vyresi roubovani novych veci na "starou" infra, kdyz se s necim takovym tehdy nepocitalo?

Re:Vývoj vs. repozitáře aneb když nejsou aktuální verze
« Odpověď #4 kdy: 19. 09. 2017, 19:08:04 »
Dokazes jednoduse modernizovat infra toho konkretniho projektu bez zasahu do cehokoliv dalsiho.
Děkuji za možnost editace příspěvku.


Honza

Re:Vývoj vs. repozitáře aneb když nejsou aktuální verze
« Odpověď #5 kdy: 19. 09. 2017, 19:38:34 »
Dokazes jednoduse modernizovat infra toho konkretniho projektu bez zasahu do cehokoliv dalsiho.
Musí se to udělat správně

Kit

Re:Vývoj vs. repozitáře aneb když nejsou aktuální verze
« Odpověď #6 kdy: 19. 09. 2017, 21:47:16 »
Docker... rikam to nerad, sere me ve spouste veci, ale tohle nam vyresil.

Jak docker vyresi roubovani novych veci na "starou" infra, kdyz se s necim takovym tehdy nepocitalo?

Podobně jako virtualizace. Můžeš mít x různých verzí PHP s různými verzemi Composeru, klidně i na starší verzi systému.

ldj

Re:Vývoj vs. repozitáře aneb když nejsou aktuální verze
« Odpověď #7 kdy: 20. 09. 2017, 08:59:04 »

Podobně jako virtualizace. Můžeš mít x různých verzí PHP s různými verzemi Composeru, klidně i na starší verzi systému.

Kontejnery tu nejsou od toho abysis udelal v infrastrukture bordel - jak resis napriklad security updaty? Ani pro docker neni moc nastroju co ti reknou, jaka knihovna ma jake CVE, pokud neni instalovana z balicku a nepuzijes CVE databaze od distribuci. A kdyz upstream tu verzi nepodporuje, tak si fixy backportujes sam?

Re:Vývoj vs. repozitáře aneb když nejsou aktuální verze
« Odpověď #8 kdy: 20. 09. 2017, 09:04:00 »
Podobně jako virtualizace. Můžeš mít x různých verzí PHP s různými verzemi Composeru, klidně i na starší verzi systému.

Kontejnery tu nejsou od toho abysis udelal v infrastrukture bordel - jak resis napriklad security updaty? Ani pro docker neni moc nastroju co ti reknou, jaka knihovna ma jake CVE, pokud neni instalovana z balicku a nepuzijes CVE databaze od distribuci. A kdyz upstream tu verzi nepodporuje, tak si fixy backportujes sam?

Na všechny tyto problémy se mi jeví jako dobré a udržitelné řešení FreeBSD a jaily. Tam všechno toto jde víceméně dobře splnit.

MP

Re:Vývoj vs. repozitáře aneb když nejsou aktuální verze
« Odpověď #9 kdy: 20. 09. 2017, 10:14:02 »
Docker... rikam to nerad, sere me ve spouste veci, ale tohle nam vyresil.

Jak docker vyresi roubovani novych veci na "starou" infra, kdyz se s necim takovym tehdy nepocitalo?

Podobně jako virtualizace. Můžeš mít x různých verzí PHP s různými verzemi Composeru, klidně i na starší verzi systému.

A jak do toho naroubujes tento priklad VM:
1]Deb7 s apache + mod_php, sql, vice web projektu
2]chces do toho nacpat composer + git

A] composer az z Deb9? se zavislostmi na php7/phar
B] git? verze/zavislosti ted netusim, ale vyreseni pull/push modelu a prava na webslozkach
C] ruzne verze php? hm, to asi apache neda, takze tam budeme mit "nat" na kontejnerovych apache s php?
D] security s tim souvisejici? pristup k slozkam, aktualizace atd...

Nerikam ze to nejde. Jen mam pocit, ze s tim vznika (D]) vice problemu nez to cele zacit stavet znova...Jen jde o to, ze vyvojari chteji neco, na co ta stara infra pripravena proste nebyla a obecne, spousta projektu neni v repozitarich non-edge distribuci, ale casto jen na githubu...

Re:Vývoj vs. repozitáře aneb když nejsou aktuální verze
« Odpověď #10 kdy: 20. 09. 2017, 10:55:47 »
A jak do toho naroubujes tento priklad VM:
1]Deb7 s apache + mod_php, sql, vice web projektu

Tohle reseni nema. Ale docker ti muze vyrazne pomoci ty projekty oddelit.
Děkuji za možnost editace příspěvku.

Mufasa

Re:Vývoj vs. repozitáře aneb když nejsou aktuální verze
« Odpověď #11 kdy: 20. 09. 2017, 11:13:43 »
A] Toto nie je chybou dockera, to nevyriesi ani on ani VM
B] Preco git vo VM? Nechapem uplne otazku
C] "Politika" dockera je 1 kontajner 1 appka, nie je dovod tam mat viacero php, nesnazit sa z neho spravit VM
D] image sa daju skenovat na CVE, aktualizacie na distro vychadzaju tak rychlo ako na bezne distro

Celkovo pre vyuzitie dockera treba zmenit pristup vyvoja, nie je to klasicky vyvoj na VM

Ivan

Re:Vývoj vs. repozitáře aneb když nejsou aktuální verze
« Odpověď #12 kdy: 20. 09. 2017, 11:16:44 »
Obavam se, ze muzes vest nekonecnou debatu na tema, docker/jail/cloud... Ale to hlavni stejne nevyresis: Kdo ze tebe bude urzovat aktualni verze baliku, vcetne zaplat? Nakonec se stejne budes muset v tema vyvojarema dohodout a vysvetlit jim, ze musi zuzit porfolio toho na cem ty aplikace bezi.

Mufasa

Re:Vývoj vs. repozitáře aneb když nejsou aktuální verze
« Odpověď #13 kdy: 20. 09. 2017, 11:23:09 »
S tymto sa neda nez suhlasit, nech je riesenie akekolvek, cim sirsie spektrum im das, tym viac roboty aj pre teba.

Franta.

Re:Vývoj vs. repozitáře aneb když nejsou aktuální verze
« Odpověď #14 kdy: 20. 09. 2017, 11:24:19 »
Chápu že to byl jen příklad, ale zrovna composer na produkčním serveru většinou nepotřebuješ. Ten by se měl instalovat jen v buildovacím kontejneru (který může být klidně "naprasený") a na produkci se nasadí aplikace už s nainstalovanými závislostmi. Stejně jako na produkci nemáš git, npm, apod.