Рубрика:
Карьера/Образование /
ИТ-управление
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Нейт Кэмпи: «Запуск нового продукта важнее умершего сервера»
На вопросы «Системного администратора» отвечает один из авторов книги «Automating Linux and UNIX system administration» Натан (Нейт) Кэмпи
В конце 2005 года я впервые столкнулся с системой управления конфигурацией Cfengine, но по-настоящему смог ее попробовать где-то весной-летом 2006-го. В 2009 году мне попалось на глаза второе издание книги «Automating Linux and UNIX system administration», где описывается технология полностью автоматизированной установки и настройки сервера «под ключ». Одним из авторов книги был Натан (Нейт) Кэмпи, который в то время работал директором по ИТ на фирме, специализирующейся на монетизации (как и Google) веб-трафика. Осенью 2010-го Нейт перешел на работу в компанию Apple Computer, а я стал работать на его прежнем месте в LookSmart.
Журнал «Системный администратор уже рассказывал про Cfengine [1, 2]. Поэтому я решил задать Нейту несколько вопросов специально для журнала.
Мне понравилось, что ты взял идею Cfengine и развил ее использование от первоначальной загрузки сервера по Сети через tftpboot до полностью установленного программного обеспечения на сервере.
Вот почему я написал эту книгу. Я пришел к выводу, что на рынке не было ничего, что могло бы продемонстрировать на примере работающего кода весь процесс установки: от «голого железа» до полностью установленного приложения и всей инфраструктуры, при этом не используя администрирование через ssh. В моей системе все полностью автоматизировано. Я всего лишь попробовал продемонстрировать, что это можно сделать, и показал, как сделать, используя разные операционные системы и «железо».
Мой опыт с Cfengine ограничивается «работами по уборке и поддержанию системы» – перезапуск процессов, удаление временных файлов, настройка окружения, установка прав доступа…
Если ты уже сконфигурировал сервер, то можешь захотеть, чтобы Cfengine, например, стал распространять ключи ssh или выключил удаленный доступ через root на каких-то серверах, для чего нужно всего лишь модифицировать пару файлов. Все в системах UNIX является файлом.
Короче, у тебя в распоряжении оказывается своего рода конструктор, который использует всего лишь файлы и процессы. Например, если мы говорим о конфигурации веб-сервера, то это несколько файлов в DocumentRoot, возможно, несколько конфигураций Apache. Если мы говорим про VirtualHosts, это Apache-процесс и затем, возможно, файл, чтобы сконфигурировать LDAP или веб-приложение, и, может быть, другой файл для пароля /etc/shadow.
Таким образом, это действительно всего лишь несколько однотипных файлов. Система Cfengine дает вам только основные стандартные блоки. Что я имею в виду? Все, что у нас есть, – только файлы и процессы, описательный инструментарий для файлов и процессов, а система делает то, что вы хотите, чтобы она делала. В этом ее элегантность.
Во второй версии Cfengine код как таковой несложный. Это только большое описание, типа короткой истории про Красную Шапочку, просто многократно повторенной.
Многократные повторения простых модулей – вот как работает Cfengine.
Позволь мне немного вернуться в прошлое. Расскажи, как ты стал системным администратором?
Я служил в военно-морских силах США, работал санитаром в отделениях неотложной помощи и преподавал общий и расширенный курс неотложной медицинской помощи. Параллельно я также отвечал за какие-то базовые военные вещи по информационной безопасности. Мне это более-менее нравилось. Сначала я прочитал какую-то книгу по информационной безопасности, потом – по HTML, потом перешел на книги по системному администрированию.
Демобилизовавшись из флота в 1999 году, смог достаточно легко устроиться администратором UNIX в контору, которая занималась веб-хостингом. Спустя время перешел в другую аналогичную фирму, а оттуда уже в поисковик-гигант Lycos. Вот где я получил настоящий опыт: много веб-серверов, немыслимые объемы трафика, маршрутизаторы, load balancers. Время было классное – компания нанимала практически любого.
Есть такая шутка: «Принимаем на работу, если вы сумеете запотеть карманное зеркальце».
Именно так! Я знал уже достаточно, чтобы быть нанятым в Lycos, где встретил немало хороших людей. Каждую последующую работу с тех пор я получал благодаря моим коллегам из компании Lycos, где я много трудился и многому научился.
Управление 500 серверами очень отличается от управления 20 серверами? Ты никогда не хотел работать в небольшой компании?
Нет, меня всегда интересовали только крупные «серверные поля» и проблемы масштабирования.
Я знаю талантливых системных администраторов и директоров по ИТ, которые специально шли работать в небольшие компании, чтобы иметь хороший баланс между работой и досугом. Удобное расположение офиса, семейный тип фирмы, предсказуемые проблемы, которых мало, небольшой коллектив, где все хорошо знают, ценят и любят друг друга и нет места для интриг и «офисной политики». Удобная парковка для машины, наконец.
Все это так. Но по своему опыту я знаю, как часто малые и средние компании страдают из-за хронической нехватки персонала. Какой уж тут баланс! Если у вас есть только один сотрудник, управляющий ИТ в компании, то на его плечах не только 20 серверов, но и вся электронная почта, управление правами пользователей, ежедневная рутинная работа по поддержке оборудования, безопасности, аудитов… Получается даже больше работы, чем в крупной компании! Ну да, интриг меньше. Хорошо, когда у сотрудников фирмы есть общие семейные ценности, однако это встречается так редко. А если к тому же компания молодая, то надо работать много-много-много часов с непредсказуемым результатом.
Какая самая большая проблема у ИТ-директора, который должен руководить системными администраторами?
Сосредоточить их внимание на интересах фирмы и общих задачах организации. Потому что системные администраторы склонны отвлекаться, часто возникают какие-то авралы и ЧП, которые уводят их в сторону от того, что фирме по-настоящему нужно. Например, если в большой компании несколько веб-серверов теряют работоспособность, системные администраторы могут думать, что это самая критичная часть работы. Но, предположим, бизнес в это время больше нуждается в финансовом аудите, который надо сделать до конца дня. Запуск нового продукта или услуги может быть намного важнее двух второстепенных серверов, которые почему-то «умерли». Вы должны позволить им оставаться неработоспособными в течение нескольких дней, чтобы решить другую, более приоритетную задачу. Поэтому надо стремиться, чтобы приоритеты бизнеса совпадали с приоритемами системных администраторов.
Что ты можешь посоветовать начинающему системному администратору?
Все самые лучшие системные администраторы, с кем мне приходилось работать, – это люди, которые любят ковыряться с UNIX в свободное время. Устанавливают его на домашние компьютеры, что-то пытаются переделать или написать свои новые модули. Они проводят много времени на домашних серверах, постоянно настраивая их, изучая и конфигурируя, чтобы сделать что-то новое, основанное на том, что они прочитали в Интернете.
В конечном итоге, добившись легкости работы с UNIX дома, системные администраторы затем используют эти знания. Они работают очень быстро, это сразу видно. А люди, которые используют UNIX только на работе, не имеют той беглости, интуитивного понимания, «чтения между строк», как у администраторов, которые действительно играют с разными системами, по-настоящему любят это.
А почему ты не упоминаешь Microsoft Windows? Не любишь эту систему?
Нет, я всего лишь думаю, что надо использовать лучший инструмент для выполнения поставленной задачи. А Microsoft Windows практически никогда не является этим «лучшим инструментом». Почти никогда.
Другая причина – гибкость и свобода UNIX, где настолько легко склеить различные пакеты программного обеспечения через язык perl или тот же самый bash.
Конечно, очень много полезного есть и в Windows, но часто эти инструменты не являются неотъемлемой частью системы, потому они не столь удобны. К тому же там много всяких ошибок и «странностей», они очень мешают в работе системного администратора, который пытается «склеивать» различные компоненты системы.
Что делают системные администраторы? Они «склеивают» много-много разных-разных модулей. Нередко эти решения не слишком симпатичны, но зато они работают хорошо! И UNIX тоже работает хорошо на этом самом «клее»!
- Яремчук С. Проект одного человека. Централизованное управление при помощи Cfengine. //«Системный администратор», №1-2, 2010 г. – С. 48-53 (http://samag.ru/archive/article/930).
- Кондаков К. Cfengine. Как применять? //«Системный администратор», №7-8, 2010 г. – С. 69-75.
- Nate Campi. Automating Linux and UNIX system administration. – Apress, 2009.
- http://www.amazon.com/Automating-System-Administration-Second-Experts/dp/1430210591/ref=sr_1_3?ie=UTF8&qid=1293688739&sr=8-3.
Беседовал Константин Кондаков
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|