Игнорируемая Заинтересованная сторона, также известная как Системный администратор
-
08-07-2019 - |
Вопрос
Некоторое время назад я пришел к пониманию того, что почти в каждом клиентском проекте, над которым я работал до сих пор, игнорировалась важная группа заинтересованных сторон:системные администраторы.
Эти молчаливые герои обычно привлекаются к работе только в конце проекта и остаются с исполняемым черным ящиком битов, который они должны устанавливать, поддерживать и эксплуатировать в течение многих последующих лет.Всякий раз, когда возникает проблема с этим черным ящиком, они должны найти способ решить ее, используя любую случайную информацию и инструментальную поддержку, предоставляемые им черным ящиком или базовой платформой, и если этого недостаточно, им приходится импровизировать.
Если бы они были вовлечены в проект в качестве заинтересованной стороны с самого начала, у них был бы шанс предсказать потенциальные проблемы и проинформировать об этом проектную команду.Но реальность иная, и хотя я, как разработчик, хотел бы привлечь системного администратора в качестве дополнительной заинтересованной стороны, внешние факторы могут помешать этому.
В таких ситуациях я хотел бы помочь нашим безмолвным героям, насколько это в моих силах.Итак, мой вопрос заключается в следующем:
Чего бы системный администратор пожелал от нас, разработчиков, когда мы разрабатываем системы, которые им придется обслуживать?
Если вы являетесь системным администратором пожалуйста, расскажите историю войны о сложной проблеме, которая у вас когда-то была, и о том, что разработчики могли бы сделать, чтобы вам было легче ее решить.
Решение
Различные вещи, включая (но вряд ли ими ограничивающиеся) те, которые не расположены в порядке приоритета:
- Нет необходимости использовать привилегированную установку
- Возможность использовать привилегированную установку
- Опция для распределенной установки (чтобы ее можно было установить на сервер и использовать на других компьютерах)
- Чистое удаление
- Разумные схемы обновления
- Возможность выбора места установки
- Минимальная зависимость от другого программного обеспечения
- Минимальный разброс данных по системе (не размещайте данные в /etc, /usr/lib, /var/adm, ...)
- Никаких постоянно растущих бревен
- Бесшумная установка
- Установка по сценарию
- Онлайновая документация (как на компьютере, так и в Интернете)
- Возможно, справочные страницы
- Простота настройки
- Легко сделать доступным для конечных пользователей
- Отсутствие рисков для безопасности
- Отсутствие специальных пользователей или групп (или ограниченное число - не более одного специального пользователя, одна специальная группа является целью, хотя и не всегда достижимой)
- Либо нет функции "домашний телефон", либо только в том случае, если она явно настроена (не должна быть установлена по умолчанию).
- Хорошее протоколирование диагностики при возникновении проблемы
- Хорошая техническая поддержка доступна, если возникнет проблема
- Нет необходимости получать код активации во время установки
- Нет необходимости перезагружать компьютер после установки
- Возможность параллельного запуска старой и новой версий
Многое зависит от того, что это за программное обеспечение и как оно используется.Требования к программе с графическим интерфейсом, работающей в Windows, Linux и macOS X, радикально отличаются от требований к сетевому демону, но целью по-прежнему должно быть стабильное, надежное, легко управляемое программное обеспечение.
Имейте в виду, что существуют большие различия между программным обеспечением, подготовленным внутренним отделом для использования внутри одной компании, и программным обеспечением, подготовленным для использования заказчиками, внешними по отношению к компании, разрабатывающей программное обеспечение.
Другие советы
Когда проблема неизбежно возникает, обратите внимание на то, что говорит системный администратор, и поверьте ему. Не исключайте его из-под контроля, если он не соответствует вашей первоначальной оценке.
История войны. Еще около 6 лет назад я работал системным администратором в небольшой производственной компании, и они решили купить какое-то программное обеспечение для планирования профилактического обслуживания своего оборудования. Одной из его функций был импорт запросов на обслуживание из электронной почты, но у нас иногда возникали проблемы с ошибками при обращении к почтовому серверу во время этого процесса, и меня в конечном итоге вызвали, чтобы посмотреть на него во время телефонного звонка с разработчиком. Разговор состоял из нескольких итераций
Разработчик: я никогда не слышал ни о ком с такой проблемой разговаривать с почтовый сервер. Это должно быть проблема с брандмауэром.
Я: я вошел в брандмауэр, запустить анализатор пакетов и смотреть трафик вашего приложения проходит без каких-либо проблемы. Он просто проходит через брандмауэр.
Разработчик: нет, нет - это должен быть проблема с брандмауэром.
(В итоге выяснилось, что проблема в том, что приложение открыло соединение POP3, прочитало всю почту, дождалось, пока пользователь запланирует задачи, а затем отправило команду POP, чтобы удалить почту после того, как все запросы были было запланировано. Если пользователю потребовалось более 15 минут для составления расписания, время POP-соединения истекло, и приложение не смогло восстановиться, поэтому оно умерло. Вместо этого пользователю пришлось повторить планирование, то есть, вероятно, достаточно времени, чтобы снова выйти из режима ожидания ...)
Я думаю, что комбинация из следующих:
1) Порог емкости - > Какие машины требуется для запуска этого программного обеспечения и какие показатели следует использовать, чтобы определить, когда это число может измениться, например, от 2 до 3 серверов баз данных или от 10 до 15 веб-серверов. Насколько мощным должно быть оборудование, и имеет ли значение одна часть больше, чем другая, например, ЦП имеет большее значение, чем ОЗУ, а как насчет конфигурации и места на жестком диске?
2) Устранение неполадок в стиле поваренной книги - > Если что-то пойдет не так, как легко это можно отнести к коду, данным или сетевой ошибке.
3) Схема окружения - > Как выглядят разработчики, тестовые и производственные экземпляры этого программного обеспечения? Работают ли сейчас эти и, возможно, другие среды?
4) Техническое обслуживание - > Существуют ли файлы журналов для анализа отчетов, еженедельные журналы ошибок для отправки или какая-либо служебная работа, связанная с программным обеспечением, например перезагрузите сервер еженедельно.
5) Безопасность - > Нужно ли создавать и управлять учетными записями, а также политику безопасности, чтобы определить, кто обладает определенными полномочиями в системе.
Это будут основные из них, которые приходят мне в голову.
Системные администраторы обычно хотят следующего:
- Прозрачность работы системы.Итак, какой-то графический интерфейс, который показывает системные настройки и, возможно, историю системных проблем, а также списки того, что система обработала правильно.
- Четкий контекстно-зависимый путь эскалации проблем.Под этим я подразумеваю, что для каждого типа проблемы есть несколько заметок об устранении, а также человек или команда, с которыми можно связаться, если проблему невозможно устранить быстро и требуется эскалация.
- Быть активным, т.е.способен информировать конечных пользователей о системной проблеме до того, как конечный пользователь сообщит ему об этом.Таким образом, какое-то немедленное оповещение о любой системной проблеме там, где это возможно,
- Не быть затопленным предупреждениями.Таким образом, как только поступит предупреждение, больше никаких предупреждений о той же проблеме не будет;просто еще одно сообщение, когда система снова заработает.
- Подробное ведение журнала с использованием чего-то вроде журнала событий (в Windows) для более глубокого изучения проблемы.
Что система просто работает, чтобы он мог пойти домой к детям.
Хорошо документированные зависимости, которые поставляются вместе с программным обеспечением, если мои домашние админы могут что-то пройти.
Ну, скорее ужастик, чем история военного времени:поддержка приложения, которое без видимой причины требует запуска под учетной записью администратора.
Несколько случайных вещей, которые, я думаю, было бы неплохо иметь в приложении:
- Значимые аргументы командной строки
- Какие-то возможности написания сценариев (при необходимости)
- Любой индикатор прогресса для длительных операций
- Ведение журнала ошибок
- Согласованный пользовательский интерфейс
Простое обслуживание пакетов!
Устанавливать и обновлять программное обеспечение должно быть просто умственно, и это касается и зависимостей. Если имеется много зависимостей и под-зависимостей, и вы не склонны осваивать нюансы методологии управления пакетами каждой операционной системы, было бы неплохо предложить версию пакета со всеми необходимыми зависимостями, объединенными в гигантский архив , Запустите скрипт, поместите все это в / usr / local / yourproject и скажите им, где находится скрипт запуска / выключения / перезапуска.
Каждый проект имеет «Планирование мощностей» вместе со своей системной архитектурой. Системные администраторы должны участвовать в процессе планирования емкости, а также в окончательном рассмотрении архитектуры системы. Это поможет ему лучше понять систему и быть готовым к развертыванию и поддержке.