What do you utilize for maintaining consistency of Delphi dev environments across a dev team? It sure seems like it would be nice to use Vagrant and simply make a copy of a pre-built template...

Comments

  1. Prebuild a Virtualbox VM and get everything setup, and then copy to the team member's PC?

    ReplyDelete
  2. We use pre configured virtualboxes. It also saves a lot of time when there is a New version available.

    ReplyDelete
  3. We have a license per box. Every developer has one box.

    ReplyDelete
  4. One of the benefits of VMs is that you can simply recreate one as needed - so if you delete one and reclone a new one, are you re-licensing Delphi/components each time?

    ReplyDelete
  5. No. As long as you don't change the... Don't remember how it's called... 😉 but the unique id of the box, you don't have to relicense the components.

    ReplyDelete
  6. Gert Scholten "We use pre configured virtualboxes."

    I've said this a lot of times before, but Delphi is the only development language I know of where developers develop in virtual machines (as opposed to testing in them). And it's all because of the really poor deployment situation. Even GetIt hasn't really changed anything.

    I wonder if anyone has tried SaltStack, puppet, or other configuration management software to deploy Delphi? I've never come across any articles or blog posts about it.

    en.wikipedia.org - Comparison of open-source configuration management software - Wikipedia

    ReplyDelete
  7. Joseph Mitzen Interesting, I haven't heard of this kind of configuration tool before, I guess this kind of tools requires the software being configured support some kind of interface? Will try to find a time to look into them.

    ReplyDelete
  8. Edwin Yip In general they have some type of language/interface that one uses to issue commands and alter a system and use some protocol (SSH, ZeroMQ, etc.) to communicate with nodes. They can check whether a node is in compliance with a desired setup and if not execute the appropriate "recipes" or modules to change the node until it is correct. It's really useful in an enterprise where you may have to deploy a standard setup to dozens or hundreds of PCs or start up cloud instances.

    I doubt any of these systems handle a delphi install "out of the box" but if one wrote a recipe once one would then be able to redeploy it automatically in the future to a new PC or VM.

    The one I'm learning right now is Salt; here's a good overview:

    docs.saltstack.com - Salt Approach

    Basically a system is described through YAML and commands are regular CLI commands. "Communication from the Salt master is a lightweight set of instructions that basically says “if you are a minion with these properties: run this command with these arguments.” Salt minions determine if they match the properties when the command is received."

    ReplyDelete
  9. Joseph Mitzen Thanks for your VERY HELPFUL short description of such tools! On Windows, I remember the windows built-in installer service ( I don't remember how it's called) has the ability to perform massive deployment of software.

    ReplyDelete

Post a Comment