136
votes
Accepted
What is the purpose of a dedicated build machine?
Normally you wouldn't just have a dedicated build machine, but also run a build server on that dedicated machine. A dedicated build machine merely offers the advantage of never blocking the work of a ...
107
votes
What is the purpose of a dedicated build machine?
In addition to Traubenfuchs' answer, you have hinted at another reason for a build machine in your question.
Just because the software builds on your machine, it doesn't mean that it will build on ...
105
votes
Accepted
Is it best practice to deploy a project to the server file by file manually?
Which is best practice? to manually deploy one project artifact each deployment or keep doing the file by file deployment?
Neither.
Best Practice is to automate your deployment, completely and ...
87
votes
Accepted
Are the development benefits of using Docker negated when using Java compared to other languages closer to Unix binaries?
Not at all.
Imagine you're running the version 1.8.0 of Java on both your development machine and the server. By the way, you're working simultaneously on two projects, both using Java.
One day, a ...
77
votes
What is the best way to record in git which commit is currently deployed to which environment?
This is not a problem that version control was meant to solve. Recording which commit is deployed to which environment is an artifact of the build process. If using an automated tool for build and ...
54
votes
What is the purpose of a dedicated build machine?
The main reason for having a dedicated build machine is to get consistent builds regardless of who is doing the build. Developer workstations are rarely (read: never) identical. It's hard to know ...
54
votes
TODO comments with deadlines?
This question is really two questions in one.
Todo comments
Of all the ways to track action items, this is the worst. TODO comments are good during active work or as a way of suggestion to a ...
35
votes
Are the development benefits of using Docker negated when using Java compared to other languages closer to Unix binaries?
You rarely just deploy a "Java App". Your java application has a lot of different support programs around it. We use Apache HTTPD, Apache Tomcat, ActiveMQ for messaging, an FTP Deamon, MySQL and a ...
24
votes
TODO comments with deadlines?
Do not use TODOs. You already have a TODO list in your project. It's called the issue tracker.
I think the real problem is in this sentence:
we can create a ticket in our issue management system, ...
20
votes
Accepted
Should minified CSS be stored in Git?
"It depends." For normal development tracking, no. For cloud and DevOps deployments, however, it's often convenient, or even required.
Most of the time,
@ptyx is correct. Indeed, his "no" could be ...
19
votes
Should minified CSS be stored in Git?
No.
Source control should only contain source.
If it's generated from source, it doesn't belong there - and should be generated by your build process.
The fundamental reason you don't want to source ...
19
votes
What is the purpose of a dedicated build machine?
The other answers quite correctly noted that you should automate the build, which means it isn't necessary to walk to another office. However, let me propose a certain number of steps you could take ...
16
votes
What is the purpose of a dedicated build machine?
... instead of getting an actual machine in our office to use, we're having to share a single machine with several other groups ...
You say that like it's a bad thing.
You now have a common build ...
16
votes
Can you do continuous deployment with junior programmers?
Why not? Any of the things you describe would be a problem whether you use continuous deployment or not. The problem, it seems, is that you are worried the juniors will make a catastrophic mistake. ...
14
votes
Is it best practice to deploy a project to the server file by file manually?
Manual steps take a lot of effort and are risky: you might forget a necessary file. Maybe not everyone in your team knows which files need to be copied. All of these issues make deployments big, ...
13
votes
Accepted
Is my app version a sensitive information
A version number is a minimal hindrance to an attacker and a great help to defenders. Frequently, attackers will just try an exploit without bothering to check a version number. I get several ...
13
votes
How to apply environment specific changes within the classic Git branching model?
Git is not suitable for managing different variants of your code.
Git is not a deployment mechanism.
Git is just a source code management system.
One thing that gets lost when using git push as a ...
13
votes
Accepted
Deploy C#/C++ binaries incrementally by patching the difference
You are looking for a tool that can calculate, transfer, and apply binary diffs.
You cannot transfer just modified files, since all files will be modified. However, most parts within the files will ...
12
votes
What is the best way to record in git which commit is currently deployed to which environment?
Don't record this kind of metainformation in the same git repository as your project. Record it in a separate git repository whose history is the history of deployed revisions. In its simplest form, ...
11
votes
Accepted
Easy Licensing enforcement techniques for C++ Program in Windows
Realistically, there are none. If you make a hash based on the user's hardware, then when they upgrade a hard drive or CPU or network card, or heaven forbid buy a new computer, the software stops ...
11
votes
Terminology: Blue-Green deployment
The point of the “blue–green” terminology is that there is no permanent hierarchy between these environments. Either environment may currently have the role of the production system, with the other ...
10
votes
Accepted
What is the difference between software deployment and software release?
I don't think the terms release" and "deployment mean exactly the same, thing I'm not sure they should be used interchangeably like that.
From a web development perspective:
Deployment refers to ...
10
votes
Deploy C#/C++ binaries incrementally by patching the difference
I suggest rsync. Using rsync you don't need to correctly reimplement vast majority of fuctionality like diff algorithm, working with files, network protocol to transfer data and so on.
Currently we ...
9
votes
Accepted
Java Properties Files for Both Operations and Developers
Use a tiered approach (not all tiers are necessary):
Load base properties from classpath.
Override with properties from /opt/app/conf, IFF such a file exists.
Override with properties from $HOME/app/...
9
votes
TODO comments with deadlines?
What I'm looking for is a way that a TODO comment can have a deadline against it, and our Continuous Integration system (current undecided which we'll use) would reject the build if this deadline was ...
9
votes
Are the development benefits of using Docker negated when using Java compared to other languages closer to Unix binaries?
This question would also be pertinent for golang, where you can just extract statically linked binaries and run them somewhere, as opposed to Python or C++ where you usually have a large number of ...
9
votes
Is it best practice to deploy a project to the server file by file manually?
Best practice would be to implement an automated process of some sort.
Be careful to check that there isn't a special reason for the 'file by file' approach which you would have to take into account.
9
votes
What is the origin of "deployment environments" (dev/test/staging/prod)?
The environments of Development, Test, Acceptance and Production evolved out of necessity, pragmatism and convenience. In other words, they exist because they make sense.
The origin of these ...
8
votes
Terminology: Blue-Green deployment
You could trust my answer over ones that disagree with it simply because of the votes it receives but I think I owe you more than just giving the correct answer. I'll show evidence that it's correct.
...
7
votes
Blue Green Deployment With Single Database
Load Balancer
For the second point, use a suitable load balancer. You can shift a portion of the traffic across, first to prove the new deployment, then to slowly ramp it up. It also allows a quick ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
deployment × 321continuous-integration × 25
git × 24
architecture × 21
version-control × 19
release-management × 16
design × 15
web-development × 14
java × 13
python × 13
.net × 13
web-applications × 13
database × 12
builds × 12
continuous-delivery × 12
asp.net × 11
versioning × 11
configuration-management × 11
testing × 10
development-process × 10
configuration × 10
devops × 10
installer × 10
server × 9
c# × 8