I don’t think you’re disagreeing with me. Developers should know what their code runs on. They shouldn’t have to add managing that to an already full schedule of work. That’s the difference.
Back when I was in the real world [1] working for a startup, I would do your typical serviceless solution with Lambdas, S3,SQS, etc. I couldn’t just use ClickOps and create everything on the console and expect someone else to recreate everything with IAC. I had to know how to do it.
I think to push back is rightfully coming from the “ops” part. I consider “creating the CloudFormation/CDK/Terraform” code as part of “development” as part of coding.
If you use Docker, wouldn’t you consider creating the Dockerfile as part of development?
Yes I knew AWS pretty well by the time I left and I needed to know it to be a good developer in that context and designed most of the processes around it. But I refused to do “operations” - ie “infrastructure babysitting”
There is a huge distinction between “I don’t think I should have to know how everything works” and “don’t call me in the middle of the night when something goes down “.
[1] I’m the first to admit that I left the “real world” once I started working in the cloud consulting department at $BigTech
> I think to push back is rightfully coming from the “ops” part. I consider “creating the CloudFormation/CDK/Terraform” code as part of “development” as part of coding.
> If you use Docker, wouldn’t you consider creating the Dockerfile as part of development?
Sure you could argue a developer could, or even should create these things in theory. The problem is then when it goes down I have made two problems out of one. Now I have to manage the infrastructure of a system and what is running on it. Realistically, and even in my current job, it's actually several systems. Now when something breaks I have to pray I can fix it. Instead of allowing a team of infrastructure professionals to at least insure the hardware is working my 8 hour day turns into 14 or 16 very quickly the second one thing goes wrong.
So if I need to create a bunch of Lambdas, queues, sns topics a few dynamodb tables an S3 bucket, etc and tie it all together, are you proposing that the developer should just create everything in the console and then call over someone else to go behind me and write the infrastructure as code?