Autor Zpráva
Meldo
Profil
Roky robím weby priamo na živom FTP. V súčasnosti by som rád prešiel na moderné riešenie (localhost - git - live) a preto by som vás rád požiadal o radu, keďže niekoľko vecí mi nie je úplne jasných.

Ako som pochopil, ideálny postup by mal vyzerať nasledovne:
1. projekt si stiahnem do lokálneho počítača
2. spravím zmeny ktoré potrebujem, všetko ukladám lokálne
3. keď je to hotové, push na git

Ďalej neviem ako. Ako to dostanem na živý server? Projekt má 40 GB, možno 50 000 súborov (vrátane obrázkov), takže zobrať zložku a nahrať ju na FTP asi nebude to správne riešenie.
Ako si to môžem otestovať predtým, ako to bude live? Predsalen, môže byť mierne odlišná konfigurácia alebo niečo podobné.
Druhá vec je, ako s databázou. Úpravy spravím lokálne a potom znova na live servery? Príde mi to ako dvojitá robota navyše vyžadujúca pamätať si zmeny.

Ďakujem za akékoľvek nasmerovanie. Trošku som zmeškal vlak a ťažko sa prechádza na nové veci :)
Keeehi
Profil
Meldo:
Řekněme si to asi takto, pokud máš web někde na hostingu, tak to asi není úplně pro tebe. Už jenom proto, že webhosting ti asi jiný přístup než přes FTP nepovolí. A už vůbec ne spouštět nějaké svoje příkazy.

Ako si to môžem otestovať predtým, ako to bude live?
Většinou máš více serverů. Na jednom ti běží živá verze a na jiném si testuješ funkčnost nové verze. U nás máme těch serverů i více. Verzi pro vývojáře, u které nevadí, že je často rozbitá, pak server, kam se dostanou funkční a stabilní buildy - ta slouží pro prezentaci nových verzí klientům a také ji používají lidé, co plní web obsahem no a pak samozřejmě ta živá verze, kterou vidí běžní lidé.

Druhá vec je, ako s databázou.
Říká se tomu migrace. Prakticky ty napíšeš, nebo si necháš vygenerovat sql příkazy, které dokáží změnit stav databáze z té původní na tu novou a naopak. Tyto sql příkazy přibalíš ke kódu a ony se pak ve správnou chvíli provedou.

Celé je to celkem složitý proces. Proto existují služby, které toto všechno udělají za tebe. Na takové to domácí hraní ale moc nejsou, jelikož bývají drahé. Můžeš si to postavit sám, ale aby to alespoň trochu slušně fungovalo, tak na tom zase strávíš určitou dobu. U řešení pro jeden konkrétní projekt to ještě jde, tam většinou budeš znát požadavky, závislosti a další. Já jsem vytvářel systém, který měl být připravený na různé typy projektů. Strávil jsem s tím asi dva měsíce a nedělal jsem prakticky nic jiného. Teď nám to ale zase běhá prakticky jen za náklady těch serverů na kterých to je.
Meldo
Profil
- bezi mi to na VPS, takze spustanie cohokolvek nebude problem.

- dva servery, chapem. Nevidim ale rozdiel medzi lokalnou verziou a testovacim serverom. Stale to neriesi problem nekonzistencie konfiguracii. Asi zostava len nieco ako beta.web.sk a skusat tam.

- vies ma nejak nasmerovat na nejake clanky alebo nieco? neviem co hladat a uplne nerozumiem "ake" sql napisat.

- Asi sme sa zle odhadli. Riesim projekt, ktory generuje radovo desiatky tisic eur mesacne, takze nejake peniaze na sluzbu ktora mi zabezpeci skvely workflow sa najdu. Cize ake su tie sluzby?

Celkovo by mi ale stacilo napisat postup, ako sa to robi. Ci sa to pri mojom projekte bude dat alebo nie si rozhodnem sam. Chcel som vediet moderny postup vyvoja webu. Zial, neviem googlit asi. :)

Dakujem.
Keeehi
Profil
Meldo:
Nevidim ale rozdiel medzi lokalnou verziou a testovacim serverom.
Ten testovací bude mít přece stejnou konfiguraci jako produkční. Takže když na lokálu „môže byť mierne odlišná konfigurácia alebo niečo podobné“ tak na tom testovacím serveru bude stejná. Ono teoreticky jak testovací tak produkční verze mohou běžet na jednom stroji, ale lepší je to nedělat. Kvůli bezpečnosti a taky když něco hodně nevyjde, tak aby to s sebou nevzalo i produkční stránky.

Asi zostava len nieco ako beta.web.sk a skusat tam.
Částečně ano. Ta subdoména ale není podmínkou. URL prakticky může být cokoli.

vies ma nejak nasmerovat na nejake clanky alebo nieco? neviem co hladat a uplne nerozumiem "ake" sql napisat.
Database migrations

Chcel som vediet moderny postup vyvoja webu.
Workflow je asi takovýto: Po tom, co pushnes do repozitáře (GitHub, GitLab, Bitbucket a spousta dalších ne tak známých a přímo podporovaných) se kontaktuje se nějaký server (Travis CI, GitLab CI, Circle CI a zase spousta dalších), ten se připojí k tvému repozitáři a stáhne si nové změny. Pak se provede build projektu. Tady záleží vždy projekt od projektu. Nainstalují se závislosti (composer, npm, bower), provedou se migrace, zkompilují se soubory pomocí preprocesorů (Sass, LESS), zkompilují se javascriptové soubory, minifikují obrázky, různě popřesouvají soubory. Prostě se automaticky z kódu co jsi nahrál vytvoří finální kód projektu. Pak se spustí automatické testy. Pokud testy selžou, proces končí a výsledek testu bývá zpětně odeslán tam, kde máš repozitář. Pokud testy projdou, vybuilděný projekt se automaticky nahraje na server (AWS Amazon, Google App Engine, Heroku a další nebo vlastní server), zmigruje se databáze a přepne verze na tu novou.
Toto ale není dogma. V popsaném procesu se prakticky cokoli dá vynechat, nebo upravit. Také je možné zařadit další potřebné články. Něco jako univerzální recept neexistuje.

Zial, neviem googlit asi.
Hesla, co hledat: Zero Downtime Deployment, Continuous Integration, Build automation, Database migrations
TomášK
Profil
Doporučil bych ještě něco na správu serveru, případně zapojit i virtuální servery. Preferuju ansible, přijde mi nejjednodušší, ale zároveň dostatečný, alternativy jsou Puppet, Chef, Kubernates (stojí za to mít představu, co dělají).

- V ansible napíšeš skripty, které čistou instalaci serveru připraví pro tvojí aplikaci (nainstalují webserver, databázi, nastaví uživatele, …). Bude pak jednodušší udržovat produkční, testovací a případně vývojový stroj ve stejném (podobném) stavu, bude dokumentovaná a verzovaná i instalace. Testovat můžeš i ve virtuálním serveru, Vagrant (www.vagrantup.com) je jednoduchý na zprovoznění, i když jsou zřejmě i lepší alternativy. Deploy pak můžeš též dělat pomocí ansiblu ansistrano.com

- Frčí kontejlnery ala Docker, ale já jim nikdy nepřišel na chuť. Přijde mi, že to pro tenhle případ není vhodné nasazení, ale je dobré mít představu, co to je.

- Ohledné migrací, nedávno mi někdo doporučoval github.com/theory/sqitch, ale nemám vlastní zkušenost.
Meldo
Profil
Díky chalani. Toto som potreboval. Myslim ze dalej to uz zvládnem. Idem študovať podrobnosti.

Vaše odpověď

Mohlo by se hodit

Příspěvky nesouvisející s webem budou odstraněny.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: