Системы, за которые нужно отвечать, есть в государственных структурах и частных компаниях разного масштаба и рода деятельности, в ИТ и других отраслях: от нефтегазовой сферы до розничной торговли. 

В небольших ИТ-командах до 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)


  1. dyadyaSerezha
    14.04.2023 05:54
    +1

    При хаотичном управлении платформой специалисты часто вынуждены перерабатывать код. К примеру, если на трёх одинаковых серверах программисты внесли разные изменения и не отразили их в документации, то велика вероятность, что один и тот же код не будет работать одинаково. 

    1. Код часто перерабатывают вне зависимости от хаотичности управления платформой. Это необходимая часть любого большого и долгого проекта.

    2. Если изменения разные, то и код разный. Если же код одинаковый, то и работать будет одинаково (при прочих равных). Противоречие.

    3. Унификация кода на серверах - задача DevOps. И вообще, в статье, на мой взгляд, какое-то искусственное и почти невидимое разделение между системным инженером и DevOps.


  1. medvedouxerectus
    14.04.2023 05:54
    +1

    При этом в автомобиле-, самолето-, корабле-строении и т.д., системным инженером будут называть позицию идентичную аналитику в остальном АйТи.