Тест Лимончелли
Official URL: http://everythingsysadmin.com/the-test.html
Translation last update: Dec 13, 2011 12:14
32 краеугольных принципа хорошей команды системного администрирования
Автор: Том Лимончелли (Tom Limoncelli)
Перевод: Иван Песин (Ivan Pesin)
Меня часто спрашивают, как улучшить работу системных администраторов. Требуется немного времени, чтобы обнаружить фундаментальные пробелы, исправив которые можно улучшить продуктивность и качество работы системных администраторов.Такие пробелы не просто создают много проблем, они создают много категорий проблем.
Например: использование системы отслеживания запросов (request tracking system или "ticket system") — фундаментальная техника. Она принесет вашей команде много очевидной, и не совсем, пользы. Без неё вы рискуете столкнуться с разными категориями проблем: проблем в результате забытых запросов; проблем из-за того, что пользователи отрывают вас от работы по любому поводу; проблем из-за незнания руководством, чем занимается ваша команда; проблем из-за невозможности обнаружить тенденции; проблем команды, которая не может эффективно передавать задачи.Исправление фундаментальных пробелов выглядит трудным делом, но если их оставить неисправленными, то это выльется для вас в ещё большее количество работы.
Джоэль Спольски написал блестящий "Тест Джоэла: 12 шагов к лучшему коду", «...совершенно безответственный и несерьёзный тест для определения качества команды разработчиков», состоящий из 12 вопросов. Я придумал собственный тест для системных администраторов. Он состоит из 32 односложных вопросов. И он такой же безответственный и несерьёзный.
Цель этого теста — упростить общую оценку команды СА. Он будет полезен и руководителю команды, и ведущим специалистам, и рядовым членам команды. Тест также может служить способом оценки потенциального места работы: если вы не хотите присоединиться к кораблю дураков, вы должны выяснить у вашего возможного работодателя, какие из практик они используют, а какие — нет. И не так важно, сколько они набирают очков, как отношение: нежелание или невозможность изменений сигнализирует опасность.
Очевидная проблема этого теста в том, что он в 3.2 раза длиннее теста Джоэла. Он достаточно гениален, чтобы свести свой к 10 вопросам. В свое оправдание, хочу сказать, что изначально в моем тесте было 40 вопросов.
Разделы, помеченные звёздочкой — самые фундаментальные. С оответствующие практики в моей книге обозначены, как абсолютно необходимые. Остальные тоже важны, но могут быть нерелевантны для маленьких фирм.
Сколько очков у вас?
Тест Лимончелли: 32 вопроса к вашей команде сисадминов
A. Подходы по работе с пользователями
- *Используете ли вы систему отслеживания запросов?
- *Есть ли у вас "три регламентирующие политики" и знают ли о них?
- Ведёт ли команда ежемесячные метрики?
B. Современные подходы в работе
- *Есть ли у вас вики с описанием политик и процедур?
- Есть ли у вас место, где хранятся пароли?
- Хранится ли ваш код в системе управления версиями?
- Использует ли ваша команда систему отслеживания ошибок для своего кода?
- В ваших задачах обеспечение стабильности приоритетнее новых возможностей?
- Пишет ли ваша команда проектную документацию?
- Выполняете ли вы анализ причин происшествия?
C. Операционные подходы
- *Есть ли у вас документация (OpsDoc) на все ваши сервисы?
- *Имеет ли каждый сервис необходимый мониторинг?
- Есть ли у вас график дежурств?
- Используете ли вы отдельные системы для разработки, тестирования и производства?
- Используется ли "канареечный процесс" при внесении изменений на большое количество машин?
D. Подходы по автоматизации
- Используете ли вы инструменты управления конфигурацией, такие как cfengine/puppet/chef?
- Выполняются ли автоматизированные задачи под ролевыми учетными записями?
- Ваши автоматизированные задачи шлют почту только когда есть полезная информация?
E. Подходы по управлению парком машин
- *Есть ли у вас база данных всех машин?
- Автоматизирован ли у вас процесс установки ОС?
- *Можете ли вы автоматически обновлять ПО для всего парка машин?
- Есть ли у вас политика обновления компьютеров?
F. Подходы серии "Мы согласны, что техника ломается"
- *Будут ли работать ваши сервера, если на них откажет один из дисков?
- Используется ли схема N+1 в ядре вашей сети?
- *Автоматизировано ли ваша процедура резервного копирования?
- *Проверяете ли вы периодически свой план аварийного восстановления?
- Есть ли в вашем ЦОД системы удаленного управления питанием и доступа к консолям?
G. Подходы к безопасности
- *Ваши сервера/ноутбуки/компьютеры защищены автоматически обновляемым антивирусным ПО?
- *Есть ли у вас политика безопасности в письменном виде?
- Проводите ли вы регулярный аудит безопасности?
- Можете ли вы отключить учетную запись пользователя во всех системах за 1 час?
- Можете ли вы сменить все привилегированные (root) пароли за 1 час?
A. Подходы по работе с пользователями
1. *Используете ли вы систему отслеживания запросов?
Это настолько фундаментальная практика, что меня гнетет необходимость пояснений.
Люди не обладают такой хорошей памятью, как компьютеры. Ожидать от сисадминов, что они будут помнить все запросы пользователей, это прямой путь к тому, что запросы будут забываться.
Хранение запросов в базе упрощает обмен информацией в команде и позволяет избегать ситуаций, когда два человека одновременно работают над одним и тем же запросом, дает возможность делить работу межу людьми, передавать работу между собой, не теряя информации, и подменять администратора, который недоступен, вышел или в отпуске.
Эта практика делает работу команды прозрачнее. Пользователи видят кто работает над запросом, какой у него статус, и когда он выполнен. Это позволяет пользователю и администратору задавать дополнительные вопросы и следить за ответами.
Использование системы учета запросов позволяет эффективнее использовать рабочее время. Каждый раз, когда сисадмина отрывают от того, что он делает, его отбрасывает на 7 минут назад в задаче, от которой его оторвали. Система учета запросов уменьшает количество прерываний от пользователей, которые хотят сделать новый запрос или узнать статус открытого запроса. Она также позволяет задавать приоритеты в работе администратора, а не решать проблемы пользователя, который жалуется громче всех.
Подход с учетом запросов дает возможность менеджерам стать лучше. Затормозившиеся запросы сразу становятся видны и менеджер имеет возможность вмешаться. Вскрываются тенденции и частые запросы, что позволяет оптимизировать работу с помощью автоматизации или улучшения процесса. Микроменеджеры могут получить информацию из базы запросов, не отрывая администраторов от работы. Жалобы пользователей приобретают обоснованность: если запрос решается слишком долго, менеджер может надлежащим образом решить вопрос; если пользователю только кажется, что запрос долго решается, то у вас будут доказательства противного. Если пользователь заявит, что "эта проблема тянется месяцы, но я только вчера прислал запрос", то у менеджера будет возможность... пояснить, что путешествие во времени, телепатия и другие сверхъестественные возможности в природе не существуют.
Система учета позволяет обнаружить системные проблемы. Однажды у меня был шеф, который, выполнив запрос в системе учета, обнаружил, что 3 из наших 1000 пользователей создали 10% всех запросов. Проведя небольшое расследование, мы смогли решить некоторые фундаментальные проблемы, которые были причиной этих запросов.
Наконец, такая система позволяет пользователям помогать самим себе. Часто бывает, что когда пользователь формулирует проблему, он сам находит ее решение и запрос так и не отправляется. Если же этого не происходит, то сам процесс помогает пользователю продумать проблему и сформулировать ее яснее, что ускоряет решение проблемы.
Я провел 90-е года в роли радикала, убеждающего людей использовать системы отслеживания запросов. В 2000-х, я с удовольствием наблюдал, как это становится общепринятой практикой. Наступила третья декада и если у вас до сих пор нет системы отслеживания запросов — позор вам.
2. *Есть ли у вас "три регламентирующие политики" и знают ли о них?
Если вы хотите, чтобы работа делалась, вам нужно определить три политики, регламентирующих вашу работу с пользователями. Они направлены как на обслуживание клиентов, так и на обеспечение эффективной работы команды сисадминов. Если вы, как менеджер команды сисадминов, считаете, что она ничего не успевает, возможно, это ваша вина, если вы не определили или не выполняете эти три политики:
Доступные пользователям способы запроса помощи. Определение "аварийной ситуации". Объем обслуживания: кто, что и где.
Эти политики помещаются на одной страничке и она должна быть доступна на веб-сайте вашей команды или развешана на стенах, чтобы их знали. Руководство должно поддерживать эти политики; это значит, что менеджмент готов сказать "нет" людям, когда они просят сделать исключение. Процесс получения исключения должен быть похож на пробивание стены, а не на проезд "спящего полицейс кого".
Как получить помощь:
Официальный протокол, описывающий как пользователи должны запрашивать помощь, позволяет получить все преимущества использования системы отслеживания запросов, описанные в предыдущем разделе. Без этой политики все преимущества испаряются, потому что люди будут приходить прямо к сисадминам, которые, стараясь помочь, будут постоянно отвлекаться на мелочи, а их эффективность сильно понизится.
У системного администратора должны быть возможность отказать пользователю, когда тот не соблюдает протокол. Без возможности отослать пользователя к официальной политике, администраторы будут работать либо над низкоприоритетными задачами, либо для пользователей, которые громче всех жалуются, либо каждый из них будет пользоваться своей личной политикой, тем самым выставляя всю команду непоследовательной, а в худшем случае будут нездоровым способом демонстрировать свое неудовлетворение. Точнее, нездоровым для пользователей способом.
Определение аварии:
Официальное определение аварийной ситуации позволяет системным администраторам расставлять приоритеты. Без этого определения, всё становится авралом, и снова сисадмины будут постоянно отвлекаться на мелочи, а их эффективность сильно понизится.
Политика — это один из способов, которым руководство коммуницирует приоритеты системным администраторам. В противном случае, сисадмины будут строить догадки о приоритетах, ошибаться, их будут несправедливо за это наказывать; менеджеры будут расстраиваться из-за "дисконнектов", а пользователи, видя непоследовательность, будут предполагать фаворитизм, халатность и некомпетентность.
Это политика определяет ожидания пользователей. С ее помощью можно корректировать иллюзии пользователей, которые считают любой происшествие аварийной ситуацией.
Каждая организация должна иметь определение аварии или "красного сигнала". Для газеты — это все, что блокирует печать завтрашнего номера и его погрузку в грузовики в 4 утра. "Красный сигнал" на заводе — это все, что останавливает конвейер. Авария для отдела платежей — все, что делает невозможным проведение платежей. Команды, работающие в сфере образования, знают, что перенести занятие совсем не просто, потому аварийной ситуацией является все, что мешает надлежащему проведению лекции (возможно, только если технологический центр был заблаговременно предупрежден). В университетах "красный сигнал" определен, как любая преграда для своевременной подачи заявок на получение грантов.
"Желтый сигнал" — это все, что приведет к "красному", если останется без внимания. Например, оплаты проводятся, но не работает подсистема оценки доступных запасов. В таком случае очень рискованно брать новых клиентов. Последняя оценка говорила о запасах, достаточных на 2 недели. Риск остановки производства растет с каждым днем, пока "желтый сигнал" не будет исправлен.
Все остальное — это рутина. Изобретательные компании разделяют рутинные задачи по приоритетам: высокий, средний, низкий; создание нового сервиса, поддержка существующих, и т.д. Если у вас ничего такого нету, начните с определения, что представляет собой авария.
Что поддерживается:
Официальное определение поддерживаемых сервисов позволяет администраторам говорить "нет". Должно быть определено когда, где, кто и что поддерживается. Работает ли команда после 6 вечера? На выходных? Ходят ли администраторы по вызову к рабочему месту пользователя? Домой к пользователю? Поддерживаете ли вы кого-либо, кроме сотрудников компании? Какое программное и аппаратное обеспечение поддерживается? Есть ли у поддерживаемого обеспечения жизненный цикл, или вы обречены его поддерживать вечно? Новые технологии включаются в поддержку автоматически или после официального утверждения?
Не имея возможности сказать "нет", администраторы будут поддерживать всё. Отзывчивый и старательный сисадмин потратит кучу времени, пытаясь заставить работать неподдерживаемую видеокарту, при том, что дешевле будет подарить этому пользователю поддерживаемую карту за счет бюджета СА. Пропавший без вести системный администратор вдруг найдется, после дня, проведенного у пользователя дома, где он ремонтировал Интернет-подключение. Или наоборот, ворчливый сисадмин будет говорить людям, что они это не поддерживают, просто потому, что он занят.
3. Ведёт ли команда ежемесячные метрики?
Когда вы принимаете решения или убеждаете в чём-то высшее руководство, вы должны руководствоваться данными.
Наилучши й способ разработки метрик — это создание одной метрики на каждое предложение или пункт устава.
Пример: устав команды развёртывания рабочих мест может звучать как «Обеспечение высококачественным, стандартизированным компьютером каждого сотрудника с первого дня его работы, обновление компьютера на основе 3-х летнего цикла, по оптимальной эксплуатационной стоимости. Тогда метриками могут быть: количество недель с последнего обновления стандартной конфигурации, цена текущей стандартной конфигурации, количество новых сотрудников в этом месяце, капитальные расходы, операционные расходы. Сколько дней новые сотрудники ждали своего компьютера (группировка, когда был установлен компьютер: до прихода, в первый день, на второй день, на 3-й, 4-й, 5-й и больше, чем через 5 дней). Возраст парка (группировка по возрасту: меньше года, от 1 до 2 лет, от 2 до 3 лет, больше 3 лет). Число использующихся машин с нестандартной конфигурацией.
Если у вас нет устава, поговорите со своим менеджером про то, чтобы его написать. В качестве альтернативы, вот список простых «начальных метрик», которые вы можете начать вести немедленно:
- Сколько у нас системных администраторов?
- Сколько у нас пользователей, которым мы предоставляем сервис?
- Сколько компьютеров мы поддерживаем?
- Сколько у нас совокупного дискового пространства? ОЗУ? Ядер ЦПУ?
- Сколько у нас "открытых" тикетов в данный момент?
- Сколько новых тикетов было создано за последний месяц?
- Кто (или какой отдел) создал большинство тикетов в этом месяце?
- Среднее число тикетов на сисадмина за последний месяц?
- Выберите 4-5 важных SLA и отметьте насколько точно вы их выполняете.
- Статистика использования полосы Internet-подключения за последний месяц.
Записывайте эти метрики первого числа каждого месяца. Внесите их в электронную таблицу. Теперь вы сможете использовать эти данные во время бюджетирования или для презентаций, когда нужно объяснить, чем занимается ваша команда.
Вот и всё. Действительно. Учёт этих метрик есть разница между през ентацией, начинающейся с графика роста количества машин в вашей сети, и фразой «Привет, меня зовут Джо и мы поддерживаем... э-э-м-м... кучу машин». Во время бюджетирования, способность ответить на эти базовые вопросы, является основой для других вопросов, таких как «Какова средняя стоимость тикета?» (сумма бюджета последнего года / общее количество тикетов за последний год). Если у нас будет 100 пользователей, сколько дискового пространства нам понадобится? ( общее дисковой пространство / количество пользователей * 100).
Сбор данных для метрик, в конечном счёте, должен быть автоматизирован. До того, настройте себе напоминание на почту, что это нужно сделать вручную.