Зачем использовать Linux, если есть Windows и macOS? — интервью с DevOps Engineer
По данным Statista , Linux — третья по популярности десктопная операционная система (после Windowsи macOS). При этом 47% профессиональных разработчиков используют ОС на базе Linux и 500 самых быстрых суперкомпьютеров мира тоже работают на Linux.
Если домашний пользователь выбирает Windows или MacOS, то в мире серверов IT-специалисты все же предпочитают Linux.
Интересно узнать, почему? Читай интервью с Виталием Провалинским , тренером курса «Администрирование Linux» и DevOps Engineer в компании Kaseya.
— Зачем кому-то использовать Linux, если есть Windows и macOS?
— Linux в качестве настольной компьютерной системы используют только энтузиасты, а вот в мире серверных вычислений Linux лидирует. Он гораздо удобнее в первую очередь из-за отсутствия лицензионных отчислений. В большинстве случаев вы можете использовать ОС бесплатно, в то время как для Windows вам нужны лицензии, которые дороже десктопных. C macOS не значительно проще, так как у вас есть требование использовать железо от компании Apple.
Что касается мобильной электроники, так получилось, что компания Google смогла создать экосистему смартфона, операционная система которого основана на ядре Linux и дешевле аналогичной системы от Apple. Попытки других компаний создать массовый смартфон не были так успешны: достаточно вспомнить самсунговскую платформу Bada, тот же Windows Phone и других.
— Сейчас активно обсуждают возможную замену Windows на Linux, насколько это реально?
— Все зависит от конечных задач. Для технически ориентированных компаний возможна частичная замена. Здесь дело не в операционной системе, а в программном обеспечении, которое написано для работы, и в системных требованиях этого программного обеспечения (для какой платформы они написаны). Сейчас больше рабочего софта под Windows, и согласны ли компании инвестировать в переписывание ПО под Linux — это большой вопрос. Иногда такие программы можно запустить и на Linux, но это эмуляция и там не всегда все правильно работает. Следовательно, в такой переход нужно инвестировать большое количество часов и человеческих ресурсов.
Обычному пользователю современный Linux подойдет для простых действий: посмотреть видео, послушать музыку или создать какой-нибудь документ (но есть некоторые проблемы с совместимостью форматов). Но если вы выходите за рамки простейших задач, то с Linuxработать сложнее. Хотя компании, такие как Canonical, приложили достаточно усилий, чтобы упростить многие вещи, Windows все еще привычнее и понятнее большинству пользователей.
— Давайте сравним операционные системы Linux и Windows. В чем их отличия?
— Первое отличие в организации файловой системы. Это то, что пользователь поймет в первые минуты знакомства с Linux. Далее, графический интерфейс Windowsунифицирован от производителя. Вы можете приобрести дополнительные платные компоненты для изменения рабочего стола от сторонних компаний и переделать интерфейс на своей вкус, но это довольно редкое явление. В Linux много разных окружений стола доступно уже в процессе инсталляции ОС, на старте можно потеряться: что выбрать и как с ними работать. Также отличается функционирование: обычная работа пользователя в разных окружениях немного разнится.
Что касается серверных систем, на Linuxсерверах графический интерфейс — это скорее исключение, чем правило. Работа здесь происходит в командной строке, и этого вполне достаточно. Windows пришел к такой концепции не сразу: терминальные серверы стали доступны только с последних версий, когда PowerShell стал вполне «взрослым». Но все равно большое количество сервисных систем имеют классический интерфейс рабочего стола.
— Можно ли любую программу с Windows или macOS перенести на Linux?
— Существуют проекты-эмуляторы операционной системы Windows, которые можно запустить на Linux, пусть и с некоторыми потерями в производительности. Это тот способ, который не требует дополнительных усилий, потому что эмулятор все сделает за вас.
Если говорить про написание программы заново, то это значительно проще сделать с программами под macOS, который тоже является Unix системой («дальний родственник Linux»). Но стоит отметить, что все зависит от сложности программы, её объема и использования каких-то дополнительных компонентов-зависимостей.
— Почему Windows и macOS везде одинаковые, а у Linux есть много разных версий? И какую из них лучше выбрать?
— Linux бывает разным, потому что развивается по другой модели: нет какой-то одной компании, которая владеет всеми продуктами на Linux. Ядро, то есть основная часть операционной системы, находится в свободном доступе. Разные группы энтузиастов организовывают на основе ядра Linux какой-то свой проект, который называется дистрибутивом. Некоторые проекты в итоге поддерживаются коммерческими компаниями, такими как Red Hat или Canonical, а какие-то принадлежат свободному сообществу разработчиков, которые занимаются продуктом бесплатно, ради интереса и желания сделать что-то хорошее. Иногда такие проекты, несмотря на отсутствие коммерческой поддержи, могут оказаться очень стабильными (пример: Debian).
Какой дистрибутив Linux лучше? Если говорить о серверных системах, то это вопрос с подвохом, потому что необходимо понимать, какие у вас задачи и требования. Разные дистрибутивы Linux могут быть нацелены на разные задачи. К тому же у вас могут быть дополнительные требования: например, нельзя пользоваться поддержкой иностранных компаний, что может быть актуально в сегодняшних реалиях. В этом случае лучше выбирать дистрибутив, который поддерживается свободным сообществом. Если же нам нужно развернуть систему на Linux, но не хватает ресурсов для самостоятельной поддержки, тогда нужна квалифицированная помощь со стороны и лучше выбирать версию, которая поддерживается коммерческой компанией. Поэтому однозначного ответа здесь не будет.
— Какие дистрибутивы изучаются на курсе «Администрирование Linux» и будет ли сложно перейти после курса на другие?
— Изначально мы рассматривали только самый популярный дистрибутив Ubuntu Server. Он используется во многих стартапах, так как динамично развивается, но при этом стабилен и имеет хорошую коммерческую поддержку. На данный момент мы немного расширили наш кругозор и рассматриваем и другие популярные дистрибутивы, такие как Debian Linux, CentOS и его «наследников». Если слушателю в процессе прохождения курса захочется попробовать какой-то свой дистрибутив, это не запрещено. И, поскольку это все же одна и та же операционная система, переход на другие версии почти безболезненный. Конечно же, будут отличия, к которым придется привыкнуть, но основные принципы работы одинаковы в любом дистрибутиве.
— Как вы пришли в DevOps?
— Я пришел в DevOps из классического администрирования и техподдержки интернет хостинга. Это не произошло одномоментно. Я долго присматривался к этой области. Можно даже сказать, что в хостинг я попал на пути перехода в DevOps, пока находился в телекоммуникациях. Сразу и быстро перейти не вышло, так как нужно было получить некоторый смежный опыт.
— Всегда ли DevOps-инженер начинает с администрирования? И насколько для такого специалиста важно понимание Linux?
— DevOps — это относительно большой карьерный рост из классического системного администрирования. В начале этого пути я даже не понимал, насколько он внушительный, потому что DevOps включает в себя практически все аспекты системного администрирования. Можно сказать, что это логичное развитие карьеры системного администратора, но не единственно возможное. Можно остаться и развиваться в администрировании: там тоже есть много вещей, которыми можно и нужно заниматься. Также в DevOps можно прийти и из других направлений: чаще всего из программирования, ориентированного на бэкенд, или же автоматизированного тестирования (DevOps-практики включают в себя работу с внедрением тестов). Но таким специалистам нужно самостоятельно изучить все то, чем занимается системный администратор.
— Насколько разнятся обязанности DevOps-специалиста и системного администратора?
— Все зависит от проекта, на котором вы работаете. Если проект небольшой, DevOps-инженер может выполнять все задачи, которые выполнял бы системный администратор. В более крупных компаниях с активным делением по ролям у DevOps-специалиста будут какие-то обязанности системного администратора, но не все. Например, добавление пользователей в систему и другие простые задачи останутся на системном администрировании, а DevOps-инженер будет больше сконцентрирован на доставке конечного продукта пользователям. То есть его главная задача — убедиться в том, что написанное программистами доставлено без ошибок, быстро и качественно.
— Все зависит от конечных целей, но могу точно сказать, что данный курс будет полезен, если:
— вы планируете администрировать сервера на Linux;
— вам придется работать с IT-сферой (базовые знания Linux точно не повредят как в телекоммуникационных системах и в классической разработке, так и в техподдержке любых систем из IT-сектора. Даже если вы сейчас не работаете с Linux, знания того, как он функционирует, помогут лучше понять какие-то аспекты вашей текущей работы);
— вы хотите в своей работе перейти на Linux (в данном случае курс будет полезен, но необязателен, поскольку на современных Linux десктопах можно спокойно работать и без знаний командной строки, но это будет не очень комфортно).
— Делитесь ли на курсе инсайдами из DevOps?
— Основываясь на своем опыте работы в DevOps, я показываю и те части администрирования, которые могут быть полезны в дальнейшем развитии на пути к DevOps-инженеру. В классическом администрировании данные аспекты могут быть не особоважны, но я их стараюсь также подчеркивать для дальнейшего развития своих студентов. Также я всячески стимулирую групповую работу, потому что, если вы собираетесь идти в DevOps, без умения взаимодействовать с другими людьми ничего не выйдет. Если существует стереотип о классическом сисадмине в свитере и с бородой, который сидит где-то там в серверной [комнате] и его никто не видит, то в DevOps это так не работает: только в командной работе и постоянном общении можно достичь наилучших результатов.Соответственно, на эти моменты я обращаю пристальное внимание.
— Заключительный важный вопрос: зачем знать Linux, если сейчас все в облачных сервисах и serverless технологиях, а AI иногда не отличить от человека?
— Даже если вы начали работу с облачными системами и serverless технологиями, все равно когда-нибудь настанет точка, когда вам придется залезть «под капот» системы и посмотреть, что там происходит. Ведь рано или поздно что-то может пойти не так и перестать работать. В этом случае понимание того, как функционирует Linux, вам оченьпоможет, поскольку большая часть облачных технологий работает на открытом исходном коде, то есть на системах, которые «под капотом» работают на Linux. Поэтому полезно хотя бы примерно понимать, как данная операционная система работает.
Научись работать с Linux и начни карьеру в системном администрировании или DevOps на курсе « Администрирование Linux ».