Системы, за которые нужно отвечать, есть в государственных структурах и частных компаниях разного масштаба и рода деятельности, в ИТ и других отраслях: от нефтегазовой сферы до розничной торговли.
В небольших ИТ-командах до 10–12 человек обязанности по работе с системами возложены на плечи программистов и сисадминов. Работа системных инженеров требуется там, где уже есть автоматизация рутинных процессов. Такие специалисты поддерживают то, чем люди пользуются каждый день: социальные сети и банковские сервисы, интернет-провайдеры и маркетплейсы, госуслуги и онлайн-образование. Этим они оптимизируют работу программистов и сисадминов, выстраивают культуру работы с программным кодом и сводят к минимуму риск хаотичных вмешательств в работу системы.
Разберёмся, чем отличается работа системного инженера от смежных специализаций, какие задачи им приходится решать, где можно научиться азам этой профессии и как в ней совершенствоваться.
Системный инженер, DevOps, SRE: в чём разница
На рынке IT существует путаница между ролями DevOps, SRE (Site Reliability Engineer) и системного инженера.
DevOps’ами называются специалисты, ответственные за процессы сборки и доставки кода от стабильного билда к производственной эксплуатации релиза. Обычно в ИТ-компаниях такие люди действуют внутри команды разработки, реже — совмещают работу в командах разработки и тестирования.
SRE (инженеры по надёжности сайта) — разработчики, ответственные за вторую и третью линии поддержки по надёжности, доступности и отказоустойчивости веб-сервиса. Часть их функций сходна с функциями техподдержки или сисадминов с той разницей, что для управления надёжностью они используют другой набор инструментов, подходов. В него входят DevOps-практики, элементы управления инцидентами и расчёт бюджета ошибок.
Термин DevOps часто встречается в резюме и вакансиях, но далеко не всегда его используют корректно. На практике около половины вакансий DevOps-инженеров подразумевают работу SRE.
Понятие «системный инженер» более широкое, и реальные задачи такого специалиста зависят от компании и сферы деятельности. Они проектируют продукты совместно с архитекторами, отвечают за подбор решений и создание инструментов по запросам внутренних пользователей, за надёжность и мониторинг вместе с разработкой. Системный инженер может применять и некоторые практики SRE, методики DevOps в сочетании с автоматизацией рутинных задач для команд, а также разрабатывать модели и инструменты бэкапирования данных.
Какие проблемы решают системные инженеры
Если в компании нет штата системных инженеров, проблемами ИТ-инфраструктуры обычно занимаются штатные программисты или сисадмины. Обычно такие специалисты находят самое быстрое решение, не думая о его долговечности. Это работает в краткосрочной перспективе, но чем дальше, тем выше оказывается вероятность сбоя системы. Тем более, если люди в команде меняются и новый сотрудник не знает, что делал и за что отвечал предшественник. Системные инженеры решают проблемы, связанные с передачей знаний и затратами времени инженеров.
Экономят время, деньги, нервы
Ошибки в работе системы чреваты остановкой бизнес-процессов, падением продаж, недовольством клиентов, которые могут уйти к конкуренту или оставить отрицательный отзыв. Всё это сказывается и на финансовых показателях, и на репутации компании. Также без системных инженеров бизнесу приходится самостоятельно решать вопросы внешней инфраструктуры. Для этого нужно регистрировать, подключать и поддерживать сторонние сервисы вместо того, чтобы реализовать всё на базе родной платформы. На деле этой работой часто пренебрегают.
Когда в штате компании нет ответственных за систему, нельзя прогнозировать точные предположить сроки её восстановления. Проблемы в таком случае часто решаются методом перебора диагностик и гипотез, что занимает необоснованно много времени.
При работе системных инженеров появляется возможность давать гарантии по срокам, отказоустойчивости, проведению технических работ и восстановлению после сбоев.
Оптимизируют все процессы
Системные инженеры выстраивают систему с понятными метриками, по которым можно объективно оценить её стабильность и производительность, обнаруживать и исправлять проблемы. Так легче планировать разработку и оптимизировать расходы, а масштабирование системы становится рутинной задачей и занимает гораздо меньше времени.
Выстраивают правильную культуру работы с кодом
При хаотичном управлении платформой специалисты часто вынуждены перерабатывать код. К примеру, если на трёх одинаковых серверах программисты внесли разные изменения и не отразили их в документации, то велика вероятность, что один и тот же код не будет работать одинаково. Чем больше подобных случаев, тем меньше остаётся понимания архитектуры и инфраструктурного уровня кода. Системные инженеры решают эти проблемы, исключая в своей работе хаотичные вмешательства в работу системы.
Что должен знать и уметь системный инженер
HARD SKILLS
Профессия системного инженера объединяет знания в области ИТ, инженерии и менеджмента. Конкретный список технологий, которыми должен владеть такой специалист, зависит от компании. Но основные навыки, которые встречаются в объявлениях, это:
работа с Linux-системами;
работа с облачными технологиями;
управление пользовательскими группами;
документирование процессов;
знание сетевых стандартов и протоколов;
понимание стандартов иерархии файловой системы;
работа с инструментами управления конфигурациями.
Елизавета
Младший системный инженер, Санкт-Петербург
– о навыках для начинающих системных инженеров –
Я окончила университет в прошлом году и сейчас начинаю свою карьеру в ИТ. По образованию я программист, но работа с сетями мне интереснее, чем программирование, а обслуживание — интереснее, чем проектирование. Только что я устроилась на свою первую работу: в этом мне помог знакомый DevOps. Он попросил меня настроить ArchLinux в обмен на обещание трудоустройства. Вскоре открыли вакансию в той компании, где он начинал.
Сейчас я прохожу оплачиваемую стажировку в хостинг-провайдере. Когда я устраивалась на эту работу, то владела азами программирования и работы с кодом, навыками работы с Linux и сетями: для начинающего этого достаточно. Здесь три линии поддержки, с которыми придётся работать по мере усложнения задач и учиться на ходу. Зарплата небольшая, но я работаю ради опыта и обучения с перспективами роста до DevOps или разработчика. Мне приходили и другие офферы, но здесь оказалось больше возможностей для развития.
Сергей
Начальник отдела VMWare, Санкт-Петербург
– о знаниях при трудоустройстве и готовности учиться на ходу –
Я начинал работать в качестве системного инженера дата-центра в одном из крупных хостинг-провайдеров сразу после окончания университета. Ещё в школе меня очень увлекали темы дата-центров, облачных вычислений и всего, что с ними связано. Поэтому выбрать направление для профессиональной деятельности было просто: уже на втором курсе я твёрдо решил, что хочу работать либо в системном интеграторе, либо в хостинг-провайдере.
При трудоустройстве мне очень пригодились знания по устройству ОС: как общие, так и конкретно по GNU/Linux. У меня был неплохой для той позиции бэкграунд по сетям и виртуализации, также плюсом были знания по устройству серверного «железа». Но всё равно многому учился на ходу. По большей части приходилось изучать устройство внутренних информационных систем, обслуживающих инфраструктуру дата-центров, но иногда брался и за совсем незнакомые ранее вещи.
Помню своё первое серьёзное знакомство с FreeBSD «вживую»: была задача развернуть ОС на сервер одного из клиентов с использованием программного RAID. C ходу она казалась простой, но я делал это впервые и для заказчика, отвечая за качество головой. Пришлось попотеть, углубиться в документацию, разобраться, как работает программный RAID, изучить утилиты. Но в результате 6 часов спустя всё было готово.
SOFT SKILLS
Как и во многих ИТ-профессиях, на рынке труда среди системных инженеров существует конкуренция, и психологические качества специалиста тоже играют здесь важную роль.
Гибкость. Многие вакансии предполагают сменную работу, суточные или ночные смены, дежурства, необходимость работать в праздники. Поэтому системному инженеру нужны умение адаптироваться к разным режимам работы и стрессоустойчивость.
Постоянное развитие. Обучаемость и тяга к новым знаниям — вопрос выживания любого ИТ-специалиста на рынке труда, потому что технологии постоянно меняются. Понятно, что всё разом изучить невозможно, но держать руку на пульсе хотя бы по своей основной специализации — это необходимость. Не менее важна готовность не только изучать новое, но и применять его на практике.
Умение разбираться. Любому инженеру нужен вдумчивый, рассудительный и последовательный подход к решению задач. Прежде чем что-либо сделать, инженер в первую очередь досконально должен изучить предмет, с помощью которого он хочет решить поставленную задачу. Предметом может быть и технология, и продукт, и какая-то конкретная функция этого продукта. Без базовых знаний никакой инженерии быть не может.
Ответственность. Если инженер заявил, что система, созданная или настроенная его руками, работает, может выдержать определённую нагрузку и имеет определённые ограничения, то он всецело ответственен за свои слова. Хороший специалист всегда подкрепляет свои аргументы конкретными расчётами, тестами, документацией.
ОБРАЗОВАНИЕ
Большинство системных инженеров — люди с техническим образованием в инженерной или математической сфере. Многие начинают работать по этой специальности на старших курсах или сразу после вуза, и позиции уровня Junior оптимальны для старта карьеры. Для более узкой специализации хорошо подходят магистерские программы: например, по биомедицинским системам, кибербезопасности, администрированию информационных систем.
Иногда системными инженерами работают люди и без профильного технического или ИТ-образования. В таких случаях хорошим выходом для повышения квалификации становятся тематические курсы, сертификаты и учебные материалы. К примеру, Международный совет по системной инженерии (INCOSE) предлагает многоуровневую программу профессиональной сертификации:
ASEP (Associate Systems Engineering Professional) → для начинающих;
CSEP (Certified Systems Engineering Professional) → для специалистов с опытом работы от 5 лет;
ESEP (Expert Systems Engineering Professional) → для профессионалов с многолетним опытом.
Курсы по получению профессии системного инженера для лиц с высшим образованием любого профиля есть и в некоторых технических вузах, например, при МГТУ имени Баумана и ИТМО. Выпускники таких курсов получают диплом о дополнительном профессиональном образовании с правом на работу.
Навыки работы с сетями и информационными системами полезно черпать и из профессиональной литературы. Для ознакомления подойдут книги о внутреннем устройстве GNU/Linux, а также пособия по сетям: например, учебник «Компьютерные сети. Принципы, технологии, протоколы» авторства Виктора и Натальи Олиферов. Для работы с конкретным оборудованием можно изучить специализированные материалы вендоров железа. Также полезны будут тематические материалы и подкасты от проекта linkmeup.
Александр
Старший системный администратор, Санкт-Петербург
– о сдаче сертификата и готовности развиваться –
По образованию я психолог и до какого-то момента я даже не рассматривал ИТ-сферу как профессию. Но ещё в студенческие годы меня очень заинтересовала тема Linux. Приходилось искать информацию в книжных магазинах, на дисковых развалах, ночами сидеть в интернет-клубах (дело было в самом начале 2000-х), чтобы скачивать информацию скопом.
Когда я всё же решил, что буду работать в ИТ, мне мешало отсутствие профильного образования и хоть какого-то близкого опыта работы. Стал искать признанные сертификаты и остановился на LPIC-1 (сертификация Linux Professional Institute, сейчас недоступна в РФ — прим. ред.), к которому начал интенсивно готовиться. Рассчитывал на то, что сертификат всё же международный и на английском языке. А это хоть какой-то, но вес. Параллельно устроился на первую линию техподдержки в локальный интернет-провайдер. Уже после сдачи сертификата нашёл работу сисадмином в офисе, где достаточно широко использовался Linux, и параллельно готовился к LPIC-2. После получения второго сертификата я устроился системным инженером в дата-центр.
На собеседовании в дата-центр я не успел расписать все ответы опросника за отведённое время, поэтому на последние отвечал экспромтом. Приходилось догадываться и предполагать, что я и сделал, но на работу взяли. Потом уже на практике не раз приходилось решать задачи, с которыми раньше не приходилось иметь дело. Например, собирать кластер Oracle DB или настраивать миграцию баз данных из одного дата-центра в другой через репликацию. Что всегда выручало — знание общих принципов, чтение документации и примеров в сочетании с желанием попробовать и разобраться.
Куда двигаться дальше системному инженеру
Системный инженер должен постоянно заниматься самообразованием и повышать квалификацию. После нескольких лет работы можно переквалифицироваться в программиста, архитектора информационных систем или стать тимлидом. Знание иностранных языков позволяет специалисту искать работу не только в отечественных, но и в международных компаниях.
Сергей
Начальник отдела VMWare, Санкт-Петербург
Вырасти из системного инженера можно много куда. Например, в компании, где я работаю, многие топ-менеджеры, менеджеры продуктов выросли именно из системных инженеров дата-центра.
Александр
Старший системный администратор, Санкт-Петербург
Сейчас я ушёл в Bare-Metal Deployment. Но среди возможных вариантов были и другие: DevOps, сети, «облака», да много чего. Я просто выбрал то, что мне интереснее. Когда достигаешь достаточной базы, то понимаешь, что у тебя просто физически не хватит времени заниматься всем подряд и нужно выбирать. Оставаться в курсе технологий поможет общение с коллегами из разных команд и даже разных компаний, чтобы люди активно делились опытом и знаниями.
Профессия системного инженера хороша как для старта карьеры, так и как возможность переквалифицироваться уже внутри ИТ-отрасли. Конкретное направление уже зависит от места работы и ваших личных интересов.
Комментарии (2)
medvedouxerectus
14.04.2023 05:54+1При этом в автомобиле-, самолето-, корабле-строении и т.д., системным инженером будут называть позицию идентичную аналитику в остальном АйТи.
dyadyaSerezha
Код часто перерабатывают вне зависимости от хаотичности управления платформой. Это необходимая часть любого большого и долгого проекта.
Если изменения разные, то и код разный. Если же код одинаковый, то и работать будет одинаково (при прочих равных). Противоречие.
Унификация кода на серверах - задача DevOps. И вообще, в статье, на мой взгляд, какое-то искусственное и почти невидимое разделение между системным инженером и DevOps.