Вдохновленный этим вопросом , я спрашиваю обратное: что нужно знать о программировании системным администраторам? В частности, какие инструменты программирования полезны для системного администратора?
Вдохновленный этим вопросом , я спрашиваю обратное: что нужно знать о программировании системным администраторам? В частности, какие инструменты программирования полезны для системного администратора?
Ответы:
Я бы начал с:
Системное администрирование - это просто программирование. Система управления конфигурацией позволяет вам видеть всю инфраструктуру как распределенную машину. Как системный администратор, ваша задача - программировать эту машину.
Знай один текстовый редактор. Обычно vi для системных администраторов, emacs для программистов.
Знать, как писать сценарии. Выберите язык сценариев. Perl является постоянным фаворитом, как и комбо shell / sed / awk. Ruby и Python могут работать, но для многих вещей объекты - неправильная парадигма.
Уметь писать читабельную документацию.
Контроль версий. Решающее значение для поддержания файлов конфигурации и контрольных журналов.
Учитесь мыслить в терминах программирования. Понимать процедурные, объектно-ориентированные и функциональные парадигмы программирования. Они никогда не могут быть использованы, но знание их делает вас бесконечно более продуктивным.
Научитесь использовать отладчик (или более) и ведение журнала.
Научитесь пользоваться СУБД. Существует множество требований к обработке данных, которые могут быть упрощены при правильном использовании СУБД. Даже возможность переключения на роль администратора по требованию может творить чудеса.
Протестируйте перед развертыванием. Ознакомьтесь с философией разработки, основанной на тестировании.
Парное программирование - это хорошо. Пусть кто-нибудь еще присмотрит за вашим плечом, чтобы выучить / посоветовать / исправить.
Научитесь хотя бы проходить знакомство с кучей языков. Учите новый язык каждый год.
Сценарии очень важны, но я бы сказал, что знание некоторых «настоящих» языков - явный бонус. Например, с пространством имен .NET System.DirectoryServices можно сделать несколько очень полезных вещей.
Я программист и старший администратор / интегратор. Чтобы работать там, где я работаю, нужно знать следующие вещи:
Большинство младших администраторов могут посмотреть на одного из наших программистов и сказать (с правами), да, я установил его правильно, вот где у вас есть утечка, поэтому код, который вы только что нажали, нарушает. Или "Нет, это не наша версия MySQL, посмотрите на ваш запрос здесь ..."
Я думаю, что мы немного отличаемся, когда нанимаем талантливого администратора ... мы наполовину ожидаем, что они (в конце концов) найдут свой путь к программированию, даже если это просто взлом чего-то, что мы используем, чтобы работать так, как им нужно для работы ,
Подводя итог, можно сказать, что хорошее округление никогда не повредит вам.
Много-много лет назад (на самом деле Windows NT 3.1) я начинал как программист, специализирующийся на написании сервисов и даже случайных драйверов устройств. Это означает, что вы хорошо знакомы с ядром Windows. Со временем я немного устал от программирования и переключился на управление сетью. Я обнаружил, что мой опыт программирования очень важен снова и снова.
Дело не только в том, что написание скриптов на VBScript относительно безболезненно. Знание того, как работает Windows, и, в частности, как работает IP, очень помогает в устранении нечетных проблем с сервером и сетью. Также это мышление. Программисты привыкли к документации и контролю версий, и я ужасаюсь, когда я вижу, сколько администраторов Windows просто попробуют что-то посмотреть, работает ли оно, и потом беспокоятся о том, чтобы разобраться в беспорядке.
Все очень хорошо, но это не очень полезный совет - уходить и работать программистом десять лет! Однако я думаю, что это поможет большинству системных администраторов иметь некоторый опыт программирования на «жестком» языке, таком как C ++ или C #. И если в вашей организации есть ручные программисты, пейте с ними!
Джон Ренни
Плохие вещи случаются, ваш код будет дольше, чем вы думаете. Сбой изящно, с полезными сообщениями об ошибках. Вам не хватит диска, оперативной памяти, процессора, времени и т. Д., Разберитесь с этим.
Не будьте настолько оптимистичны, что странный раз в миллион выпуск будет происходить слишком часто в производстве.
Со всеми описаниями здесь, я не собираюсь говорить, что я системный администратор. Но тот факт, что я создал и управляю парой серверов Windows / Linux, я должен признать, что:
в linux необходимо знать bash-скриптинг - если вы знаете, как интегрировать его с perl / awk / etc, лучше. Я обнаружил, что многие задачи стали проще с его помощью.
Знание программирования на C / C ++ очень помогает. Иногда вам нужно изменить исходный код GNU (если вы его используете) в соответствии с вашими потребностями, потому что, став продуктом GNU, не гарантирует, что вы всегда получите необходимую помощь вовремя - и много раз они написаны на C / C ++.
Знание того, как связываться с вашим LDAP и получать необходимую информацию на выбранном вами языке сценариев, является ключевым для всего: от устранения неполадок до реального активизации различных типов автоматизации (обеспечение учетных записей и ресурсов, более интеллектуальные проверки учетных записей пользователей или компьютеров).
Может показаться простым, но я видел множество магазинов, где люди не думают, что им нужен такой вид системного администрирования. Множество мест тратят большие $$$ на большие наборы административных инструментов и, насколько я могу судить, 95% того, для чего они используют инструменты, можно было бы сделать за несколько часов написания сценариев, если бы кто-нибудь знал это или знал, как сделай это.