Автор статьи: Рустем Галиев

IBM Senior DevOps Engineer & Integration Architect. Официальный DevOps ментор и коуч в IBM

Привет, Хабр! Недавно я искал себе в команду узкоспециализированного инженера систем Linux.

Во время расширения команды возникает вопрос: какие наши ожидания и что мы хотим. А главное, чтобы не было расхождений, когда в вакансии мы пишем одно, на техническом собеседовании спрашиваем другое, а в итоге работа заключается совсем в третьем. Я провел анализ и хотел бы поделиться составленными требованиями к синьор инженеру.

Администрирование Linux на Senior уровне включает в себя управление и обслуживание системы или сети на базе Linux в большой и сложной среде. Это требует глубокого понимания операционной системы Linux и ряда передовых навыков и методов.

Вот примеры задач, за которые должен отвечать Senior Linux Administrator:

Системная архитектура и проектирование

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

Архитектура и проектирование системы Linux включает в себя планирование и создание системы или сети на базе Linux таким образом, чтобы он отвечал потребностям и требованиям организации или приложения. Это требует глубокого понимания операционной системы Linux, а также аппаратных и программных компонентов, составляющих систему.

Вот несколько ключевых соображений по архитектуре и дизайну системы Linux:

Аппаратное обеспечение: Аппаратные компоненты системы Linux включают физические серверы, устройства хранения и сетевое оборудование, из которых состоит система. При проектировании системы Linux важно выбрать аппаратное обеспечение, соответствующее рабочей нагрузке и требованиям к производительности системы. Это может включать такие факторы, как тип и количество процессоров, объем памяти, а также тип и емкость запоминающих устройств.

Операционная система. Операционная система является основой системы Linux и играет решающую роль в ее архитектуре и дизайне. При проектировании системы Linux важно выбрать подходящую версию операционной системы и убедиться, что она правильно настроена для поддержки желаемой рабочей нагрузки и функций. Это может включать в себя такие задачи, как выбор соответствующей версии ядра, настройка системных служб и демонов, а также установка и настройка системных библиотек и утилит.

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

Сеть. Сетевые компоненты системы Linux включают аппаратное и программное обеспечение, обеспечивающее связь между системой и другими устройствами и сетями. При проектировании системы Linux важно учитывать такие факторы, как топология сети, тип и мощность сетевого оборудования, а также протоколы и службы, которые будут использоваться.

Безопасность. Безопасность является важным фактором в архитектуре и дизайне системы Linux. При проектировании системы Linux важно учитывать риски безопасности и уязвимости, которые могут повлиять на систему, и внедрять соответствующие средства контроля для снижения этих рисков. Это может включать в себя такие задачи, как настройка брандмауэра и контроля доступа, внедрение механизмов шифрования и аутентификации, а также мониторинг угроз безопасности.

Можно сказать, что архитектура и проектирование системы Linux включают в себя широкий спектр задач и соображений, которые требуют глубокого понимания операционной системы Linux, а также аппаратных и программных компонентов, из которых состоит система. Тщательно планируя и проектируя систему Linux, организации могут гарантировать ее надежность, масштабируемость и безопасность, а также ее соответствие потребностям и требованиям организации или приложения.

Вот пример задачи, которая может быть связана с архитектурой и проектированием системы Linux, а также возможное решение:

Задача: Спроектировать файловый сервер на базе Linux для небольшой организации.

Решение:

Аппаратное обеспечение: файловому серверу потребуется достаточная емкость для хранения файлов организации, а также достаточная вычислительная мощность и память для поддержки рабочей нагрузки. Возможным решением может быть выбор сервера среднего уровня с жестким диском большой емкости, четырехъядерным процессором и 8 ГБ памяти.

Операционная система: для файлового сервера потребуется стабильная и безопасная версия операционной системы Linux. Возможным решением может быть выбор версии с долгосрочной поддержкой (LTS) популярного дистрибутива Linux, такого как Ubuntu или CentOS.

Приложения и службы. Файловый сервер должен поддерживать протоколы обмена файлами, такие как SMB и NFS, а также механизмы аутентификации, такие как LDAP или Active Directory. Возможным решением может быть установка и настройка серверов Samba и NFS, а также их интеграция с системой аутентификации организации.

Сеть. Файловый сервер должен быть доступен по сети организации и должен иметь возможность обрабатывать большие объемы трафика. Возможным решением может быть подключение сервера к быстрой и надежной сети, а также настройка сетевого стека и протоколов для оптимизации производительности.

Безопасность: файловый сервер будет хранить конфиденциальные данные и должен быть защищен от несанкционированного доступа. Возможным решением может быть внедрение мер безопасности, таких как брандмауэр и контроль доступа, а также регулярный мониторинг и обновление системы для обеспечения ее безопасности.

В этом примере задача проектирования файлового сервера на базе Linux включает в себя ряд соображений и решений, типичных для архитектуры и дизайна системы Linux. Тщательно спланировав и спроектировав систему, можно создать надежный и безопасный файловый сервер, отвечающий потребностям организации.

Оптимизация и настройка производительности

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

Вот пример задачи, которая может быть связана с оптимизацией и настройкой производительности Linux, а также возможное решение:

Задача: повысить производительность веб-сервера на базе Linux, который испытывает высокий уровень трафика.

Решение:

Мониторинг показателей производительности. Первым шагом в повышении производительности веб-сервера является выявление узких мест и проблем, вызывающих низкую производительность. Это может включать в себя такие задачи, как мониторинг показателей производительности, например загрузка ЦП, использование памяти и пропускная способность сети, с помощью таких инструментов, как top, vmstat и sar.

Настройте ядро: если ядро не настроено оптимально, это может вызвать проблемы с производительностью на веб-сервере. Для повышения производительности может потребоваться настроить ядро изменив такие параметры, как планировщик, сетевой стек и файловая система. Это можно сделать с помощью таких инструментов, как sysctl и sysfs.

Настройте файловую систему: файловая система также может влиять на производительность веб-сервера. Для повышения производительности может потребоваться настроить файловую систему, изменив такие параметры как размер блока, тип файловой системы и параметры монтирования. Это можно сделать с помощью таких инструментов, как tune2fs и mount.

Настройте программное обеспечение веб-сервера. Программное обеспечение веб-сервера (например, Apache, Nginx) также может влиять на производительность. Для повышения производительности может потребоваться настроить веб-сервер, изменив такие параметры как количество рабочих процессов, размер пула соединений и параметры кэширования. Это можно сделать, изменив файлы конфигурации программного обеспечения веб-сервера.

Горизонтальное масштабирование: если проблемы с производительностью не могут быть решены путем настройки веб-сервера, может потребоваться горизонтальное масштабирование системы путем добавления дополнительных серверов в кластер веб-серверов. Это можно сделать, добавив дополнительные серверы в балансировщик нагрузки и настроив их для разделения рабочей нагрузки.

В этом примере задача повышения производительности веб-сервера на базе Linux включает ряд подходов и решений, типичных для оптимизации и настройки производительности Linux. Тщательно отслеживая и настраивая систему, можно повысить производительность веб-сервера и лучше справляться с большими объемами трафика.

Безопасность

Старшие администраторы Linux несут ответственность за обеспечение безопасности системы или сети. Это может включать в себя такие задачи, как внедрение мер безопасности, мониторинг угроз безопасности и реагирование на инциденты безопасности.

Вот пример задачи, которая может быть связана с безопасностью Linux, а также возможное решение:

Задача: защитить сервер на базе Linux, доступный в Интернет.

Решение:

Установите брандмауэр. Первым шагом в обеспечении безопасности сервера является установка брандмауэра для блокировки несанкционированного доступа из Интернета. Это можно сделать с помощью такого инструмента, как iptables, который позволяет создавать правила брандмауэра, контролирующие поток трафика к серверу и от него.

Включить SSL: для шифрования связи между сервером и клиентами рекомендуется включить SSL на сервере. Это можно сделать, установив сертификат SSL на сервер и настроив программное обеспечение веб-сервера (например, Apache, Nginx) для использования SSL.

Защитите операционную систему. Чтобы защитить саму операционную систему, важно убедиться, что в ней установлены последние исправления и обновления безопасности. Это можно сделать с помощью таких инструментов, как apt-get (в системах на базе Debian) или yum (в системах на базе Red Hat).

Защитите приложения. Чтобы защитить приложения, работающие на сервере, важно убедиться, что в них установлены последние исправления и обновления безопасности. Это может включать такие задачи, как установка обновлений безопасности, настройка параметров безопасности и реализация контроля доступа.

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

В этом примере задача защиты сервера на базе Linux включает ряд подходов и решений, типичных для безопасности Linux. Применяя эти меры, можно обеспечить безопасность сервера и его защиту от несанкционированного доступа и угроз.

Автоматизация и оркестрация системы

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

Вот пример задачи, которая может быть связана с автоматизацией и оркестровкой системы Linux, а также возможное решение:

Задача: Автоматизировать развертывание и настройку многоуровневого веб-приложения в инфраструктуре на базе Linux.

Решение:

Используйте управление конфигурацией: для автоматизации развертывания и настройки веб-приложения рекомендуется использовать инструмент управления конфигурацией, такой как Ansible, Chef или Puppet. Эти инструменты позволяют создавать сценарии конфигурации, которые можно использовать для автоматизации установки и настройки пакетов программного обеспечения, создания системных ресурсов и управления ими, а также для обеспечения соблюдения стандартов конфигурации.

Используйте контейнеризацию: для дальнейшей автоматизации развертывания и настройки веб-приложения рекомендуется использовать технологию контейнеризации, такую как Docker. Контейнеры позволяют упаковывать приложения и их зависимости в легкие и портативные блоки, которые можно легко развернуть и масштабировать в любой инфраструктуре.

Используйте платформу непрерывной интеграции и доставки (CI/CD): для автоматизации процессов сборки, тестирования и развертывания веб-приложения рекомендуется использовать платформу CI/CD, такую как Jenkins или GitLab. Эти платформы позволяют создавать автоматизированные конвейеры, которые можно использовать для сборки, тестирования и развертывания веб-приложений согласованным и воспроизводимым образом.

Используйте облачного провайдера: для автоматизации управления и масштабирования инфраструктуры рекомендуется использовать облачного провайдера, такого как AWS или Azure. Эти платформы предоставляют ряд инструментов и услуг для автоматизации развертывания инфраструктуры и управления ею, включая поддержку оркестрации контейнеров и CI/CD.

Наставничество и лидерство

Будучи старшим администратором Linux, вы можете нести ответственность за руководство группой младших администраторов или наставничество менее опытных коллег. Это может включать такие задачи, как предоставление технического руководства и поддержки, разработка учебных материалов и программ, а также помощь в создании технических возможностей команды.

Конечно лидерство является софтскиллом и границы ответственности тут более размыты, но удалось сформировать более менее конкретные зоны ответственности.
В качестве старшего администратора Linux у вас есть возможность наставлять и направлять свою команду, а также помогать им расти и развивать свои навыки. Вот несколько советов, как стать лидером в своей роли:

  • Установите четкие цели и ожидания: важно установить четкие цели и ожидания для вашей команды, чтобы все знали, чего от них ожидают и как они могут способствовать успеху команды.

  • Общайтесь эффективно: хорошее общение является ключом к тому, чтобы быть эффективным лидером. Обязательно информируйте свою команду о важных обновлениях, изменениях и решениях и поощряйте открытое и честное общение.

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

  • Поощряйте сотрудничество: поощряйте вашу команду к совместной работе и обмену идеями и знаниями. Это может помочь укрепить доверие, способствовать творчеству и улучшить сплоченность команды.

  • Обеспечьте поддержку и руководство: как лидеру важно оказывать поддержку и руководство вашей команде. Это может включать ответы на вопросы, предоставление отзывов и помощь членам команды в преодолении трудностей.

Таким образом, синьор администратор Linux включает в себя широкий спектр сложных задач и обязанностей, которые требуют глубокого понимания операционной системы Linux и ряда специальных навыков. Это ответственная и сложная роль, требующая сильных технических знаний и лидерских качеств.

В заключение приглашаю всех на бесплатный урок, посвященный базовым командам в Linux. Урок подойдет тем, кто практически не знаком с Linux. Вы узнаете, почему важно знать как работать в командной строке. Познакомитесь с bash, научитесь базовым командам для работы с файлами в Linux.

Комментарии (15)


  1. EvilMan
    10.01.2023 18:52
    +18

    Очередной буллшит.


    1. crawlingroof
      10.01.2023 19:27
      +13

      "Таким образом, синьор администратор Linux включает в себя широкий спектр сложных задач и обязанностей, которые требуют глубокого понимания операционной системы Linux и ряда специальных навыков "

      треш угар и содомия в больном мозгу ТС ничего общего не имеющего

      с заголовком


    1. RuslanHamhoev
      11.01.2023 02:14
      +1

      Похоже ChatGPT всё-таки работает. RIP Хабр. Скоро каждая вторая статья будет в таком стиле. Ну и линк с рефералом в тексте конечно же, как без этого.


  1. MrAlone
    10.01.2023 19:35
    +12

    Active Directory + Azure есть, сеть есть, CI/CD тоже есть. Осталось добавить Oracle, чистку вентиляторов в ноутах, и замену тонера в принтере чтоб получить сферического линуксового админа в вакууме.


    1. Tzimie
      10.01.2023 23:19
      +1

      Unix админ должен быть в свитере и с бородой. Тема бороды не раскрыта


      1. GospodinKolhoznik
        11.01.2023 01:08
        +1

        Синьору можно и небольшую бородку эспаньолку и закрученные усики. А если укладистая борода лопатой, то это уже не синьор, а настоящий боярин-админ!


      1. Bronn
        11.01.2023 12:45

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


  1. sena
    10.01.2023 20:15
    +7

    выбор версии с долгосрочной поддержкой (LTS) популярного дистрибутива Linux, такого как Ubuntu или CentOS

    У CentOS нет LTS


  1. Johan_Palych
    10.01.2023 21:03

    High availability, continuous operations and continuous availability просто зашкаливают.

    Аппаратное обеспечение: файловому серверу потребуется достаточная емкость для хранения файлов организации, а также достаточная вычислительная мощность и память для поддержки рабочей нагрузки. Возможным решением может быть выбор сервера среднего уровня с жестким диском большой емкости, четырехъядерным процессором и 8 ГБ памяти.

    Ну сколько можно:
    CentOS Project shifts focus to CentOS Stream (Tuesday, 8, December 2020 Rich Bowen)
    CentOS 7 End of life - June 30, 2024
    CentOS 8 End of life - December 31, 2021

    Ubuntu Pro с Hotpatching:Сanonical-livepatch под вопросом

    Шутка юмора:
    Cиньорам бесплатные подачки не нужны!!!


  1. vindy123
    10.01.2023 21:13
    +5

    Эх, если бы я умел эти свои рутинные эникейщицкие дела заворачивать в такой нарядный буллшит с блёстками, да если бы в реальном мире кто-то вёлся на это, тоже бы стал "ведущим экспертом цифровых навыков"... Но, кажется, народ не хавает.


  1. AVX
    10.01.2023 21:33
    +1

    Эй профессионалы, а что же в статье ни слова про бэкапы? Вот прямо поиском "бэкап" или "backup" ну ничего не нашлось.

    А то ведь после этого:

    Чтобы защитить саму операционную систему, важно убедиться, что в ней
    установлены последние исправления и обновления безопасности. Это можно
    сделать с помощью таких инструментов, как apt-get (в системах на базе
    Debian) или yum (в системах на базе Red Hat).

    система может стать супер-защищённой, что ей никто не сможет воспользоваться, включая самого админа.


  1. Thomas_Hanniball
    10.01.2023 22:31
    -1

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


  1. dcc0
    11.01.2023 06:40

    Такая ощущение, что вся область - одна большая клиника.


  1. splinters
    11.01.2023 10:12

    Сомневаюсь, что те, кто умеют в тонкие настройки параметров ядра, будут сильно интересоваться всякими ансиблами-чифами-куберами. Ну, интересоваться конечно будут, но не факт, что будут также подробно их знать, как и тонкие настройки ядра.


  1. vldmrmlkv
    11.01.2023 10:12

    Не хватает пункта об администрировании субд, но и этого будет недостаточно если вы знаете PostgreSQL, а им нужен гуру MySQL или вам нравится gitlab ci, а им нужен мастер jenkins и вот вы уже для них мидл. А ещё знаю случаи, когда из за сертификации RHCSA с человека спрашивали больше и предъявляли за это, потому, что "обязан знать ведь есть сертификат". Ещё про программирование не сказано, ansible это другое. А что если проект на java, а вы знаете только bash и python? Ууу, всё, не знаете, какой-же вы сеньор. До свидания, мы вам перезвоним.