div.main {margin-left: 20pt; margin-right: 20pt}
Автоматизация сетевого администрирования, часть первая Автор: Инга
Захарова, arlantine@lnx.ru Опубликовано:
06.03.2002 Оригинал: http://www.softerra.ru/freeos/16473/
Перевод статьи Люка А. Каниса (Luke A. Kanies)
Automating Network Administration, Part One
Я – системный администратор, это моя работа –
обеспечивать, чтобы серверы компании делали то, что должны делать и именно
тогда, когда должны, также моя работа – решать любые проблемы, этому
препятствующие.
Благодаря этой работе у меня появилось то, что я
называю своей Мечтой о Большой Красной Кнопке: я мечтаю об отдельном входе в
свой офис со всеми этими мониторами, серверами, рабочими станциями и тем, что
необходимо для моей работы. Никто не видит меня входящим, никто не видит меня
уходящим, никто не имеет понятия, работаю я, или сплю. Но если где-нибудь в сети
что-либо неисправно, Большая Красная Кнопка на стене вспыхивает, сигналя о
проблеме. Для того чтобы устранить эту проблему, будь то сбой в служебной
программе или необходимость построения и ввода в работу нового сервера, мне
нужно дотянуться и хлопнуть по этой Большой Красной Кнопке. Проблема будет
решена, и я могу вернуться к тому, что я делал или не делал. И никто не знает,
что все, чем я занимаюсь, сводится к нажатию кнопки, чтобы уладить любую
проблему. Все, что им известно, это то, что когда я на работе, системам не
удается отлынивать от работы, которую они должны выполнять. Конечно, продолжение
мечты – поручить осуществление шлепка по кнопке кому-нибудь другому, но это
потребует присутствия этого кого-нибудь в моей сисадминской обители, но тогда
разрушится все.
Я расцениваю это как мечту, а не как цель,
поскольку реально она не достижима, но я лелею эту мечту как идеал, к которому
стоит стремиться, и это здорово помогло мне продолжить работу в том направлении,
которое я считаю правильным для сисадмина. В этом выпуске, состоящем из двух
частей, я надеюсь поговорить о том, как я использую планирование и автоматизацию
в моих поисках по достижению этого идеала, и в частности, почему я начал обе с
самого раннего из всех возможных моментов: с построения сервера. Поскольку
далеко не каждый правильно понимает всю важность планирования и автоматизации,
первая часть этого выпуска отведена разъяснению преимуществ вашей жизни в
качестве сисадмина, когда она посвящена планированию и автоматизации всего, чем
вы занимаетесь, а вторая сфокусирует внимание на планировании и автоматизации
процесса построения сервера.
Автоматизация
Хотя в моем представлении автоматизация
непосредственно зависит от планирования, это происходит только в том случае,
если были попытки автоматизации без планирования, приведшие к пониманию всей
важности последнего. Поэтому вначале я поговорю об автоматизации, и это
обсуждение, будем надеяться, прояснит для нас важность планирования.
С моей точки зрения, автоматизация обеспечивает
пять важнейших преимуществ:
Снижение затрат времени, требуемого для выполнения данной
задачи. Автоматизация задачи означает, что каждый раз на выполнение
задачи потребуется меньше времени, что позволит больше времени посвятить
другим задачам, таким как автоматизация.
Снижение возможности допустить ошибку при выполнении конкретной
задачи. Большинство задач должны выполняться определенным образом, и
поручение выполнения этих задач людям означает вероятность того, что эти люди
выполнят задание не полностью или неверно, или испортят что-нибудь важное в
другом месте. Когда задача автоматизирована, можно найти наиболее оптимальный
метод выполнения, и этим методом задача будет выполняться каждый раз, исключая
возможность ошибки в данной определенной задаче, поскольку автоматизированный
процесс был тщательно спланирован и проверен.
Снижение общих временных затрат при выполнении конкретной
задачи. Оставляя больше времени для прочей работы, автоматизация также
означает, что большая часть работы выполняется значительно быстрее. Это важно
во многих ситуациях, особенно при оказании экстренной помощи (устранении
неполадок с сервисами), при работе над производственными системами во время
коротких эксплуатационных перерывов, или когда нужно вписаться в жесткие
временные рамки проекта. Зачастую, лучше потратить большую часть времени на
автоматизацию задачи до того, как понадобится ее выполнить. Вы сокращаете
время, необходимое для выполнения задачи, но на самом деле, для того чтобы
успешно автоматизировать четырехчасовую задачу вам потребуется потратить
двадцать часов на написание скриптов, зато в результате вы полностью сможете
уложиться в двухчасовой эксплуатационный перерыв в работе вашего сервера,
следовательно, это того стоило. И опять же, все это обычно не возможно без
тщательного планирования и тестирования, которые зачастую отнимают
существенную часть времени автоматизации.
Улучшение и сохранение устойчивости конфигурации одновременно в большом
количестве систем. Вдобавок к потенциальной способности людей допускать
ошибки во время работы, люди могут привнести кое-что более ужасное – отпечаток
собственной личности. Потому что обычно они являются причиной неполадок
определенного характера, ошибки обычно отлавливаются и исправляются, и когда
множество людей выполняют одну и ту же задачу по-разному, но равнозначно
правильными методами, неполадок не будет. Проблема состоит в том, что как
только различные люди начинают выполнять одну и ту же операцию различными
методами, устойчивости системы приходит конец. А поскольку система
нестабильна, впоследствии ее намного сложнее автоматизировать. Эта ситуация
часто заканчивается замыканием круга, когда для автоматизации недостаточно
устойчивости, а отсутствие автоматизации приводит к снижению устойчивости.
Вдобавок к тому, что недостаточно устойчивые сети сложнее автоматизировать, в
еще большей степени усложняется в целом процесс их администрирования, потому
что все исключительные ситуации придется держать в уме, пока работа не будет
выполнена.
Создание сокращенного варианта документации процесса. И
последнее, но не менее важное: автоматизированная задача – это
документированная задача. Она может не быть хорошо документированной (хотя, по
крайней мере, код должен быть хорошо комментирован), так что если даже
человек, занимавшийся автоматизацией, покидает компанию, вы можете продолжить
выполнять его работу и читать его скрипты. Это залог того, что информация
сохранится после ухода работника из компании, и ее изучение будет отправной
точкой, с которой последующие работники включатся в процесс.
Это почти все, так что нет нужды убеждать вас
долее. Но в дополнение ко всем этим преимуществам, которые, по моему мнению,
являются наиболее важными для автоматизации, и по этой причине заслуживают
пристального внимания, автоматизация позволяет вам сформировать комплексную
задачу высокого уровня и поручить ее выполнение кому-либо нижестоящему по
должности. Это позволит работнику более низкого уровня полностью понять задачу в
процессе чтения и использования скриптов, и это позволит работнику более
высокого уровня сэкономить время для более важных задач, таких, например, как
автоматизация. И еще один важный нюанс автоматизации – она создает сама себя:
чем больше мелких задач вы автоматизируете, тем больше у вас появляется
возможностей создавать утилиты, которые автоматизируют процесс автоматизации. И
теперь очевидно, как получается мой идеал о Большой Красной Кнопке: кнопка –
вершина большой пирамиды, состоящей из утилит автоматизации, настроенная таким
образом, чтобы выявлять и решать любые проблемы в любой части сети.
Как во всех прочих случаях, существует ряд
предосторожностей. Выгода от автоматизации пропорциональна сложности,
повторяемости и затратам времени на выполнение задачи, это означает, что иногда
процесс автоматизации занимает больше времени, чем будет экономить впоследствии.
Также, большинство из нас, к сожалению, устраиваются на работу в компании, где
уже есть компьютеры, и зачастую это означает, что мы попадаем в ситуацию, когда
для начала работы стабильности недостаточно или она отсутствует вовсе. Когда
такое случается, нам обычно приходится затрачивать значительное количество
времени, приводя систему к стабильности просто для того, чтобы можно было начать
автоматизацию. Иногда это в такой мере снижает долю выгоды от автоматизации, что
создается впечатление, что овчина выделки не стоит. В дальнейшем, все процессы
автоматизации требуют тщательной проверки, потому что если по прошествии времени
вы обнаруживаете проблему в вашей программе автоматизации, как правило, будет
слишком поздно для ее устранения, и в этом случае риск для производственной
системы слишком велик. Но, в конце концов, надеюсь, вы видите это на большой
картинке, выгода от автоматизации почти всегда больше, чем затраты на нее. Если
вы начали автоматизацию только тех задач, оборот по которым наибольший, то по
окончании работы вы обнаружите, что автоматизировать осталось лишь какие-то
несколько задач. Автоматизация этих нескольких задач займет больше времени, чем
позволит сэкономить, но теперь после этой заключительной части автоматизации вы,
в сущности, автоматизировали в вашей системе все задачи низшего уровня, и,
наверняка, целое больше, чем сума его частей. Вместо того, чтобы задумываться
непосредственно о каждой задаче в сети, теперь утилитами обеспечено наличие
абстрактной прослойки между вами и работой, которую вы должны выполнять. Эта
абстрактная прослойка дает вам возможность по-иному взглянуть на свою работу –
не сеть является мерилом вашей работы, а ваши утилиты. Надеюсь, вы разработали
ваши утилиты таким образом, чтобы они работали так, как должны. Если нет, то вы
можете реорганизовать работу этих утилит без оказания непосредственного
воздействия на выполняемую этими утилитами работу. И это реальное преимущество
этой абстрактной прослойки, которую эти утилиты обеспечивают.
Планирование
Итак, вы убедились, что автоматизация это то,
чем следует заниматься, и вы готовы дерзнуть. Вы начинаете с чистой страницы,
все ваше оборудование готово к включению и установке, или у вас уже есть сеть, и
вы хотите автоматизировать работу, которая отнимает ваше драгоценное время.
Теперь я собираюсь убедить вас пока ничего не начинать.
Автоматизация может и должна сберегать
значительную часть вашего времени, но все может закончиться пустой тратой
времени, если вы не планируете ваш процесс автоматизации. План может содержать
только информацию о том, кого нужно уведомить и когда ввести в эксплуатацию, но
также он может быть планом проекта, рассчитанным на месяцы или годы и требующим
полной реконструкции вашей сети. Большинство планов в процессе их осуществления
требуют доработки, но вы всегда сможете выработать более конструктивное и более
четкое решение, если составите план прежде, чем начать работу.
В своей основе план служит предварительной
схемой вашей работы, что-то вы можете использовать для напоминания самому себе,
что нужно делать и в каком порядке. И в то же время, это позволяет другим людям,
включая ваших менеджеров, а иногда и ваших пользователей, понять, что вы делаете
и почему. Благодаря подобному обмену информацией, наличие плана вселяет в других
людей уверенность в вашей способности хорошо делать свою работу, и в этом случае
гораздо выше вероятность, что вы получите и средства, необходимые для
надлежащего выполнения работы, и лучшее вознаграждение по ее завершении.
Как и в случае программирования любой задачи,
лучше всего осуществлять работу в как можно более полном соответствии с планом
автоматизации до тех пор, пока не приступите к окончательной реализации. Это не
слишком хорошее оправдание, если, осуществив работу на 90%, вы вдруг
обнаруживаете, что выработанное решение не совместимо с вашей сетью, или его
реализация попросту невозможна. Процесс планирования автоматизации должен
проникнуть вас пониманием сложности (или ее отсутствия) непосредственной задачи
и уверенностью в обоснованности ваших методов. Опять же, это позволит вам более
умело убеждать других предоставить вам все необходимые средства для надлежащего
выполнения работы.
При наличии плана, вы, ваши пользователи и ваши
менеджеры в намного меньшей степени будут удивлены результатами вашей работы.
Ничто не бывает безупречным, но в случае, когда что-то идет не так, как нужно,
куда охотнее люди расценивают это как чье-то неминуемое падение в их глазах, чем
видят в этом результат отклонения от рационального плана.
Если вы выработаете привычку планировать
осуществляемую работу, вы обнаружите, что ваши планы осуществляют
документирование сети должным образом, и ваши программы автоматизации
обеспечивают документирование вашей сети в том виде, в каком она существует.
Используя обе документации, любой достаточно легко сможет понять текущее
состояние дел и будущее направление развития вашей сети. Это позволит сократить
ущерб от потери работника, но в тоже время это вовлекает в процесс работы
каждого, начиная от канцелярского работника низшего звена, выполняющего
командные скрипты, но не понимающего их, до менеджера, не могущего объяснить
Unix пользователям, которым придется изменить методы осуществления работы. Все
они чувствуют себя частью осуществляемого процесса, поскольку могут видеть и
понимать, как он протекает. Это все сказано о людях, понимающих вашу работу и
согласных с ней, поддерживающих вас в ваших начинаниях и высоко ценящих усилия,
затраченные вами для ее осуществления. Это то, что способствует осуществлению
вашей работы, повышает понимание вашей значимости для сети в глазах вашей
компании, и просто дает вам чувство удовлетворения от хорошо выполненной работы.
Поскольку вы выработали привычку планировать
свою работу и преуспели в осуществлении некоторых первоначальных планов
автоматизации, планировать стало проще, потому что вы имеете более четкое
представление о сети и, следовательно, более четкие соображения по поводу
связанной с ней работы. Все это в сочетании с уже завершенной автоматизацией, в
свою очередь, упрощает автоматизацию в дальнейшем, поскольку удается быстрее
выработать план. Также как и автоматизация, планирование базируется само на
себе, а кроме того, планирование позволяет всему остальному миру понять, чем вы
занимаетесь, когда и почему, что зачастую важно в тех случаях, когда другие люди
используют серверы, которые вы обслуживаете.
Вывод
Теперь вы готовы создать план, чтобы полностью
переделать вашу сеть, следовательно, вы можете автоматизировать ее вплоть до
мельчайших подробностей, не так ли? И снова я хочу убедить вас пока не начинать.
Полагаю, что даже в системном администрировании терпение является добродетелью.
Первая часть этого выпуска предназначалась для
тех, кто не имел представления, насколько качество системного администрирования
зависит от автоматизации и планирования. Вторая часть будет сфокусирована на
том, откуда начинается сеть – с процесса построения сервера. Нигде автоматизация
и планирование не бывают более важными, чем в процессе построения сервера, так
как процесс построения определяет, как вы будете обслуживать вашу систему в
дальнейшем. Час, потраченный на автоматизацию установки, зачастую сохраняет вам
такое же количество времени ежемесячно в течение всей жизни сервера.
Люк А. Канис (Luke A. Kanies) системный
администратор Unix, который больше интересуется операционной системой, чем тем,
что с ней делают. В настоящее время он работает в качестве подрядчика и
исследователя, пытаясь улучшить работу сисадмина.
|