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:

25961 questions
8
votes
1 answer

How to disable source code publishing in ASP.NET 5 apps?

Here is how the deployed content looks like after publishing (on Azure Website): /approot/packages - NuGet packages /approot/src - all the source files from the solution /approot/global.json - a list of…
8
votes
1 answer

Application Error after deploying Meteor 1.0 app on heroku

I'm trying to deploy a meteor.js app (v 1.0) on heroku using the following buildpack: https://github.com/AdmitHub/meteor-buildpack-horse and following along this…
smokingcat
  • 83
  • 5
8
votes
3 answers

When open-sourcing a live Rails app, is it dangerous to leave the session key secret in source control?

I've got a Rails app that's been running live for some time, and I'm planning to open source it in the near future. I'm wondering how dangerous it is to leave the session key store secret in source control while the app is live. If it's dangerous,…
Robert Speicher
  • 15,382
  • 6
  • 40
  • 45
8
votes
4 answers

PHP Deployment to Live Server

I am new to this, I just reading about how I should not edit code on the live production server. I don't know anything about source control or SVN. I would like to start coding on a test server then once everything is confirmed working, I want to…
zx.
  • 249
  • 2
  • 4
  • 12
8
votes
6 answers

How to get the installation directory?

The MSI stores the installation directory for the future uninstall tasks. Using the INSTALLPROPERTY_INSTALLLOCATION property (that is "InstallLocation") works only the installer has set the ARPINSTALLLOCATION property during the installation. But…
Michael Damatov
  • 15,253
  • 10
  • 46
  • 71
8
votes
1 answer

Which effects does the Dependency Inversion Principle have to a project structure?

In case I want to use the DIP to develop a hypothetical modular C++ project. Because of the modularity I choose to implement one specific feature completely in one library A. Another library B (or two, or three ...) is using this feature (e.g. a…
8
votes
3 answers

How to deploy EJB on server?

I am learning EJB3 from last few days. I have many questions regarding EJB, application servers and deployment of EJB. To start with, I have created one simple helloworld stateless session bean but I don't know how to deploy it on server. It has…
Shekhar
  • 11,438
  • 36
  • 130
  • 186
8
votes
3 answers

How do I retrieve an artifact checksum from Nexus using their rest api via curl?

I am trying to verify the checksum of the artifacts I am downloading from Nexus. I can grab the artifact and download them and check their md5sum or sha1sum, but I need to check this against the actual sum from Nexus so I can verify they are…
Elocnatsirt
  • 95
  • 1
  • 1
  • 7
8
votes
2 answers

Docker deployment workflow with git

What is the best way to deploy a docker container to a production environment? Add a Dockerfile to the git repository and run docker build on the production system Commit changes to a container with docker commit and push it to a private Docker…
Youssef Bouhjira
  • 1,599
  • 2
  • 22
  • 38
8
votes
1 answer

nginx.conf (permission to write denied). How do I fix this?

So I am trying to follow the tutorial here: https://gorails.com/deploy/ubuntu/14.04 to deploy a Rails app. When I tried to edit the nginx.conf at (/etc/nginx/nginx.conf) file, it tells me I have read only permission, even though I followed the…
user3477051
  • 409
  • 3
  • 6
  • 13
8
votes
8 answers

How to run a Qt Program without Qt itself being installed?

I have written a program with Qt5.3.1 and run it on my development machine where it works fine. I copied all necessary .dll files into the folder where my .exe is. These…
D4rth B4n3
  • 1,268
  • 2
  • 17
  • 26
8
votes
1 answer

Deploy a Docker image without using a repository

I'm building a Docker image on my build server (using TeamCity). After the build is done I want to take the image and deploy it to some server (staging, production). All tutorials i have found either push the image to some repository where it can…
tillda
  • 18,150
  • 16
  • 51
  • 70
8
votes
4 answers

Bundle .NET dlls to run application in .NET-less machine?

AFAIK, ngen turns MSIL into native code (also reffered to as pre-JIT), however I never payed too much attention at it's startup performance impact. Ngen'd applications still require the .NET base class libraries (the runtime). Since the base class…
Camilo Martin
  • 37,236
  • 20
  • 111
  • 154
8
votes
1 answer

Permanently switching user in Capistrano 3 (separate authorization & deploy)

We have following pattern in server management - all users do have their own user, but deploy is fully performed by special deploy user, without direct login possibility. We used this method in Capistrano 2.x: default_run_options[:shell] = "sudo -u…
Meredian
  • 930
  • 8
  • 23
8
votes
2 answers

How do I deploy applications in run as administrator mode?

How Do I deploy applications so that they require administrator rights without the end-user doing that by hand? I use Delphi 2009 to build the application.
Ivan Prodanov
  • 34,634
  • 78
  • 176
  • 248