Что нужно чтобы стать системным администратором
И швец, и жнец: кто такой системный администратор и что он должен уметь
Как стать профессиональным «тыжпрограммистом»? Инженер второй линии и в прошлом сисадмин Евгений Льянов делится личным опытом.
Иллюстрация: InWay / manuelwagner0 / Pexels / Wikimedia Commons / Polina Vari для Skillbox Media
Евгений Льянов
Инженер второй линии технической поддержки в ESET. Окончил Белгородский государственный университет по направлению «Информационные системы и технологии». Увлекается кулинарией и любит читать книги.
Я в профессии уже больше десяти лет. Расскажу, чем занимается сисадмин и какие технологии нужно освоить тому, кто решил стать «укротителем софта и железа». А ещё поделюсь советами, как вкатиться в профессию без профильного высшего и как выкатиться, когда надоест.
Чем занимается системный администратор
Моей первой работой стало администрирование компьютерного парка в маленьком офисе — на тот момент я умел только настраивать локальную сеть в Windows 7. Но даже этому в университете не учат — рассказывают лишь, как устроена сеть, из чего состоит пакет и как пакеты бегают по сети. А ведь большинству работодателей нужен реальный опыт — теоретические знания не котируются. Но почему-то никто не учит студентов настраивать домен — это можно узнать только на практике и с помощью мануалов.
Суть моей работы — постоянный поиск решений. Например, как настроить и внедрить незнакомую систему, имея на руках только руководство пользователя. Для этого важно провести траблшутинг и найти нужную информацию на форумах. Допустим, надо внедрить системы мониторинга Zabbix или PRTG, а вы их не знаете. В таком случае можно посмотреть гайд на YouTube, выполнить все действия по пунктам и запомнить их порядок. За несколько итераций вы поймёте суть и сможете действовать без мануалов.
Как устроиться на работу
Без образования устроиться на работу несложно, но нужны практические навыки. Придётся разобраться хотя бы в Windows Server. Так что, если вы не смогли поступить в университет, но решили стать системным администратором, можно освоить азы самостоятельно — понадобится только компьютер.
Рецепт простой: открываете вакансию «Системный администратор» на любом сайте по поиску работы и изучаете требования. Вот пример из первой попавшейся вакансии:
Потом откройте мануал Windows Server, прочитайте и запустите систему на домашней машине. Идеально, если у вас два компьютера. В этом случае на первый поставьте сервер, а второй пусть будет клиентом. Этих знаний достаточно, чтобы пройти интервью.
Я искал работу так же. Находил интересную вакансию, смотрел, какие навыки нужны, а затем проходил по этой теме курс на Udemy. Когда заканчивал, добавлял новый навык в резюме.
Разобраться с Linux можно и по открытым источникам. Достаточно почитать в Ubuntu Wiki, как разворачивать сервер, поднимать репозитории и настраивать общую сетевую папку. Этого будет вполне достаточно, чтобы устроиться системным администратором.
Большинство компаний ищут системного администратора с опытом, потому что обучать новичка просто некому. Это раньше в пару к старому сисадмину можно было взять юного падавана: он его научит, передаст систему и с чувством выполненного долга уйдёт на покой. Сейчас же люди гораздо легче и быстрее расстаются с работой.
Я стал полноценным системным администратором, только когда устроился в сеть Hoff. На интервью мой будущий руководитель в основном проверял логику принятия решений, потому что технических знаний у меня не хватало. Меня взяли на работу, хотя я ещё не окончил институт.
До работы в Hoff я сталкивался с необходимостью обслуживать максимум 25–30 компьютеров. А здесь была огромная сеть из 55 магазинов. В таких больших проектах задачи разнообразные, поэтому и работать интереснее. В мои обязанности входила поддержка инфраструктуры магазина, обслуживание сервисов, участие в открытии новых магазинов со стороны сервиса и техподдержка других магазинов через площадку ServiceDesk в режиме дежурства.
В первый день работы мне дали новый магазин в Белгороде, привезли серверную стойку и кучу оборудования Cisco — коммутаторы и роутеры, стоечные HP-сервера, Wi-Fi-оборудование. Тогда я видел всё это впервые, умел только чинить локальную сеть в небольшом офисе и знал, как поднять файловый сервер. Пришлось во всём разбираться самому, изредка спрашивая совета у коллег.
Во время работы в магазине я отвечал за оборудование, а на дежурстве обрабатывал заявки по всей сети. Причём они поступали не только из магазина, но и из Москвы, Санкт-Петербурга и других регионов. Кроме того, за каждым администратором закрепили сервисы, которые он должен был развивать, поддерживать и развёртывать в новых магазинах. За мной закрепили СКУД и системы самообслуживания «Киоск».
Как проходит мой рабочий день
Через два года и десять месяцев я уволился из Hoff и теперь работаю инженером второй линии поддержки в компании, которая разрабатывает антивирусы. Когда я устраивался на работу, ещё не знал их продуктов, но меня взяли благодаря бэкграунду в системном администрировании. Он пригодился мне на новом месте: я должен понимать, как системному администратору клиента установить и запустить наш продукт.
Мой рабочий день проходит так: в наш пул заявок попадают обращения от корпоративных и домашних пользователей, среди которых есть как владельцы одной лицензии, так и большие предприятия с тысячей лицензий. Я запускаю VPN, открываю пул и созваниваюсь с клиентами или отвечаю на письма.
Например, пользователь Linux купил наш продукт и не справился с инструкцией. Тогда он обращается в поддержку и там его проводят по всему процессу установки и настройки буквально за ручку: рассказывают, что конкретно сделать на каждом этапе, где он совершил ошибку и что неправильно сконфигурировано. Так в течение дня мы отрабатываем разные кейсы.
Сколько зарабатывает сисадмин в провинции
Я живу в Белгороде. Будучи системным администратором, я зарабатывал 30 тысяч рублей за пятидневку с полной загрузкой. Средняя зарплата официанта или менеджера по продажам здесь 25 тысяч рублей, а на больших предприятиях вроде «Агрокомплекса» платят около 40 тысяч, но это максимум. В Москве, например, системным администраторам в некоторых компаниях платят 70 тысяч.
У сисадминов меньше возможностей для роста, чем у программистов. Программист — как изысканное вино: со временем становится лучше и дороже. А системный администратор просто упирается в потолок — его знания и опыт не помогают зарабатывать больше. Чтобы зарплата росла, нужно освоить много технологий и систем или обладать глубокими знаниями в какой-нибудь узкой сфере.
Что должен уметь сисадмин
Чтобы стать системным администратором, вам пригодится целый набор hard и soft skills:
На рынке много сисадминов со стандартными навыками, поэтому таких специалистов не особо ценят. Чтобы стать востребованным профессионалом, надо изучать новые системы, технологии, языки программирования и практику DevOps. Ещё один путь — попасть в компанию, где есть отдел разработки и возможность горизонтального перехода.
Сейчас я работаю удалённо. У меня появилась денежная подушка, поэтому я присматриваюсь к Android-разработке. Планирую учиться на собственных проектах и через несколько лет стать разработчиком в той же компании, в которой я работаю.
Как стать системным администратором — пособие для начинающих (часть 2)
В этой части: подробнее о жизни эникейщика: как устроиться, чем заниматься, чего избегать, к чему стремиться.
Я откладываю вопрос о «будущем сисадмина» на следующие части — сейчас я сфокусируюсь на том, как начинается карьера. Повторю, опытным администраторам всё это будет казаться либо обидным, либо очевидным — но я достаточно посмотрел за эту весну на людей, которые пытаются «вскочить в индустрию», но у них не получается. Именно для них этот цикл статей. (Я не ощущаю себя достаточно умным, чтобы рассказывать про будущее карьеры для людей, у которых опыта, возможно, больше, чем у меня).
Вступление
Примерно до середины 2000ых было два пути стать системным администратором: через путь эникейщика и через профильное высшее образование (обычно, в всякого рода институтах связи). Первое давало много опыта, второе — довольно много знаний (из которых большая часть не нужна). Сейчас появился третий — всякого рода «курсы системного администрирования», которые, реально, тлен и прах (если судить по тому, что знают и умеют те, кто их закончил).
Я пока сфокусируюсь на первом — а именно, «через эникеи в админы».
Что должен знать эникей?
То, что я напишу, вызовет бурю возмущения (во всяком случае, именно такую бурю обычно вызывает текст вакансии с такими требованиями и з/п в 15-17 т.р. (Санкт-Петербург)).
Нужно: уметь установить виндоуз, починить ей загрузчик, точно знать, где находятся программы, данные пользователей и т.д. (то, что называется «уверенный пользователь windows»). Дальше интеренее: нужно иметь представление об СКС (объяснить, какие пары и зачем переворачиваются в кроссе), знать про маршрутизацию (на уровне объяснить что от чего отделяет маска сети), DNS (на уровне знания про существования RR и способности определить IP по dns-имени в консоли), диагностику сети (знать, что такое пинг и уметь интерпретировать его вывод), нужно иметь какой-никакой опыт с офисными приложениями, уметь читать отлупы почтовых серверов.
Тяжеловатый список, правда? Последний раз, когда я искал помощника сисадмина, я решил не сдаваться и остановился именно на таком уровне. Нужно сказать, человек таки (через 3 недели) нашёлся.
Итак, первое — это знания. Где их получить? Видимо, дома. Внимательно думайте что делаете, старайтесь разобраться «почему». Каждая переустановка windows с нуля — ваш проигрыш.
Второе — адекватность. Свободный график, поблажки по времени работе — это удел админов. Эникейщик должен быть вовремя (и никого не волнует маршрутка в пробке), он должен быть приветлив к пользователям, он должен владеть русским языком и более-менее письменным этикетом (чтобы отвечать на письма внутри компании вменяемо).
Собеседование
Дальше вам нужно оценить адекватность людей вокруг. Трудная задача. Не стоит заигрывать в крутых админов и панибратствовать (см п.1), спросите, чем занимается компания, если видите затруднения в ответе, уточни, что интересует только то, с чем нужно будет работать по должностным обязанностям. Многие компании представляют из себя жуткое сплетение разных ООО, которые делают что попало, и рассказывать про бизнес вам никто не будет.
Кстати, об ответе на вопрос «долго ли вы у нас собиратесь работать?», отвечайте честно: «хочу набраться опыта, думаю, что минимум год, если будет интересно, то дольше». Вполне разумный срок для эникейщика. Поиск работника не менее геморройный, чем поиск работы, так что человек с намерением поработать пару месяцев энтузиазма не вызовет, но и обещание работать в качестве эникея тут до гробовой доски тоже не вызовет доверия к вашим словам.
Что делать, устроившись на работу?
В этой секции о том, как выполнять служебные обязанности. О том, что на самом деле (для собственного карьерного продвижения делать, чуть ниже).
Во-первых, осознайте, для чего вас наняли на работу: снять с админа работу. Не её излишек, очень редко администратор бывает совсем уж занят, а снять с него самую неприятную её часть: общение с пользователями и танцы вокруг компьютеров с бубном.
Вообще, это касается не только «помощника», всегда соглашайтесь на любую разовую работу (ну, кроме работы наркодиллером и испытателем ракет) — однократно вы получите от этой работы больше опыта, чем работодатель от вас пользы. Один раз протащили СКС — пачка опыта, один раз разобрались с видеокамерами — другой бесценный опыт. Научились программировать системный телефон АТС — опять же опыт. Опыт, опыт, опыт. Столкнувшись с проблемой пытайтесь не только решить её здесь и сейчас, но ройте по-максимуму. Если есть время, старайтесь прочитать в гугле хоть сколько-то про каждое новое название, которое встречаете.
Что на самом деле нужно делать?
Итак, у вас есть сколько-то времени ежедневно между звонками бухгалтеров о залипшей кнопке, посылом «пойти почини вот ту неведомую фигню» и прочими глупыми, жрущими время и низкооплачиваемыми вещами.
Это время можно:
а) Потратить на игры. Уносить сразу же. Не только потратите всё время, но ещё и получите массу проблем по работе, потому что будете тупить, тормозить и не успевать сделать, что сказали.
б) Потратить на сёрфинг, вконтактик, чатики, двачики, лепру, ещё какой другой замечательный в своей социализации сервис. Примерно то же самое, правда, менее опасно для работы.
в) Тратить на самообучение.
И вот это — главное.
Запомните, главные различия между админом и эникейщиком: теоретические знания и опыт. Опыт вы вычитать не сможете, он придёт со временем. Но какой именно он придёт, и, главное, первый пункт зависит ТОЛЬКО от того, сколько вы будете читать.
Читать, читать, читать, читать.
Если на работе есть проф. литература — читать всё. Даже если половину не понимаете. Прочтёте всю полку — начинайте читать то, что не поняли раньше.
Поток знаний, который на вас обрушится из самой глупой и зачуханной админской книжки достаточен, чтобы вкачать 2-3 левела по администрированию, причём по совершенно несвязным с темой книги темам. (Воспоминания: книжка по 2003 экчейнжу мне дала огромный пласт знаний по устройству виндов и active directory, наверное, больше, чем про эксчейнж).
Первые книги будет читать безумно тяжело. Но это нужно делать, потому что если вы не научитесь учиться, то пик вашей карьеры — престарелый полуадмин-идиот. Я таких встречал, они в 45+ лет несут наивную ахинею про антивирусы и глючную винду. Преимущественно такие выживают в гос. организациях или подыхающих от безделия полусоветских конторах.
Итак, читать, читать, читать.
Что делать, если литературы нет?
1) Купить (иногда кусается)
2) Читать, что есть (с экрана)
3) Попытаться попросить купить книжки за счёт компании (шансов мало, но есть).
В любом случае, читать, читать, читать. Договоритесь с самим собой — не менее часа в день на чтение _КНИГ_. Болтовня на тематических ресурсах за это не засчитывается. Сразу отвечаю на вопрос, каких книг: всех, которые хоть как-то касаются того, с чем вы работаете и до которых у вас дотянулись руки. За условный год вам нужно прочитать не меньше 20-30 книг, что очень, очень, очень много (это не беллитристика, некотрые умные книги нужно 2-3 раза перечитывать). Если уж совсем хочется руководства — ну, хотя бы «DNS и Bind» Альбеца и Ли. В принципе, Неймет хорош, он, правда, не по виндовой части. От себя ещё порекомендую Филимонова, «Основы мультисервисных сетей Ethernet», даёт очень мощный пинок по куче технологий. Но, 2-3 книги погоды не делают — читать, читать, читать.
Следующий пункт: общение на тематических форумах, комьюнити, и т.д. Полезно, но не заменяет книги. Лучше читать ответы, максимум, задавать вопросы. Умничать пока рано, но если вас тыкают носом в вашу глупость, страйтесь выяснить, почему вы всё ещё идиот, а не устраивайте битву троллей за кубок Флеймера. Если уж втянулись в спор, то аргументируйте — ищите источники, доказывайте. В принципе, один затяжной холивар может привести к тому, что вы сильно улучшите свои знания в области — но это при условии, что вы пытаетесь доказать свою точку зрения по источникам, а не громким и могучим IMHO.
Далее, как уже сказано ранее, старайтесь разобраться. Если вы будете задавать идиотские вопросы по работе, то это нормально (учтите, только, что админ не бог, и если он отмахивается, то есть вероятность, что он просто не знает).
Что учить?
Как сказано ранее, на первых порах всё — смежные вопросы из книг дадут вам первичные знания широкого спектра.
К моменту, когда вы это всё изучите, вы с большой вероятностью уже будете иметь какой-никакой опыт и вполне сойдёте за начинающего админа.
Чего избегать?
Тут мы начинаем самую сложную часть.
Во-первых, в мире Windows принято пиратить платный софт. В мире линукса тоже, только платного софта почти нет, в репозиториях много нужного и опенсорсного, так что проблема менее остра.
Наш доблестный уголовный кодекс предусматривает, что виноват тот, кто софт ставил. И если по служебной записке — то «по предварительному сговору», то есть отмазок нет. Если что-то случится — вас попытаются сделать виноватым. Учитывайте это, старайтесь держаться от Microsoft, Adobe, Autocad, 1С подальше. К сожалению, выбора нет, решайте сами — рисковать потенциальным условным сроком или вполне неиллюзорно вылететь с работы «за идиотизм». Это проф.риск многих начинающих админов (а так же цена работы с хорошо знакомой windows).
Вас могут попытаться сделать гибридом грузчика и помощника завхоза. От переноски серверов (легко) и серверных упсов (тяжело) вам не отвертеться, а вот от всякой завхозной ерунды — старайтесь уклоняться. Ибо время ест, а квалификации не добавляет.
Oh, my code. Как стать системным администратором
Заместитель технического директора Mail.Ru Group Татьяна Бахаревская рассказывает о пути системного администратора, о плюсах работы сисадмином и особенностях эксплуатации в крупной компании. Татьяна отвечала и отвечает за работу сервисов двух крупнейших порталов России.
Ведущий программы — Павел Щербинин.
— Расскажи немного о себе.
— Я пришла в профессию довольно давно. Устроилась младшим системным администратором в небольшой стартап, который разрабатывал свою поисковую систему и ряд других интернет—проектов. Это был «Яндекс», где я проработала очень много лет. Выросла до серьезного системного администратора, потом возглавила отдел системного администрирования. В 2005 году в этом отделе работало 5 человек, а через 10 лет — 250, это была большая структура, образовалось несколько подразделений. Мы научились нанимать, растить инженеров, сделали такие мероприятия, как Root, КИТ. В Яндексе я отвечала за непрерывную бесперебойную работу компании, а теперь уже скоро год как занимаюсь тем же самым в Mail.Ru Group. Поначалу казалось, что задачи похожие, но при ближайшем рассмотрении выяснилось, что общего много, но и различий хватает, и это интересно.
— Есть много разных терминов для службы эксплуатации. Это и просто эксплуатация, и системный администратор, SRE, SE, DevOps. Расскажи про каждый подробнее. Или это одно и то же? Чем они отличаются?
— На самом деле, системный администратор — это довольно широкое понятие, начиная с того, что человек может отвечать за какой-то небольшой офис с небольшой офисной инфраструктурой на несколько сотрудников, заканчивая ответственностью за непрерывную работу высоконагруженного сервиса. В какой-то момент это всё же разделилось на разные направления. В таких компаниях, как Mail.Ru Group, «Яндекс», Google, системный администратор ближе к тому, что сейчас называется модными словами SRE — Site Reliability Engineer, то есть человек, отвечающий за доступность сайта.
Наша работа требует много разных знаний о технологиях: Linux/Unix, сети, базы данных, веб-сервера, облачные технологии, состав оборудования, которое мы применяем для построения сервисов (процессоры, память, диски) и много еще чего. Про технологии надо понимать, как их применять, чем они отличаются. Всегда есть очень много рутинной работы, которую надо автоматизировать. Писать код тоже надо. Современные системные администраторы/SRE по большей части программируют. На текущий момент основной язык для автоматизации — Python, плюс, конечно же, bash. Знание C тоже всегда было плюсом. К примеру, самая лучшая документация по Linux: открыть код ядра и посмотреть, как всё устроено.
Еще важно понимать, как строить высоконагруженные и отказоустойчивые системы. Про это уже довольно много рассказано на конференциях и написано в интернете.
Итого, если подвести итог, современному инженеру, отвечающему за высоконагруженный сервис, надо уметь программировать, знать и применять различные технологии, иметь представление о том, как строить надежные и масштабируемые сервисы.
— Давай вернемся немного в прошлое. Очень интересен самый начальный этап. Почему ты выбрала эксплуатацию?
— Это было забавно. В те годы все приличные девочки хотели стать бухгалтерами. Я тоже хотела, поэтому пошла на курсы. Там сказали, чтобы стать бухгалтером, нужно освоить счеты и арифмометр «Феликс», я решила, что это слишком сложно, и «знание компьютера» (так писали в объявлениях о работе) облегчит мне жизнь и поиск работы. В итоге пошла «изучать компьютер» в ближайшем Московском инженерно-физическом институте, на факультете Кибернетики, на кафедре электронных вычислительных машин. Выяснилось, что в этом компьютере кроме Word и Excel есть еще куча всего — процессор, память, конвейеры, устройства ввода-вывода. Под конец обучения я хотела стать программистом. На первых курсах у меня программирование шло довольно сложно, а в конце обучения прямо пёрло писать код. Могла это делать сутками напролет. Вечером садилась и писала код, а следующим вечером открывала глаза. Всё шло довольно неплохо, программы работали. Но я поняла, что я человек увлекающийся, и решила выбрать что-то попроще. И пошла в эксплуатацию, а оказалось, что здесь тоже не просто, а даже местами сильно сложнее. Но я осталась, и вот уже больше 20 лет этим занимаюсь.
— Интересно, в какой момент принимаешь решение, быть программистом или админом?
— По-разному. Последние много лет я сталкиваюсь со студентами, и в «Яндексе», и в Mail.Ru. Люди в студенчестве приходят пробовать себя и в программировании, и в администрировании. Кто-то остается в эксплуатации и понимает, что это его. Кто-то, поработав немного, переходит в разработку. Кто-то, поработав в разработке, понимает, что хочет глубже разбираться в каких-то проблемах, узнать стек того, что находится ниже, под его программой, как она эксплуатируется, как живет, и погружается в эксплуатацию. Есть какие-то пограничные случаи, которые сейчас называют модным словом DevOps. Эти люди должны много знать и про железо, и про эксплуатацию, и про код.
Всё зависит от человека, от того, что ему нравится и не нравится. А профессии эти очень сходны, во многом пересекаются.
— Про тебя ходят легенды в «Яндексе», что в своё время у тебя был специальный рубильник, который в любой момент мог выключить один дата-центр, чтобы протестировать устойчивость системы. Расскажи подробнее.
— Эта история началась много-много лет назад с крупного инцидента: у «Яндекса» отключились практически все ЦОД. Точнее, отключился один, но в нем находилось всё сетевое оборудование компании. «Яндекс» не работал несколько часов. После этого была поставлена задача сделать всё надежным, отказоустойчивым, чтобы всё работало в случае отключения одного из ЦОД. Сегодня эта проблема уже не так актуальна, особенно для коммерческих ЦОД. Надежность стала гораздо выше, есть примеры, как современные ЦОД живут несколько дней на солярке. Но тогда было всё иначе.
Несколько лет мы анализировали архитектуру всех приложений, писали планы задач, как и что надо сделать для обеспечения полной отказоустойчивости. Там, где это было невозможно или слишком сложно, мы обговаривали SLA (service level agreement). Основное внимание было приковано к популярным и высоконагруженным сервисам. Первое тестовое отключение было очень страшным. Половина сотрудников следили за данными мониторинга. Отключились и довольно быстро включились, записали все баги, доработали ряд систем. И так несколько итераций.
Через какое-то время дошли до того, что могли спокойно прожить час-два, отключив один дата-центр. Все понимали, что навык нужно поддерживать, регулярно проводить учения по отключению. Это как в сантехнике: если кран долго не открываешь, не закрываешь, то он закисляется, и в нужный момент его не откроешь. Поэтому мы регулярно открывали и закрывали «краны». И это работало. Я считаю достижением, что как-то раз мне ночью позвонили и сказали, что дата-центр упал, а я спросила, зачем меня разбудили 🙂
— Как ты думаешь, где проходит грань между программистами и системными администраторами? В какой момент программист может сказать, что он за это не отвечает, не знает, какая там база данных, это к админам. Или этой грани нет?
— Мне кажется, что админ отвечает за приложение «от кончика носа до кончика хвоста». По-хорошему, он может залезть в код, посмотреть, как оно там устроено, как ему это чинить. Он участвует в выборе технологии, потому что есть хорошие технологии для программистов, с ними очень удобно писать, но жить в режиме 24/7 с ними невозможно.
Программисты больше могут сосредоточиться на тех фичах продукта, которые им необходимы: дополнительная функциональность, дизайн, дополнительный код, который позволяет проекту лучше масштабироваться. То есть разделение всё же есть. В международной практике это Site Reliability и Software Engineer. Существуют разные теории, где и как должно проходить разделение ролей. Мне кажется, что принятая в Mail.Ru Group парадигма, в рамках которой есть эксплуатация и разработка, и это разные люди, работает довольно хорошо.
— Наверное, не все знают, как сейчас устроено в Mail.Ru Group. Расскажи подробнее.
— У нас есть служба эксплуатации, которая отвечает за работу сервисов. Она состоит из нескольких отделов. Каждый отдел отвечает за конкретный продукт или группу продуктов, в зависимости от масштаба. К примеру, Почтой занимаются несколько отделов: один хранилищем, другой вебом. А есть отделы, которые работают над несколькими проектами, масштабом поменьше.
В нашем хозяйстве — Почта, Поиск, Портал, Delivery club, «Юла», «Мой мир», ICQ и многие другие. Есть проекты, которые были запущены давно и являются нашими core-продуктами, например, Почта и Портал. Есть купленные нами проекты, которые мы размещаем на своей инфраструктуре, обмениваемся с ними практиками эксплуатации. А есть те, которые родились у нас и очень быстро выросли, например, «Юла». Хозяйство довольно разнообразное 🙂
— Как выглядит архитектура типичного сервиса Mail.Ru Group?
— У нас несколько дата-центров. ЦОД как собственные, так и коммерческие, в коммерческих оборудование и сети у нас свои. Суммарная емкость каналов у нас измеряется терабитами.
Мы размещаем серверы проектов в нескольких дата-центрах, чтобы отключение одного не влияло на работу сервиса. Большинство наших проектов — это веб-сайты. Архитектура стандартная: балансировщик нагрузки, под ним web-сервер, потом сервер приложений, а потом СУБД и/или хранилище.
Далее начинаются детали.
В основном у нас всё живет на железных серверах, но и облака тоже есть. Например, для разработки и тестирования используется облако на OpenStack, где разработка и тестирование могут получить ресурсы по нажатию кнопки.
Kubernetes внедряем, но этот процесс требует много чего менять в процессах как эксплуатации, так и разработки. Идет не быстро. Стараемся всё сделать аккуратно, чтобы ничего не сломать.
Вернемся к тому, что у нас происходит с пользователями. Для начала пользователь попадает на балансировщик. Для балансировки нагрузки используются сетевые протоколы BGP и RIP, и традиционное программное обеспечение — ipvs, haproxy и nginx. После чего web-серверы показывают пользователям красивые страницы, в основном, с помощью nginx и Apache.
А вот за ними стоят серверы приложений. Поскольку, как я говорила выше, есть и legacy, и довольно новые проекты, то языков программирования, на которых всё это написано, довольно много.
В качестве СУБД для новых проектов используются, в основном, MySQL, PostgreSQL и наша внутренняя разработка Tarantool. Пользователи не должны ощутить потери серверов какого-то хранилища или его части, мы стараемся бэкапить и реплицировать данные в соседние дата-центры.
В основном, мы используем оpen source, так как у нас в компании много программистов и инженеров, которые могут в любой момент что-то исправить. Есть и свои разработки. Например, хранилище, в котором лежат письма пользователей — своя собственная разработка.
— Сколько у тебя человек в подчинении?
— Сейчас около 70, но это количество регулярно растет. Мы активно расширяемся, сейчас много открытых позиций.
— Сколько серверов они обслуживают?
— Несколько десятков тысяч серверов, которые расположены в наших дата-центрах. В основном в Москве, но также у нас есть серверы в других городах, в США и Европе. За всем этим серверным парком нужно следить и ухаживать, обслуживать его. Сами мы, конечно, не ездим в дата-центры, только разве что на экскурсии.
— Какой же объем канала должен быть?
— Несколько терабит. У всей Mail.Ru Group общая сеть, по которой передается очень много информации. Возьмите хотя бы «ВК» и «ОК», которые показывают кучу видео, а ведь ещё есть Почта, Поиск, аналитика, и много других высоконагруженных сервисов. Поэтому сеть — важная составляющая.
— Что нужно знать, чтобы стать хорошим системным администратором?
— Конечно же, Linux. Многие коммерческие компании сейчас используют эту ОС. В основном внутри компаний стараются не использовать разные дистрибутивы, все стремятся к тому, чтобы он был один, так проще обновлять и поддерживать работоспособность систем. У всех свои предпочтения по дистрибутиву, мы используем CentOS. Так что в первую очередь нужно знать Linux, как и что там устроено, как устроено межпроцессное взаимодействие, как всё загружается и работает.
Дальше идет специализация — кому что ближе и к чему лежит душа :-). Кто-то специализируется на автоматизации, кто-то на веб-серверах, кто-то на сетях, кто-то на базах данных, а кто-то на облачных технологиях. Мне, например, в своё время очень нравились базы данных. Нужно понимать как работают приложения — уметь их настраивать, понимать плюсы-минусы применения того или иного приложения в задаче, ну и, конечно же, уметь его очень быстро чинить в случае проблем.
Примеры таких специализаций: сетевые инженеры разбираются в протоколах и знают, где и какие лучше применять, умеют настраивать глобальную и локальную маршрутизацию, знают, как обеспечить надёжность и отказоустойчивость сети.
Специалисты по базам данных знают, как шардировать, реплицировать, бэкапить базу данных, чтобы надежно сохранить информацию и обеспечить высокую скорость работы. Эти люди умеют посмотреть планы запросов, знают, зачем нужны индексы и какие они бывают.
Типичная задача: обсудить, почему запрос выполняется долго, надо и план посмотреть, и понять, нет ли проблем с загрузкой сервера (память, процессор, ввод-вывод).
— В общественном мнении админы представляются как ребята с большой бородой в растянутом свитере. Сложно ли тебе работать в мужском коллективе?
— Сложный вопрос, потому что я работаю уже много лет. Во-первых, привыкла. Во-вторых, если говорить про индустрию в целом, то уже было довольно много девушек в эксплуатации.
Такой миф исходит из далеких времен, когда требовалось много физической работы. Мы до сих пор с подругой вспоминаем, как вдвоем вытащили большой, тяжелый, многоюнитовый сервер и поставили на пол, потому что отнести в специальное место для обслуживания уже не смогли. И сидели на полу посреди дата-центра с отвертками, меняли диски. Салазок тогда еще не было 🙂
Сейчас такого нет. Работаем в удобном офисе за столом. Наша работа сегодня ничем не отличается от работы программиста, которая тоже никогда не была чисто мужской: девушки-программисты — довольно частое явление.
— Наш блиц-опрос. Какой у тебя ноутбук?
— Что лучше, Bash или Perl?
— Стартап или большая компания?
— Стартап в большой компании.
— На что последнее тебе не хватило денег?
— Отличный ответ. Все сразу поймут уровень зарплаты в Mail.Ru Group.
— «ВК» или «Одноклассники»?
— У меня нет кумира. Я считаю, что многие люди и в российском, и в зарубежном интернете сделали довольно много для этой индустрии. Благодаря им она развивается такими темпами. Мне повезло, со многими из них я знакома лично.
— Назови крупных российских.
— Довольно много; опять же, боюсь, что всех не перечислю. Если кого-то надо выделить лично, то рада, что в жизни получилось поработать с Ильей Сегаловичем.