Тема дня: ода к devOps специалистам
На разных проектах приходилось сталкиваться с devOps специалистами, которые видят
свои функциональные обязанности совершенно по-разному. Поэтому решил поделиться моим видением того, что должен выполнять devOps или devOps команда в зависимости от размера компании, количества проектов и т д.
devOps должен брать на себя ответственность за всё, что связано с инфраструктурой. Для меня devOps - это аналог IAAS (infrastructure as a service). Я бы его даже называл IAAS man'ом. Как супермен, но про инфраструктуру. Я не хочу, чтобы разработчики задумывались о том, где хостятся и как хостятся их приложения. Пусть им в этом поможет IAAS man!
Итак, IAAS man, по моему скромному мнению, должен:
- выстраивать CI/CD pipeline. Тулзы и метрики остаются за разработчиками
- поддерживать стабильность CI/CD pipeline. Если ваши ПРы не проходят какие-то Quality Gates, то у разработчика не должно быть сомнений в том, что причина в коде. Возможно многие узнают ситуацию, когда при фэйле каких-то проверок приходится в первую очередь проверять, проблема в ci или же в коде, а уже потом лезть в код или перезапускать проверки руками. И у некоторых devOps действительно с этим проблемы
- выстраивать инфраструктуру.
- поддерживать инфраструктуру. Сталкивался с тем, что хостер отключал сервера из-за отрицательного баланса на счету. Или devOps перенастраивает NGINX ночью, и вновь забывает про CORS запросы. Команда фронтенд разработки обоснованно ругается, а devOps отсыпается с утра.
- настройка бэкапов и сиcтемы резервного копирования.
- мониторинг. А точнее проактивный мониторинг. Информацию о том, что у нас что-то сломалось и отвалилось, должна приходить от devOps'ов. И это касается не только production среды. Если о падении какой-то ноды сообщают пользователи, служба поддержки или разработчики - мониторинг не работает. Ошибки приложений остаются за разработчиками.
- поддержка QA специалистов. Распараллеливание тестов, запуск на нескольких нодах, настройка тестовых сред обычно не по плечу QA специалистам. Тут им могут помочь либо разработчики, либо devOps. Единственное, QA среды очень нестабильны, поэтому для devOps они могут стать настоящей головной болью.
Не буду дальше копать в глубь и говорить, что есть devOps, специализирующиеся на каких-то более узких вещах, например, масштабируемости и надёжности. Это out of scope и тут одними devOps'ами не обойдёшься
Post #15
334