Весёлая штука It Operations Capacity Death Spiral. Хоть бы раз поучаствовать в её начале, обычно когда прихожу дело уже ближе к концу подходит.
Хотел бы перечислить несколько увиденных причин почему такое случается. Хотя в каждой компании наверное конкретные причины разные.
- Слабая взаимосвязь между видимым результатом работы и настоящим результатом работы в Operations. Настроил mysql и сделал на него dnat? Молодец, делай следующий тикет! Виртуальная машина, почтовый сервер - всё готово очень быстро, не админ а золото.
Настоящие результаты проявляются через время. Таких компонентов становится сотни штук, и они постепенно начинают ломаться, не соответствовать текущим требованиям по нагрузке и гибкости сопровождения. Внезапно становится понятна ценность repeatable build library и документации, но всё хозяйство уже стало неуправляемым. Тушение пожаров отнимает всё время, сложность изменения становится очень большой, требования бизнеса по изменениям не выполняются совсем. И тут уже админ пашет как раб на галерах, с трудом успевая фиксить и подпирать костылями, но внешнему наблюдателю уже не видно никакой полезной работы. В этом случае админ считается не годным, хотя фактически только он спасает систему от полного разрушения.
- В админы идут только те, кто не может стать разработчиком. А все кто может - только в разработчики и никуда иначе. Наивные. Какой смысл писать хороший код в изоляции от исполняемой среды, если этот код потом будет отлаживаться, тестироваться и исполняться в ТАКИХ условиях? Платить много - не работает, никто из "разработчиков" не подпишется работать в этих ваших тяжёлых условиях чорную рутинную работу ни за какие деньги.
- Слабая или отсутствующая коммуникация между dev и ops. Общение только через тикеты сервисдеска.
- "Сделайте мне пожалуйста mysql сервер"
- "Сделали, проверяйте"
- "Работает, спасибо!"
Для чего сервер? Для тестов, для прототипа, для продакшена? Критичный к даунтайму, не критичный? Высокая будет нагрузка или вообще не будет нагрузки? Доступ нужен из интернета, из локальной сети разработчиков, со стейджинга, с продакшена? Нужен ли доступ ssh?
Чаще всего не нужно делать сразу супер-сервер с мощнейшим железом, даже если в будущем это будет высоконагруженный продакшен. Но разработчик в этом тикете подразумевает что сервер сделан "как надо", затюнен под его шаблон использования, сделаны избыточные бэкапы, есть отлаженный процесс обновлений, и переход в продакшен не составит труда. А админ уверен что разработчику это нужно только "потыкать" немного.