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
7
votes
2 answers

NHibernate MappingException: Could not compile the mapping document

On my dev web app NHibernate is working just dandy. When I precompile and deploy the site, I get a MappingException when the SessionFactory is created. Here's some info from the trace: NHibernate.Cfg.Environment 2010-07-15 09:20:59,577 [7] INFO…
David
  • 14,678
  • 20
  • 80
  • 145
7
votes
3 answers

Multistage deployment with ansible

What approach would you advise to organize multistage deployment with Ansible in case you have different variables for stages? The main idea is defining group variables for different stages. There are two…
Nick Roz
  • 3,002
  • 2
  • 30
  • 49
7
votes
1 answer

alter multiple mysql databases at once (SAAS database changes)

We are running a PHP (zend framework) app that creates a database per user (for security/backup/and others reasons). All these databases have exactly the same structure and that will always be the case. When we deploy new features we'll need to…
Jorre
  • 15,803
  • 29
  • 91
  • 137
7
votes
3 answers

Any way to have Java Web Start automatically install shortcuts?

We're deploying a Web Start app that I and the other developers know how to install the shortcuts for (Control Panel -> Java on Windows, /Applications/Utilities/Java Preferences on OS X), but we have no reason to believe that end users know how to…
sbook
  • 811
  • 1
  • 8
  • 12
7
votes
2 answers

Push to Heroku fails: Could not find net-ssh-2.10.0 in any of the sources. Failed to install gems via Bundler

I tried pushing my app to heroku but get the following error: remote: -----> Using Ruby version: ruby-2.2.2 remote: -----> Installing dependencies using 1.9.7 remote: Running: bundle install --without development:test --path vendor/bundle…
Nick
  • 2,765
  • 2
  • 27
  • 71
7
votes
3 answers

How to provide access to a git repository that is used by Composer

To manage my libraries I use Composer, so I set the dependencies in composer.json and then add (ever in composer.json) the remote addresses of the private repositories where the code resides. When running composer update/install I'm prompted with a…
Aerendir
  • 5,365
  • 6
  • 45
  • 85
7
votes
2 answers

Logging for application in different environment Log4j

I am developing a logging framework using Log4j. I am not able to figure out how to maintain separate log files for different environment, i.e., development, testing, staging and production.
Nrusingha
  • 813
  • 4
  • 18
  • 32
7
votes
1 answer

Ansible vs Jenkins

Our team needs an automated deployment tool and I have concentrated on two major options: Ansible and Jenkins. Could you please consult me about pros and cons of each and also, if you know a better deployment tool, please recommend them and state…
Afshin
  • 171
  • 1
  • 2
7
votes
3 answers

How to Continuously Develop and Deploy an Access 2010 Database Application

I've been developing an Access 2010 Database Application, let's call it Skill.accdb. I'm at the stage where I want to start deploying it so users can start using it and continue developing at the same time. I've been reading…
Martin F
  • 540
  • 5
  • 26
7
votes
3 answers

laravel 5 heroku 404 not found ngix

I'm getting a pretty weird error while trying to deploy a Laravel 5 application to Heroku. If I try to access my root domain https://my-app.herokuapp.com it works fine. However, if I try to access and other domain that is / something aka…
ThreeAccents
  • 1,721
  • 2
  • 11
  • 20
7
votes
1 answer

Deploying Golang web app static files with Docker container

I'm working on a small web application that has some static files (configs and html templates): ├── Dockerfile ├── manifest.json ├── session │   ├── config.go │   ├── handlers.go │   └── restapi_client.go ├── templates │   ├── header.tmpl │   └──…
Vitaly Isaev
  • 4,600
  • 4
  • 40
  • 57
7
votes
2 answers

Best way to deploy website - App pool start stop or website start stop

What is the best way to deploy changes to a website( replace the dlls and other required files) ? Should the website be stopped and started or should the app pool be stopped and started? I read that when a website is stopped, it still has the…
Tulika
  • 300
  • 5
  • 15
7
votes
4 answers

What would you use for deployment scripts in Java?

I'm working on a Java web project that uses Maven to build its artifacts. At the end of the Maven build we have a few jar and war files that we need to deploy onto our development/testing environment. Right now we're using a pretty hefty Ant script…
Nadav
  • 1,762
  • 2
  • 16
  • 20
7
votes
1 answer

How do you deploy a website and database project using TFS 2010?

I've been trying to figure this out and so far haven't found a simple solution. Is it really that hard to deploy a database project (and a web site) using TFS 2010 as part of the build process? I've found one example that involved lots of…
Bryant
  • 8,620
  • 31
  • 52
7
votes
2 answers

How to run InfluxDB on Heroku?

Is it possible, and if so, how? I'd like to be able to reach it from my existing Heroku infrastructure. Will I need a Procfile? From what I understand it's just a standalone binary written in Go! so it shouldn't be that hard to deploy it, I'm just…
dsp_099
  • 5,021
  • 13
  • 59
  • 115