Richard Bucker

software lab in a box - step 1

Posted at — Dec 12, 2018

I’ve been fumbling around with chickens and eggs to figure out how to deploy a good software development lab and production environment. There is a constant battle between management and developers to provide good enough security, disaster recover, usability; as every three legged stool has.Developers want to be trusted with the keys to the space shuttle but we know that kids like to take cars for joy rides and while some joy rides end without being caught there are others that end in disaster. Furthermore, moving something from the lab to production should require study and validation. And the fox should not be watching the hen house. (see any vampire or zombie movie)So, in the beginning of the deployment there is the big-bang or bootstrap. That starts in three places. [1]  basic hardware like desktops and laptops with the usual configuration [2] software starting with communications like email and messaging. Somewhere in (1) and (2) you have to buy server hardware like mail servers or services like gmail etc.[3] software assets need to be stored as development begins. And if you’re ahead of the curve then you need CI/CD. I think a good starting point here is something like FreeNAS or Synology. They offer plugins for gitlab and even webmail. One can also run gitlab runners on desktops when they are idle in addition to dedicated servers and cloud services. I’d like to deploy runners adhoc but there is a huge cost unless the build process is actually proportionally longer…. for example I have some reports that run once a month and they need 32GB or ram to complete the task. The report also runs for about an house so a deploy, run and destroy would be fine since it’s only once a month and we’re not paying for idle system time.