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 Zubní pohotovost, October 19, 2021 in family
en Dancers Are Not Deaf (Yet), October 12, 2021 in dance
cs Je dobré mýti Matýska, October 4, 2021 in family
cs Jsem levák…?, September 21, 2021 in family
en Human Evolution of the Past and Future, September 14, 2021 in humanity