Questions tagged [deployment]

A series of activities that makes a program available for use (usually in test or production environments)

Deployment consists in a series of activities needed to get a program available for use outside a development environment (for example on web sites, PCs, smartphones and/or tablets).

At a high level, deployment activities need to:

  • compile the program in a suitable packaging format;
  • distribute the program to the final environment (e.g. via the Internet, an app store or CDs);
  • install dependencies (usually libraries, runtimes and application servers);
  • configure the target environment (e.g. where the database is or runtime parameters of the application server).

A deployment can be done in several ways according to the program type, for example:

  • to deploy a web application written in Java we can add JARs to web containers;
  • to deploy a desktop application on Windows we can create a setup program and burn it to CDs;
  • to deploy an application to a cloud environment (like Heroku or Windows Azure) we can use ad-hoc programs or widely known programs like git that trigger a series of operations on the server side;
  • to deploy an application to an app store we may need to send the application to the store owner for approval. If the application is approved then the store owner will publish the new version, making it available to the users;
  • a deployment may require to distribute specially configured virtual machines with the right version of software and dependencies.

There are many challenges in deployment revolving around two main themes:

  • to ensure that programs exhibit the same behavior in production as they do in testing and development. To achieve this, usually there are several test environments (beyond development) in which the software is deployed and tested thoroughly before being released in the production environment. is the strategy of deploying to a subset of users to detect production-only errors with minimal user impact.
  • to be able to rollback to a previous stable version in case the current version behaves erratically. The deployment environment may help by providing some facilities to retain previous versions and install them when needed. is a deployment strategy which enables fast, robust release and rollback.

Frequently Asked Questions

People often ask about these topics:

22585 questions
852
votes
34 answers

Permission denied (publickey) when deploying heroku code. fatal: The remote end hung up unexpectedly

I'm attempting to deploy my code to heroku with the following command line: git push heroku master but get the following error: Permission denied (publickey). fatal: The remote end hung up unexpectedly I have already uploaded my public SSH key,…
vich
  • 11,638
  • 13
  • 46
  • 60
592
votes
9 answers

.war vs .ear file

What is the difference between a .war and .ear file?
ria
  • 7,644
  • 10
  • 36
  • 46
416
votes
19 answers

Deploy a project using Git push

Is it possible to deploy a website using git push? I have a hunch it has something to do with using git hooks to perform a git reset --hard on the server side, but how would I go about accomplishing this?
Kyle Cronin
  • 72,761
  • 40
  • 144
  • 160
322
votes
22 answers

How to manage local vs production settings in Django?

What is the recommended way of handling settings for local development and the production server? Some of them (like constants, etc) can be changed/accessed in both, but some of them (like paths to static files) need to remain different, and hence…
akv
  • 3,433
  • 3
  • 15
  • 11
317
votes
16 answers

Enterprise app deployment doesn't work on iOS 7.1

We distribute apps via an Enterprise account, using an itms-services:// URL. This has always worked fine, but after installing the iOS 7.1 beta on our iPad it refuses to install. Instead we just get the generic Cannot connect to example.com message…
Mark Parnell
  • 9,115
  • 9
  • 28
  • 36
283
votes
13 answers

Create a directly-executable cross-platform GUI app using Python

Python works on multiple platforms and can be used for desktop and web applications, thus I conclude that there is some way to compile it into an executable for Mac, Windows and Linux. The problem being I have no idea where to start or how to write…
Teifion
  • 98,441
  • 75
  • 152
  • 192
270
votes
8 answers

Run command on the Ansible host

Is it possible to run commands on the Ansible host? My scenario is that I want to take a checkout from a git server that is hosted internally (and isn't accessible outside the company firewall). Then I want to upload the checkout (tarballed) to the…
Ross
  • 43,016
  • 36
  • 114
  • 168
233
votes
3 answers

How do I install package.json dependencies in the current directory using npm

I have a web app: fooapp. I have a package.json in the root. I want to install all the dependencies in a specific node_modules directory. How do I do this? What I want Lets say I have two widget dependencies. I want to end up with a directory…
Daniel Beardsley
  • 18,289
  • 20
  • 62
  • 76
219
votes
15 answers

IIS7 deployment - duplicate 'system.web.extensions/scripting/scriptResourceHandler' section

On attempting to deploy a .net 3.5 website on the default app pool in IIS7 having the framework section set to 4.0, I get the following error. There is a duplicate 'system.web.extensions/scripting/scriptResourceHandler' section …
user20358
  • 12,976
  • 29
  • 106
  • 174
199
votes
25 answers

Causes of getting a java.lang.VerifyError

I'm investigating the following java.lang.VerifyError java.lang.VerifyError: (class: be/post/ehr/wfm/application/serviceorganization/report/DisplayReportServlet, method: getMonthData signature:…
Jeroen Wyseur
  • 3,213
  • 3
  • 17
  • 15
196
votes
16 answers

How do I run a Node.js application as its own process?

What is the best way to deploy Node.js? I have a Dreamhost VPS (that's what they call a VM), and I have been able to install Node.js and set up a proxy. This works great as long as I keep the SSH connection that I started node with open.
respectTheCode
  • 40,233
  • 16
  • 70
  • 84
192
votes
5 answers

How to deploy correctly when using Composer's develop / production switch?

Composer has the option to load several dependencies only while being in development, so the tools will not be installed in production (on the live server). This is (in theory) very handy for scripts that only make sense in development, like tests,…
Sliq
  • 14,005
  • 24
  • 99
  • 137
175
votes
4 answers

How do I copy directories recursively with gulp?

I am trying to stage a project from a working directory to a server (same machine). Using the following code: gulp.src([ 'index.php', 'css/**', 'js/**', 'src/**', ]) .pipe(gulp.dest('/var/www/')); I would expect to see all the files…
M1ke
  • 5,739
  • 4
  • 24
  • 48
173
votes
2 answers

Checking out Git tag leads to "detached HEAD state"

I'm developing a deployment script for my git project and I just started using tags. I've added a new tag called v2.0: git tag -a v2.0 -m "Launching version 2.0" And I've pushed this tag to the remote repository git push --tags When I try to…
Khriz
  • 5,378
  • 5
  • 31
  • 36
170
votes
14 answers

Deploying Maven project throws java.util.zip.ZipException: invalid LOC header (bad signature)

I am getting the below exception when I run my mvn install. I have even deleted the local repository and ran again getting same exception. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.1:shade (default) on project…
Karthick
  • 1,845
  • 3
  • 13
  • 15
1
2 3
99 100