We always tend to have a moral implications of certain critical decisions taken for development irrespective of the realisation if the decision is critical or not. Say for example switching an entire stack for a team of developers or enforcing them to start using a new frontend framework, etc.
For now, I am trying to understand the implications of introducing docker to the development team. I have the following questions:
Why should a developer care about Docker ? His / Her job is to fulfil the business requirement and that's it. Why should he / she be bothered about the dockerfile or which orchestrator his / her app should be running etc.
When the application is crashed several times due to the issue in the orchestrator (swarm, kube, mesos) or due to poor orchestration of the developer due to lack of knowledge, who is responsible ? The one who sets up the orchestrator (DevOps maybe) or the developer himself ?
What is the role of SRE ? Should an SRE be keeping an eye on the infrastructure 24/7 or he / she should become a part of the dev team, fix development issue related to infrastructure, provide containerisation to the dev team, etc. Basically should he / she become a watch dog for the infrastructure or the one who becomes bridge between devs and devops to tackle infrastructure related issue.
Is it necessary for every developer to learn and understand the concepts of docker and various orchestration platform out there ?
Is docker just a tool for ease of deployment or it holds some value in the development as well (I can't think of one right now) ?
I think docker can become a playground for blame game and I wish to avoid it. I want to understand the roles that needs to be placed in Dev and DevOps teams in order to avoid chaos when the app fails to deliver its SLA.