Какво означава deploy, deployer й къде й да какво се ползва?

Ticketa

Registered
Здравейте,
Много често започнах да срещам думичките deploy/deployer основно свързани с PHP ?
- какво е
- за какво се ползва
- как се ползва
- защо се ползва
- какви плюсове й минуси има
- как това нещо би допринесло за един проект?

За напредналите въпроса може да ми е глупав, но важното е до разбера какво е deployer.

Намирам информация , но само на английски - скаран съм с него
https://deployer.org
 
Работиш по проект. По принцип имате няколко staging сървъра, да речем за примера UAT и Production.

Когато работиш по този проект, ти по принцип работиш локално, което се води development environment.

Естествено, когато оправяш нещо, не го оправяш директно на Production сървъра. Просто не е желателно, да не кажа забранено.

Deployment е процеса, в който искаш обновниш някой от сървърите с последните ъпдейти, които ти и тима ти сте направили.
Това се прави посредством deployer.
Deployer-a e софтуер, който настройваш да комуникира със сървърите, които имате налични, както и с кода(принципно github repository). Той е отговорен да вземе последните промени и да ги качи на сървъра, който си му казал. В света на PHP принципно е това, както и може да прави определени конфигурации, ако е нужно, да билдва CSS и JS assets и т.н.

Удобството на деплойъра е, че не е нужно ръчно всеки път да ходиш по сървърите (чрез SSH) и да правиш всичко това ръчно. Просто го конфигурираш какво искаш да прави и ще го направи на всички сървъри еднакво. Това е особено полезно, ако имаш няколко production сървъра, които се управляват с load balancer и искаш по един и същи начин всичко да се изпълни. Така няма да се притесняваш, че си забравил нещо да изпълниш на някой от сървърите, по време на release.

Друго полезно е, че deployer-a може да си прави архиви на предходни release-и и в случай, че нещо с новия се обърка, винаги можеш да rollback-неш до предния стабилен, за да може потребителите да продължат да използват уеб сайта(или каквото е там).

Ако правиш всичко това ръчно всеки път, когато правиш release, представи си колко време ще ти отнема, дори да трябва да го качиш на тестовия сървър(UAT).

Не се сещам за минуси. Минус може да е просто деплойъра, който ползвате. Ние на работа ползваме Capistrano, който е писан на Ruby, а аз чисто и просто не харесвам руби като език.


Надявам се, че отговора ми е задоволителен.
 
Благодаря за информацията. Явно съм още в епохата на динозаврите. Всимко го правя ръчно - всеки път. Трябва да прегледам някой друг урок като за "начинаещ" за деплой.
 
Зависи от цялостния ти workflow, така че трябва да се нагодиш.
 

Горе