12/15/2019, 4:08 AM
Hello, pardon my ignorance but I am going to ask a few stupid questions: I have been studying Kubernetes and Docker for the past two weeks, I am implementing a stack of services at my company that necessitated the use of containerized applications due to some of its core dependencies. To me, it seems like YAML is a poor way to go for managing infrastructure and configuration, so having a typed-language that can guide you during development in your IDE is a huge no-brainer. So Pulumi looks fantastic. One question I have though, is that even after reading the docs extensively, I am having a difficult time understanding why the message consistently seems to be for reproducibility. What I mean by that is, once you have configured and deployed your Kubernetes cluster and service stack, that is kind of it, isn't it? You wouldn't want to continuously re-deploy everything over and over by executing your infrastructure code. Another thing that I see is examples of deploying Serverless functions like Lambas, where the Lambda code is directly in the deployment function. That is neat, that eliminates the headache of having to separately manage the functions code and its deployment, but how do you develop/test that? I guess I am just unsure of what the typical workflow for this stuff is. Do you write your Pulumi infrastructure once, leave it there in your repo, and keep it around on the off-chance you have to re-deploy everything. Or just add small services every now and then? Its not like docker, where you can distribute the infrastructure file to your teammates so that they can get set up locally to develop. Sorry for the wall of text, but I am so lost in this whole Docker/Kubernetes and Serverless infrastructure, coming from a career of traditional monolith apps deployed with git-hooks to a plain cloud server.