Nenechte se zlákat deployováním Gitem

cs v kategorii code • 2 min. čtení
Mind the age! Most likely, its content is outdated. Especially if it’s technical.

Vyzkoušel jsem si různé způsoby deployování webových aplikací a došel jsem k tomu, že poslední trendy nemusejí být zdaleka nejlepší volbou. Čímž posledním trendem myslím deployment Gitem.

Abych hned neurazil zastánce – sám využívám tento druh deploymentu například pro LunchtimeAnděl.cz. V nedávné době jsem místo ruční konfigurace použil POD, což je „Git push deploy for Node.js“, díky čemuž se nemusím o hooky starat sám. Jednoduše commitnu kód, pushnu a aplikace se restartuje. Spokojenost, žádné námitky.

Problém ale nastává, když se jedná o větší projekt. Například BOObook.cz – Pythoní aplikace se závislostmi nejen na PyPI, ale i na debianí balíky, ve velkém množství. Vedle toho CoffeeScript s Closure Library. Elasticsearch, memcache, nginx. PostgreSQL a migrace databáze. Cron soubor, init script. A další.

Z počátku, když spoustu věcí nebylo doprogramováno (tedy daleko před spuštěním) byl deployment Gitem velice jednoduchý úkol. Fungovalo to parádně. Postupem času se věci komplikovali a jelikož to nebyly neřešitelné problémy, s radostí jsem rozšiřoval hooky, které se mi o všechno postaraly.

Když jsem si rozbíhal druhé testovací prostředí, zjistil jsem ale, že Git přestává vyhovovat. Bylo to příliš komplikované a náchylné na chyby. Navíc jsem neměl nic, co mi dokáže čistý stroj připravit k provozu. To se mi nelíbilo a tak jsem nahradil Git hooky za Fabric. To mi umožnilo přesně to, co jsem potřeboval – přípravu serveru, deployment, automatické tagování, syncování databází a spoustu dalšího. Něco, co už z podstaty s hooky nelze udělat.

Několik měsíců jsem byl spokojen, nyní však zjišťuji, že už ani Fabric není dostačující. Respektive je, ale některé věci jsou řešeny zbytečně komplikovaně. Například řešení závislostí či instalace souborů do systému. Proto další krok bude přímo debianí balíček, který se mi postará o poslední nedostatky.

Tím se mi vyřeší i spoustu menších nedostatků. Třeba rozhodně nechci kompilovat JavaScript či styly až na serveru, proto musím mít minifikované verze už v repozitáři. Nebo se mi nelíbí nutnost aktualizovat Git submoduly na serveru kvůli fontům, které nechci kopírovat do svého repozitáře, což zabírá zbytečně čas.

Pak budu spokojen stejně jako s Git hooky pro LunchtimeAnděl.cz.

Co z toho plyne? Je dobré si vyzkoušet různé možnosti. Pokaždé se hodí totiž něco jiného. Nenechte se zlákat deployováním Gitem, pokud váš projekt potřebuje něco jiného.








Může se vám také líbit

en Makefile with Python, November 6, 2017
en Fast JSON Schema for Python, October 1, 2018
en Deployment of Python Apps, August 15, 2018
cs Jasně, umím Git…, August 6, 2014
cs Checklist na zabezpečení webových aplikací, March 1, 2016

Další články z kategorie code.
Nenechte si ujít nové články díky Atom/RSS kanálu.



Poslední příspěvky

cs Mami, tati, přejde to, December 9, 2023 in family
cs Co vše bychom měli dělat s dětmi?, November 24, 2023 in family
cs O trávicí trubici, November 7, 2023 in family
cs Na šestinedělí se nevyspíš, October 28, 2023 in family
cs Copak to bude?, October 20, 2023 in family