What is generally accepted as best practice or the preferred method to do deployment of web apps: Run the deployment from you own workstation or use one centralized server or VM to run the deployments from? What are the pro's and cons of each approach? Are there tools i should know of when running deployment from a centralized server?
I'm asking because at work we have about 8 developers doing about a project or 2 per month. We all use the same codebase/framework and build from there so the deployment should work the same for all of the projects. Yet setting up each workstation with the right libraries is cumbersome and maintenance intensive (ssh2lib updates, etc ...) so i'm thinking of moving all thinkgs deployment to a central server configured and updated specifially for this purpose. What are the thoughts on this?
PS: i know of CI, hudson, phpundercontrol, etc ... so i don't need an introduction to these, i just want to know if there is any added (dis)advantage to choose a server over workstations.
Note: our current apps run on LAMP, utilize git as vcs, u开发者_运维知识库se three tier deployment (dev, staging, live) and contain no unit testing.
Definitely centralized. As developers we tend to install all sorts of things on our boxes to "just make it work right now" and then forget about what we did. In a centralized server, that takes a bit more intention and you hit less "huh, it worked on my machine" issues.
精彩评论