I’m lazy. There, I’ve said it. It’s that laziness that prevents me from creating “things” with layers of complexity and simplicity. I simply want to GST (get sh*t done) in the fewest keystrokes, lines of code, and features. All those things are nice to have but in all honestly get some revenue first. Paying customers with feature requests is better than no customers burning through investment.
I recall in one environment we talked about HA replication and scaling to 10s-100s of servers. That was a nice exercise, however, we always said “transaction volume would be a different class of problem to solve”. Sadly it never happened and we never grew past a single deployment and all of that DB and security replication cost money to develop and test… and worse support in production. And those features never generated a single extra dollar in revenue.So what does Packer get you? Frankly I’m not sure. They support a number of different targets but all of them require customization. I’m not sure you get real scale there when you later start adding chef, puppet or ansible. The layers and costs just continue to mount.
to regress for a moment, my bootstrap system is either a simple dedicated guest or some other system that resides inside the target network. This resource has access to the tools and the ability to run them. That could include docker, docker-machine, some credentials.At this point I have private script that can deploy an admin console. Once the admin console is created all of the clusters config scripts are loaded and deployed. Currently I’m using docker swarm with some minor k8s and k3s implementations. Once the cluster is ready it’s just matter of deploying apps and services. That in itself is just a matter of launching some docker stack or service commands. None of which requires packer, chef, etc… just simple shell commands. Once deployed normal orchestration applies.