Answer the question
In order to leave comments, you need to log in
How do you "deploy" to "production"?
Question to the developers or the development team, it is possible that this also applies to studios that develop and support client sites.
Let's say you are working with a certain project, so you have the environment set up exactly for your needs "development" (web server, database server, etc.). Somewhere on a separate server (maybe completely remote) the same project is running, but already in the “production” environment, intended for the end user. You are definitely working with a version control system (svn, git, etc.). At a specific point in time, a certain task was completed in the dev environment (a stable revision was fixed). And it is necessary to transfer the completed work to “production”.
The question is what tools do you use.
Answer the question
In order to leave comments, you need to log in
I'm programming on Rails. For deployment I use Capistrano. Very comfortably.
We have a rather primitive system. The Django project is stored in mercurial, there are two branches: staging and production. All changes (with the exception of very urgent bug fixes) go to staging by default. At release, changes from staging are pushed to production, on the server, a self-written shell script performs a pull and restarts the server. The script is run manually.
It also uses buildout, which manages all project dependencies, two configuration files. The developer environment uses a configuration that includes django-debug-toolbar that defines secure defaults (eg using a PayPal sandbox instead of a real PayPal account, etc.). The server uses a configuration without debugging tools.
I use maven, three profiles are configured there - dev, staging, production, respectively, the required one is specified during assembly.
In terms of branches and other things, the Maven Release Plugin is used .
This is very short.
Sorry, but it's not at all clear what you want to hear in response to your question. After all, deployment tools are very closely related to the platform on which the application is built, from the server OS and from the web server that is used in production. Each technology has its own means.
For example, we have an ASP.NET application for which a NANT script has been written for automatic build. This script will also update the database and deploy the application to IIS.
But what use is this information to you if you have an application in PHP or Python, and everything is running under Apache and Linux?
Own Java servlet that stupidly does svn up, and all sorts of other little things.
In PHPStorm, I enable the option "After commit upload files to", and with each commit, it uploads the files itself.
svn + redmine + hudson + ant
That's the combination :)
All code is committed to SVN, with each commit related to a specific task in Redmine.
As testing and closing tasks, with the help of Hudson (Jenkins) and ant-a, an assembly is made, and rolled into pre-production. And from there already, in case of success, to the product. Each version (build) contains a diff that can be used to roll/roll back a patch.
The scheme is complicated, but it works. Before that it was a complete mess.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question