Привет, Хабр! Меня зовут Елена, я работаю в компании «РЕД СОФТ» и отвечаю за функционал централизованного управления конфигурациями РЕД АДМ Промышленная редакция. Чтобы комфортнее работать с нашими продуктами, а переход для ИТ-специалистов был менее болезненным и более удобным, мы в РЕД СОФТ создали обучающие программы. Например, был разработан курс по фундаментальному решению для централизованного управления ИТ-инфраструктурой – РЕД АДМ Промышленная редакция. В этой статье я расскажу, как формировался курс по РЕД АДМ и почему он стал именно таким!
В начале была бета…
Программа курса появилась после бета-тестирования продукта у заказчиков. Мы долго собирали обратную связь, изменяли и дописывали документацию, где-то менялся функционал и даже интерфейс. Однако хотелось чего-то более глобального – научить!
Конечно же, сейчас, когда очень модно «войти в IT», появилось много курсов, и по различным Linux-системам в том числе. Но мы решили подойти к ИТ-курсу несколько иначе. «Научить не только использовать систему, но и понимать ее!».
Проблемы бывают разные, а вот результат один - его отсутствие
Основная проблема многих курсов в ИТ в том, что на них учат «нажимать на кнопки и получать результат». В целом подход распространенный, но не сильно жизнеспособный, ибо, придя на работу, люди внезапно сталкиваются с тем, что нажимая на те же кнопки результат почему-то получается не совсем тот.
Один из разделов курса у нас называется «Если что-то пошло не так». С одной стороны, это может показаться странным — почему в нашем продукте что-то может пойти не так? С другой стороны практика показала — может! Особенно из-за человеческого фактора.
RTFM и немного логов
В одном из наших методических материалов мы даже попытались изобразить схему взаимодействия продукта и пользователя, включая возникновение проблем. К тому же, наш продукт на рынке новый и найти решение в этих ваших «интернетах и форумах» с ходу не получится. Поэтому мы всех призывали и призываем — читайте логи и статусы, читайте документацию ДО возникновения нештатных ситуаций, а не после.
Это помогло, но не как хотелось бы нам, и в обучении мы перешли к более тяжелой артиллерии. По задумке это называлось «траблшутинг», но слушатели уже окрестили данный подход «диверсией» со стороны преподавателя. Подход выглядит так — слушатели наших курсов не только выполняют практические задания, но и решают реальные кейсы, с которыми могут столкнуться при работе с РЕД АДМ.
Искусство совершать диверсии, создавая позитивный опыт обучении
У нас накопилась достаточно большая база кейсов, с помощью которой мы подготавливаем эти самые «диверсии». Ценность такого обучения в том, что устранять их слушатель учится на тестовом стенде (мы, конечно, не предполагаем, что пользователи сразу ставят РЕД АДМ на боевую среду, однако случаи бывают разные). Тем самым мы не только помогаем нашим пользователям быстрее освоить наш продукт, но и косвенно помогаем коллегам из отдела технической поддержки и технического пресейла, можно сказать, немного разгружаем их.
Идея создавать контролируемые диверсии к нам пришла именно из накопленной экспертизы и общения с различными специалистами из админской братии. Любой «бывалый» админ отличается от «зеленого» умением анализировать информацию о проблемах. Мониторинг не зря же придумали, логи тоже сделаны не для красоты. Поэтому мы подумали, есть ряд похожих кейсов, а почему бы не превратить это в методическое пособие и дать учащимся курсов возможность почувствовать себя админом, но в той среде, где нет критически важных сервисов. Поэтому пришли к мысли о «диверсиях».
Конечно, вы можете сказать, что совершать «диверсии» достаточно легко. Но суть наших «диверсий» не в том, чтобы что‑то сломать (для этого можно и кабель питания из сервера вытащить), а чтобы слушатели могли ее устранить сначала прочитав и проанализировав логи, статусы сервисов и так далее, а потом нажав на кнопки. В РЕД АДМ есть удобный интерфейс, чтобы нажимать кнопки, как раз недавно говорили об этом в нашем релизе.
Тяжело в тесте, легко в проде
Для наглядности приведу две категории примеров наших «диверсий». Все секреты, конечно же, раскрывать не буду, иначе слушателям наших курсов будет неинтересно.
Первая категория «диверсий» направлена на намеренные ошибки в конфигурационных файлах. Часть из них при установке конфигурируется автоматически, но это не мешает пользователям заходить и что‑нибудь исправлять, потому что «так посоветовали на форумах». Конечно, увидеть и исправить по таким вот советам бывает достаточно сложно, а вот синтаксические ошибки в статусах сервисов видно сразу. При траблшутинге таких проблем мы советуем внимательно читать вывод статусов. Причем именно читать, а не только обращать внимание на active\inactive
.
Вот пример.
РЕД АДМ использует базу данных (БД) в своей работе и развертывание этой БД автоматически. Однако при создании БД из веб-интерфейса нужно задать следующие параметры — имя и расположение базы, логин и пароль для ее пользователя. Все эти данные автоматически записываются в конфигурационный файл. Вот тут-то и кроется подвох и человеческий фактор, о котором мы уже говорили. После создания БД администратор заходит в конфиг-файл и начинает там править данные для базы (это реальный кейс, который мы неоднократно встречали). После чего РЕД АДМ, конечно же, начинает ругаться. Или же меняются права на файл с базой. Давайте посмотрим наглядно, как это происходит:
На скриншоте видно, что есть ошибка в правах на файл, и вроде бы все хорошо, пытливый читатель тут же ее увидел. Но давайте покажем это в потоке:
И сразу становится понятно, что при быстром или не внимательном скроллинге можно просто не увидеть эту ошибку. Вроде бы глупая ошибка, любой админ скажет «господи, да просто», а нет не просто.
Еще одна достаточно распространенная ошибка возникает при переходе на https
. В РЕД АДМ для такого перехода необходимо изменить файл конфигурации nginx. Если пользоваться самоподписаным сертификатами из РЕД АДМ, то в файле уже прописаны все пути и имена, но если пользоваться сторонним центром сертификации, здесь уже снова могут появиться ошибки, которые прекрасно видны в статусах (например, того же nginx).
Вторая категория относится к беглому прочтению документации, когда упускаются нужные или критически важные детали. А также, как бы странно это не прозвучало, к знанию «как должно быть». К примеру, известно, что под капотом наших конфигураций находится технология Ansible, но именно под капотом! Для работы конфигураций нужен клиентский агент и все — можно работать из удобного веб-интерфейса. Однако тру-админ знает, как должен работать ansible, поэтому все настраивает по наитию. В этом случае помогает внимательное чтение журналов событий.
Вот пример с неправильным Ansible.
Администратор начинает из консоли генерировать пару ssh-ключей, распространять на машины домена, формировать файл inventory.... чтобы что? на этом этапе обычно возникает вопрос — а как дальше с этим работать? Как распространять конфигурации-то?
А вот пример с правильным Ansible.Ключ создается в удобном веб-интерфейсе:
И далее распространяется на машины домена также из веб-интерфейса
Казалось бы, из интерфейса удобнее и понятнее, но есть нюанс. Эти две категории относились к настройке системы, но проблемы у пользователей могут возникать и при эксплуатации самой системы. В данном случае проблемы возникают из-за индивидуальных настроек инфраструктуры заказчика — дополнительные настройки sshd, закрытые порты на фаерволле и многое другое. Конечно, эти ситуации смоделировать достаточно трудно, но тем не менее возможно.
И что в конце?!
По итогам прохождения такого курса наш внимательный слушатель сможет без каких‑либо усилий работать с продуктом РЕД АДМ и плавно мигрировать на решения компании «РЕД СОФТ» с уже построенной инфраструктуры Windows.
Звучит как реклама? Тогда давайте отвлечемся от конкретно нашего продукта — по итогам курса наш внимательный слушатель станет еще чуть более внимательным к прочтению логов и просмотру статусов. Он будет читать документацию (ведь ее кто-то пишет) и, возможно, пользователь нашей системы будет чуть более осознанно жать на кнопки. И результат обязательно будет именно тот, который ожидается.
Таким образом, мы надеемся, что наш курс по РЕД АДМ будет полезен для всех ИТ-специалистов – новичков и со стажем, давно работающих в Linux и только переходящих на эту систему.
Вместо заключения
Цель этой статьи, как ни странно, не рекламировать курсы. Тот кто купил наши продукты и так получит курсы, обучение, техподдержку и другие плюшки вместе с решением. Мысль моего рассказа — поделиться опытом, как можно оптимизировать и улучшить свои курсы, а более «зрелым» специалистам поделится опытом с молодыми и рассказать, что секрет успеха рабочей конфигурации ИТ-системы в умении анализировать полученную информацию.
P.S. А схема-то рабочая! Мы проверяли!