В тех случаях, когда перед Ops возникают вопросы типа: «В чем моя миссия?» и «Что мне делать?», специалисты рекомендуют обратиться к DevOps-культуре. Этот совет оправдан, прежде всего, тем, что перед каждой из команд-разработчиков компонентов софта, сервисов поставлены разные задачи. Но проблемы, с которыми они сталкиваются, зачастую схожи. Как их можно решить быстро и эффективно независимо от сервиса?
Распространенные проблемы DevOps
Рассмотрим несколько часто встречающихся проблем Ops-команд.
- 1 проблема — в приоритете вся низкооплачиваемая и простая работа (то есть Ops выполняет простые задачи, не интересующие девелопера). Правильно распределив выполнение задачей между девелоперами и командой-Ops, можно сэкономить на разнице стоимости работы.
- 2 проблема — частые простои внутри команды тех сотрудников, которые занимаются только Ops-задачами. Это результат того, что им приходится ожидать, пока другие сотрудники не сгенерируют новые задачи для них. Сформировав общий Devops-отдел, можно сэкономит на простоях.
- 3 проблема – дорого развивать экспертизу сразу в нескольких командах. На этом также можно сэкономить. Достаточно взять нескольких экспертов, замещающих друг друга.
Как утверждают специалисты, на первом месте стоит проблема квалифицированной и компетентной экспертизы. Зачастую в команде отсутствует опытный эксперт, который помогает остальным сотрудникам советами в трудных ситуациях. Тем более, что его услуги стоят не дешево. Выход есть! Это формирование внутри команды структуры разделения запросов по уровням сложности. Благодаря этому внутренним продуктом может стать (с последующей их атоматизацией):
- настройка производительности OS (в том числе и совместных проектов);
- управление базами данных (внутренний SaaS);
- работа с другим open source софтом (внутренние best practices/ответственность команд);
- мониторинг продукта (внутренний SaaS/обучение);
- доставка обновлений продукта;
- производительность продукта (ответственность команд);
- управление серверами\инфраструктурой;
- бекапы;
- безопасность (экспертиза/обучение/совместные проекты);
- обеспечение стабильности работы (обучение);
- мелкая поддержка 24/7.
Эти и множество других вопросов сможет решить одна DevOps-команда, используя при этом внутренние продукты.
Как решает эти проблемы DevOps?
Работа Ops-специалистов заключается в том, что они разрабатывают продукт и используют его. Если автоматизировать их деятельность, то рутинные задачи будут решаться эффективнее, а эксперты будут консультировать и другие команды. Так, одна определенная DevOps-команда будет заниматься решением сложных общих проблем (например, писать мониторинг), а остальные – только использовать внутренние продукты и утилиты.
Таким образом, Ops-команда может стать мультикомандой инженеров, с легкостью решающей всевозможные проблемы, например:
- — переписывание (оптимизация) высокопроизводительного кода;
- — внутренний PaaS;
- — упрощение сборки/доставки приложения.
Но следует учитывать, что в обязанности этих специалистов входит поддержка не всего подряд, а определенных продуктов. Поэтому, ориентируясь на общее инженерное виденье, появляется возможность выставлять собственные приоритеты для конкретных пользователей. Благодаря описанной схеме, члены команды получают ряд преимуществ:
- стимул для того, чтобы поделиться своим опытом и знаниями;
- свободу в решениях вопросов масштабирования.
В «плюсе» оказывается всегда тот, кто берет на себя ответственность за выполнение задачи, не перекладывая ее решение на других.
И все же функционирование DevOps требует определенных усилий. Необходимо постоянное обучение специалистов. Общая экспертная команда должна уметь всегда смотреть на несколько шагов вперед, что поможет существенно облегчить работу других сотрудников. Остальные команды-разработчики отвечают только за определенный продукт, за своих пользователей. Но при этом, исходя из своего опыта, они должны постоянно пересматривать свои продукты, улучшая их.
В Вашу команду нужен эксперт администратор? Обращайтесь [email protected]