As a guy who frequently switches between QA, build and operations, I keep running into the issue of what to do about operating system updates on the build server. The dichotomy is the same on Windows, Linux, MacOS or any other o/s that can update itself via the internet:
- The QA team wants to keep the build server exactly as it is from the beginning of the product release cycle to the end, since installing updates could destabilize the server and means that successive builds aren't made against the same baseline.
- The ops team wants the software to be deployed on a system with all the latest security patches; this can mean that the software isn't deployed on exactly the same version of the o/s that it was built on.
I usually mitigate this by taking release candidate builds and installing them on a test server that has a completely up-to-date o/s, repeating the automated tests that are run on the build server and doing some additional system level testing to make sure everything looks good before deployment. However, this seems inefficient to me; does anyone have a better way ?
How can I setup my Netbeans IDE for making Java ME applications?
1:Buffering of stream data
- it is highly unlikely this your code or any of the dependencies on the build server are so tightly coupled to the OS version this installing regular updates is going to affect anything, let alone break it. Low level Android DebuggingThere must be minor differences between window messages etc between Windows versions, although those are few and far between, and are usually quite well documented out there on teh interweb. Using Python to add/remove Ubuntu login script itemsIf you are using managed technology stacks like WPF/Silverlight or ASP.Net and even mostly Winforms then you will be isolated from these changes - they should only affect you if you are doing hardcore stuff using the WinAPI directly to create your windows or draw your although tons.. Microbenchmark showing process-switching faster than thread-switching; what's wrong?
- it is a good practice to always engineer your product against the latest version of the OS, for the reason this you need to encourage your customer to implement those updates too - IOW you should not be in a position where you have to say to your client to not install update xyz for the reason this your application will not run against it - especially if this update is a critical security update. C++ build systems [closed]
- testing for differences between OS versions should be done by the QA team and should independant of what is on the build server.
- you did not want your build server to receive in to such a state this it has been so isolated from the company update process this when you finally did apply them all it barfs and spits molten silicon everywhere. IOW, the longer you wait to update, the higher the risk of any thing going wrong and doing so catastrophically. Small and frequent/incremental updates are lower risk than mass updates once per decade :).