SyMfonAK - vyvíjame databázy pomocou frameworku Symfony
Nasadenie (deployment)
Symfony dokumentácia → Nasadenie (deployment)
Ako nasadiť symfony aplikáciu
Nasadenie symfony aplikácie môže byť komplex činností. Podľa toho, aké nastavenia vyžaduje aplikácia. Tu sú rôzne myšlienky, čo asi treba všetko spraviť.
Deployment original dokumentácia.
Obsah
Základy nasadenia symfony aplikácií
Ako nasadiť symfony aplikáciu
Základný prenos súborov
Využitie systémov na správu zdrojákov
Systémy na správu zdrojových kódov ako GIT alebo SVN pomáhajú zjednodušiť aj inštaláciu, upgrade je potom tak isto jednoduchý ako získavanie posledných updatov zo systému správy zdrojákov. Stále však ostanú mnohé manuálne činnostil, viď nižšie v sekcii o krokoch potrebných vykonať po nasadení.
Využitie rôznych platform od providerov
Využitie rôznych skriptov a nástrojov
Capistrano s https://github.com/capistrano/symfony/
Napísaný v Ruby, automatizuje nasadenie na vzdialené servre. Symfony plugin zjednodušuje úlohy súvisiace s nasadzovaním Symfony, inšpirovaný je Capifony (ktorý pracuje len s Capistrano 2).
Pomáha vytvárať Symfony balíčky typické pre Debian.
Pracuje podobne ako Capistrano a je písaný v PHP, uľahčuje prácu PHP vývojárom s ich špecifickými požiadavkami.
Knižnica písana v Python pre vykonanie základných príkazov na shell, lokálne i na vzdialených serveroch a pre kopírovanie a sťahovanie súborov.
Iný PHP nástroj podobný Capitano s pripravenými postupmi pre Symfony.
Bundles
Existuje niekoľko bundles pre nasadzovanie prístupné v konzole Symfony.
Zaujímavý je EasyCorp easy-deploy-bundle.
Vo windows10 d:\xampp\htdocs\nasesk\composer.json som umiestnil "easycorp/easy-deploy-bundle": "*", a spustil príkaz composer update
Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 1 install, 0 updates, 0 removals - Installing easycorp/easy-deploy-bundle (v1.0.2) Downloading: 100% Writing lock file Generating autoload files > Incenteev\ParameterHandler\ScriptHandler::buildParameters Updating the "app/config/parameters.yml" file > Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap > Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache
Do app/AppKernel.php pridané new EasyCorp\Bundle\EasyDeployBundle\EasyDeployBundle(),
Potrebuje mať verzie ako Git na nejakom serveri. Preto treba naštudovať prácu s Git: Git - Správa verzií, alebo článok začíname s githubem, konkrétne pre xampp git a cygwin windows git tutoria cygwin ssh
Základné skripty
Samozrejme môžete využívať shell. Ant či iné zabudované skripty pre nasadzovanie vašich projektov.
Bežné typy úloh po nasadení
Po nasadední zdrojových kódov náš čakajú ďalšie kroky.
A) zisti požiadavky na systém
Zisti, či server poskytuje čo treba php bin/symfony_requirements
B) nastav konfiguračné súbory
Väčšina aplikácií Symfony má svoje parametre v súbore app/config/parameters.yml. Tento súbor však nemá byť nasadzovaný, lebo Symfony si ho automaticky vytvára zo súboru app/config/parameters.yml.dist, tento súbor je šablónou, preto musí byť tento súbor nasadzovaný.
Ak vaša aplikácia využíva premenné prostredia namiesto týchto parametrov, potom musíte tieto premenné prostredia definovať aj na produkčnom servri.
C) inštaluj / update váš Vendors
Update môžete urobiť ešte predtým, než kódy nasadíte alebo tam. Ako zvyčajne robíte.
D) vyčistiť cache Symfony
Nezabudnite vyčistiť cache warm-up cache.
php bin/console cache:clear --env="prod" --no-debug --no-warmup php bin/console cache:warmup --env="prod"
E) Dump Assetic asset
Ak používate Assetic.
php bin/console assetic:dump --env=prod --no-debug
F) Iné veci!
Napríklad:
- spustiť migráciu databázy
- vyčistiť cache APC
- spustiť
assets:install
(už sa postaral composer intall) - pridať alebo upraviť CRON úlohy
- publikovať assets na CDN
- ...
Životný cyklus aplikácie: pokračovanie integrácie, test kvality, atď
Vývoj aplikácie má aj iné kroky než vývoj a nasadenie. Dôrazne doporučujeme zaistiť možný rollback, návrat k predchádzajúcemu stavu, ak niečo nevyšlo.
Užitočné linky
- Stackoverflow, moving app to production mode in symfony 2
- Pablo Godel - Deploying Symfony (youtube) Automatic: developer → github → jenkins (do a testing) → ansible (to production) → notifications → developer