Windows Exe Installer and Habitat... Should I even?

Definitely a noob question because I am finding it difficult to understand whether or not Habitat might help in my case...

  • We are deploying a multi-service .Net (4.7.2) application across multiple Windows servers
  • This is shipped as an exe and you select boxes to choose what service/components are installed on a given server
  • Thankfully there are parameters for running this installer silently :grinning:
  • Other requirements are SQL Server, RabbitMQ, Consul and IIS...
  • We use Elasticstack for monitoring etc. but let's not get too carried away at this point!
  • VERY OFTEN the customer provisioning the servers misses out a dependency or port setting :sob:
  • We've used Terraform but I'm not sure that's "integrated enough" to avoid introducing another set of issues... we also don't see a lot of customers using this.
  • We're using Jenkins and Artifactory so using the 'build' steps in Habitat isn't an option (no-one want's to redo this internally!)
  • No, the application cannot be Dockerized (yet)

I would love to include all the dependencies and port configs in with what we ship to customers so that we have less setup headaches

Is anyone able to provide a quick 'finger in the air' response as to whether I'm even looking in the right direction with Habitat? If we already have Terraform build scripts for Azure/GCP and VMWare that also take care of application installation am I just looking at duplicating the same work with a different tool?

It's possible I've just answered my own question there but since Chef has gone open-source I'd rather use/support you all if there's some benefit to be had over what we're doing already.

Thatโ€™s a great question. The problems you mention are definitely an area that Habitat was intended to address. You could templatize your configs so that ports are injected by the Habitat supervisor and handle special dependency installation via install hooks and Habitat runtime dependency management.

Now if you already have terraform scripts that automate this, some of this may be duplicated in your habitat hooks. However, its likely that Habitat templating and dependency management will eliminate a fair amount of raw shell script. You can also leverage the same scripting across platforms. Additionally, you get added functionality in terms of deploying updates.