- Выбираем язык для системного администрирования
- PowerShell
- Python
- Visual Basic
- Языки веба
- PowerShell
- Python
- Visual Basic
- Языки веба
- 💻 Почему системным администраторам Linux нужны навыки программирования
- Нужен ли системному администратору Linux навыки программирования?
- Заключение
- От linux-админа к python-программисту или как и почему я менял профессию
Выбираем язык для системного администрирования
Наша область интереса — программирование, упрощающее реализацию вышеперечисленных операций в масштабах крупных компаний, когда просто физически невозможно рассматривать каждую машину в отдельности. И вот языки, которые в этом помогут.
PowerShell
За последний месяц мы уже дважды рассмотрели, как скриптовые языки операционных систем могут стать добрым другом сисадминщика. PowerShell — продукт экосистемы Windows, он понятен, удобен и весьма функционален. Из минусов можно выделить сравнительно невысокое быстродействие, особенно по сравнению со следующим языком. Но так как Windows всё еще доминирующая ОС на стационарных компьютерах, то знание PowerShell — номер один в списке абстрактных must-have языков для системного администратора.
Линуксовый старший брат Powershell, обладающий куда большей производительностью и опытом, но чуть меньшим удобством, во всяком случае, для новичка. Потребуется тем, кто собирается идти работать в науку и в организации, которые умеют считать деньги. Собственно туда, где линуксовые системы всегд были в почёте.
Python
С Python вы можете делать что угодно, а уж помощь в системном деле — одна из основных зон ответственности. При использовании нужных модулей вы без труда обойдете ограничения скриптовых языков, не затратив на это много времени и усилий. Python вообще может стать вашим основным кроссплатформенным инструментом, ведь он будет удобен и для текущих задач, и для вашего карьерного роста. Ведь за вас удобный и относительно простой язык, мощная экосистема и новые интересные творческие задачи. Начать изучение можно с бесплатного интенсива «Основы языка Python».
Perl — язык, разработанный специально для тесного взаимодействия с текстом, впитавший всё лучшее от Unix Shell, Awk и С. Это означает, что по определению он превосходит в своих возможностях и удобстве скриптовые языки, а функциональный перечень необычайно широк. При всём этом стоит сделать одну небольшую оговорку: большинство административных решений на Perl, описанных в соответствующей литературе, сегодня с куда большей эффективностью реализуется на других языках, в том числе Python или Ruby. Поэтому хоть Perl формально и популярен, но уже понемногу уходит в прошлое.
Трудно представить ситуацию, в которой системному администратору бы не потребовалось использовать базы данных. Это и управление сервером, и администрирование учётных записей, и формирование отчётов. А если так, то без знания SQL хотя бы на уровне запросов и элементарной работы с данными не обойтись.
Visual Basic
Несмотря на достаточно спорное наследие, VB сегодня является прекрасным инструментом в среде Windows. В частности, упрощённая реализация VBA позволит вам писать полезные скрипты для MS Office, AutoCAD, SolidWorks, а также компонентов ActiveX.
Языки веба
Вообще в IT трудно представить какую-то область, где бы знание HTML, CSS и JavaScript вам не пригодилось. В качестве вариантов интереса для системщиков — сетевые экраны, системы регистрации и учёта пользователей, управление сетями предприятия и многое другое.
В новой серии выбора языков для различных IT-специальностей мы поговорим об обязанностях системного администратора. С одной стороны, это может быть достаточно неприхотливая работа, где от вас потребуются лишь базовые знания компьютерной грамотности: установка необходимого ПО, контроль за выполнением чужих рабочих обязанностей, организация нормальной работы небольшого числа офисных сотрудников. Но это не то, что представляет для нас существенный интерес.
Наша область интереса — программирование, упрощающее реализацию вышеперечисленных операций в масштабах крупных компаний, когда просто физически невозможно рассматривать каждую машину в отдельности. И вот языки, которые в этом помогут.
PowerShell
За последний месяц мы уже дважды рассмотрели, как скриптовые языки операционных систем могут стать добрым другом сисадминщика. PowerShell — продукт экосистемы Windows, он понятен, удобен и весьма функционален. Из минусов можно выделить сравнительно невысокое быстродействие, особенно по сравнению со следующим языком. Но так как Windows всё еще доминирующая ОС на стационарных компьютерах, то знание PowerShell — номер один в списке абстрактных must-have языков для системного администратора.
Линуксовый старший брат Powershell, обладающий куда большей производительностью и опытом, но чуть меньшим удобством, во всяком случае, для новичка. Потребуется тем, кто собирается идти работать в науку и в организации, которые умеют считать деньги. Собственно туда, где линуксовые системы всегд были в почёте.
Python
С Python вы можете делать что угодно, а уж помощь в системном деле — одна из основных зон ответственности. При использовании нужных модулей вы без труда обойдете ограничения скриптовых языков, не затратив на это много времени и усилий. Python вообще может стать вашим основным кроссплатформенным инструментом, ведь он будет удобен и для текущих задач, и для вашего карьерного роста. Ведь за вас удобный и относительно простой язык, мощная экосистема и новые интересные творческие задачи. Начать изучение можно с бесплатного интенсива «Основы языка Python».
Perl — язык, разработанный специально для тесного взаимодействия с текстом, впитавший всё лучшее от Unix Shell, Awk и С. Это означает, что по определению он превосходит в своих возможностях и удобстве скриптовые языки, а функциональный перечень необычайно широк. При всём этом стоит сделать одну небольшую оговорку: большинство административных решений на Perl, описанных в соответствующей литературе, сегодня с куда большей эффективностью реализуется на других языках, в том числе Python или Ruby. Поэтому хоть Perl формально и популярен, но уже понемногу уходит в прошлое.
Трудно представить ситуацию, в которой системному администратору бы не потребовалось использовать базы данных. Это и управление сервером, и администрирование учётных записей, и формирование отчётов. А если так, то без знания SQL хотя бы на уровне запросов и элементарной работы с данными не обойтись.
Visual Basic
Несмотря на достаточно спорное наследие, VB сегодня является прекрасным инструментом в среде Windows. В частности, упрощённая реализация VBA позволит вам писать полезные скрипты для MS Office, AutoCAD, SolidWorks, а также компонентов ActiveX.
Языки веба
Вообще в IT трудно представить какую-то область, где бы знание HTML, CSS и JavaScript вам не пригодилось. В качестве вариантов интереса для системщиков — сетевые экраны, системы регистрации и учёта пользователей, управление сетями предприятия и многое другое.
Источник
💻 Почему системным администраторам Linux нужны навыки программирования
Проще говоря, системное администрирование относится к управлению аппаратными и программными системами.
Некоторые из основных задач, выполняемых системным администратором, включают добавление и удаление оборудования, установку операционных систем, создание, управление и удаление пользователей и групп, установку, обновление и удаление программного обеспечения, выполнение резервного копирования и мониторинг системы.
Системный администратор также несет ответственность за устранение неполадок, документирование и, что важно, безопасность системы.
С другой стороны, программирование связано с написанием скриптов, программ для разработки пользовательских приложений или программного обеспечения.
Нужен ли системному администратору Linux навыки программирования?
В этой статье мы подробно остановимся на ответе на этот вопрос.
Мы объясним, почему изучение программных концепций важно для системного администрирования Linux.
Эта статья специально подготовлена для пользователей Linux, стремящихся стать профессиональными системными администраторами (отныне обращаясь к системным администраторам).
Исходя из личного опыта, с тех пор, как я начал изучать и использовать операционные системы Linux (перейдя из среды Windows), я всегда считал, что Linux дает вам больший контроль над компьютерной системой по сравнению с другими операционными системами.
А во-вторых, это наиболее подходящая среда для изучения компьютерного программирования (к сожалению, мы не будем объяснять некоторые причины этого).
Технически говоря, основная цель программирования состоит в том, чтобы создавать решения реальных проблем.
С этой точки зрения, мы должны понимать, что знание основ программирования может помочь системным администраторам найти надежные и эффективные решения административных задач.
Профессиональные системные администраторы посвящают много времени написанию скриптов, это один из краеугольных камней администрирования, в первую очередь для автоматизации рутинных административных задач.
И большинство, если не все, задания Linux требуют владения хотя бы одним языком скриптов, если не двумя, а скрипты – это в основном программирование.
Существует несколько языков скриптов для Linux, но наиболее популярными являются Bash, Perl и Python (хотя многие системные администраторы предпочитают Python вместо Perl).
Все они предустановлены в операционных системах Linux.
Другим вариантом является Ruby, который обычно не используется в качестве их аналогов.
Одной из удивительно важных программ в Linux является оболочка (например, bash).
Это гораздо больше, чем командный интерпретатор, оболочка является мощным языком программирования, дополненным базовыми конструкциями программирования, такими как условные операторы, циклы и функции.
С его помощью вы можете создавать новые утилиты / инструменты различной сложности, от простых скриптов с несколькими строками команд для извлечения определенной информации из системы, выполнения резервного копирования, обновления программного обеспечения / системы до крупномасштабных проектов для управления конфигурациями системы, службами, данных для всего сайта; аудит безопасности и сканирование и многое другое.
Таким образом, системные администраторы освобождаются от административных обязанностей и успевают выполнять более важные задачи.
Таким образом, скрипты оболочки являются фундаментальной частью среды программирования Linux.
Иногда для выполнения задач по отладке могут также потребоваться системные администраторы, что, следовательно, требует знания концепций компьютерного программирования.
Кроме того, программирование улучшает общие навыки решения проблем и аналитические навыки.
Это может быть существенно применено при устранении неполадок в Linux и за его пределами.
Это создает эффективные навыки диагностики и выявления проблем, которые являются обязательными в современных ИТ-средах.
Заключение
Системные администраторы Linux нуждаются в каких-то знаниях по программированию, в основном для автоматизации административных дел с помощью скриптов.
Возможно, вы не являетесь опытным программистом или разработчиком, но если у вас есть навыки по крайней мере на двух языках скриптов, упомянутых выше, это круто.
В связи с быстрым прогрессом в области компьютерных наук и информационных технологий также предполагается, что системные администраторы без навыков программирования, необходимых для работы в современных ИТ-средах или в облаке, скорее всего, останутся безработными через несколько лет (но верно ли это или нет, на самом деле спорно).
Мы хотели бы услышать от вас ваше мнение, особенно опытных системных администраторов, поделитесь своими мыслями с теми, кто стремится стать таким, как вы.
Источник
От linux-админа к python-программисту или как и почему я менял профессию
За свои почти тридцать лет я дослужился до старшего системного администратора. В моем распоряжении было около сорока серверов с linux на борту. Компания росла и расширялась, но задачи сводились к наращиванию мощи уже готового функционала.
И все бы хорошо, но со временем и по определенным причинам дискомфорт начал преобладать над комфортом.
Во-первых, сам процесс поддержки, а точнее его «постоянная» природа или отсутствие какой-либо завершенности. Мелкие задачи, выполняясь, накладываются друг на друга до бесконечности и превращаются в огромный ком, который постоянно меняет свои размеры, — соотношение выполненных и невыполненных задач. Что в итоге порождает вопросы: «Что полезного я уже сделал, Что еще сделаю и к Чему в итоге я двигаюсь?»
В-вторых, прерывания. В деле системного администрирования они особо выделяются из всех проблем и могут вывести из душевного равновесия любого. Когда пишешь код, оптимизируешь сервис и каждые полчаса тебя отвлекают вопросами, срочными задачами и вызовами — вернуться в работу порой очень тяжело и на это тратится время, — минут пятнадцать можно просидеть, вспоминая, откуда тебя выдернули и что вообще ты делал (В книге «Тайм-менеджмент для системных администраторов» Томаса А. Лимончелли об этом хорошо написано). В итоге прерывания формируют утверждение «Мне не дают работать».
В-третьих, привычка к рабочему процессу. Как известно, человек ко всему привыкает и то, что изначально вызывало восхищение и приносило в итоге общее удовлетворение, — становится обыденным и скучным. Когда все крутится и работает идеально, об этом знаешь только ты и максимум руководитель отдела, пользователи же принимают это за данность и не испытывают никаких поводов для гордости. Зато они замечают любую мелкую оплошность, от чего страдает как карма всего отдела, так и внутреннее состояние администратора, — против воли себя убеждаешь — «Я плохой сотрудник».
Все это касается обслуживания в целом и такова его стезя. А я в ней, потихоньку, но разуверился.
Чего же я хотел? Бо́льшего погружения в более творческую работу, уменьшения влияния со стороны по мелочам, видеть конечный результат и получать от этого удовлетворение. И все. Уставшим и отчужденным смотря на наш отдел программистов, читая хабр или смотря gif-ки на developerslife, я понял, что если я не могу получить этого на поприще админства, пора менять профессию, а так как писать код мне нравилось все больше и больше, выбор не заставил себя долго ждать.
Выбор языка для меня всегда был сплошным расстройством. На работе я писал на bash, так как писать на чем-то было нужно, да и его возможностей для системного администрирования хватает с головой. Perl — не нравился по синтаксису. Очень долго пытался приучить себя к ansi C, проработал две книги, — Unix разработка сетевых приложений (Уильям Ричард Стивенс) и Программирование для UNIX Наиболее полное руководство (Марк Дж. Рочкинд). Но так и не нашел применения приобретенным знаниям, до сих пор жалею потраченного времени. По требованиям хотелось, что бы он шел в ногу с linux, был универсальным, умел и sys (для текущих скриптов), и web (с заделом на будущее) и не вырвиглазным по синтаксису. Вокруг Python ходил очень долго, — тормозила его относительная молодость, невысокая популярность, и, не знаю почему, его название. Со временем, наблюдая за компаниями-гигантами, которые все больше используют python на production, и к моменту, когда я решил менять профессию, с языком я уже определился, хотя и выбирать было особо не из чего.
Первые полгода читал Марка Лутца, что-то пробовал писать, но знания были обрывочными и применять их на боевых серверах боялся, да и не видел выгоды в замене bash на python. Время тянулось, а моя затея нравилась мне все меньше и меньше. В итоге, убедил себя, что если не получается у меня, получится у других, — нужны курсы, в короткие сроки, с проработкой практики и чтобы была ответственность за оплаченные деньги. Так будет проще и быстрее.
Я нашел месячные курсы Python в местном институте и уговорил руководство на их необходимость, хотя к моменту оплаты, я уже был готов их сам оплатить. За месяц обучения все встало на свои места. Все накопленное до этого и вычитанное в интернете разложилось по-полочкам и стало понятным и прозрачным. Ни одна книга не заменит живого преподавания, где любая неточность или недосказанность, может быть разъяснена на месте.
Далее как по-накатанной, в течении полугода, постепенно и в свободное от работы время, переписал все скрипты и всю автоматизацию на python, написал сервер статистики для squid (python, wsgi). Уже за свои кровные, прошел курсы через вебинар по ООП и django, так как аргументировать их необходимость текущему работодателю решил даже не пытаться. Переписал все с учетом новых знаний. Далее, ради расширения кругозора, прошел еще курсы по тестированию, но оно мне не понравилось, — оставил как запасной вариант.
Следующие полгода, помимо прямых обязанностей, были потрачены на поддержку и оптимизацию написанного мной кода и на поиск работы. Рассматривал только full-time, — админить уже не мог, мечтая о новой работе и новых возможностях.
За это время прошел около десятка собеседований на позицию junior. Всего около десятка. Но везде требовался или django+frontend, либо с опытом от двух лет. Опыт на production’е отсутствует, а фронтендом заниматься у меня не было и нет до сих пор никакого желания. Что еще странно, вопросов именно по языку было не много, зато было много по теории, — ООП, паттерны, методологии scrum, agile — которых я естественно не знал. Продолжая биться головой о двери конференц-залов и выслушивая стандартную фразу «Мы вам перезвоним», я продолжал ходить по приглашениям. И в конечном итоге меня взяли backend разработчиком в закрытый проект.
На текущем месте работы я работаю уже несколько месяцев и могу подвести итоги.
В общем было потрачено полтора года. Для кого-то это много, но со всеми курсами, ночными домашними заданиями, чтением, написанием и переписыванием кода, а так же с текущими задачами в растущей компании, для меня это время пролетело незаметно.
То к чему я стремился, я конечно получил, хотя и радовался этому не долго, — чувство «У меня получилось, я стал программистом» прогорело очень быстро, примерно за неделю, и на смену ему пришли:
Трудовые будни с дикой нагрузкой. С институтских времен я так не напрягал свой мозг. Как следствие, плохой сон, размышления о коде в свободное время, когда, например, нужно отдыхать с семьей, да и общее плохое самочувствие, хотя сейчас уже вроде втянулся. То, что прошло уже столько времени, я осознал уже при написании этой статьи. Время сильно ускорилось и теперь я побаиваюсь, как бы вся жизнь так же быстро не пролетела перед глазами. Возможно пора учится отдыхать.
Борьба с прокрастинацией. У хороших системных администраторов свободного времени намного больше, чем они говорят. Благодаря чему копится много подписок, каналов на ютубе, профильные сайты, шутки-прибаутки, много знакомых в сети и интересов. Лично у меня могло до трех часов в день уходить на чтение и просмотр всего этого. От чего мне на текущей должности, за неимением времени, пришлось практически отказаться. Изначально просто читал бегло, потом читал просто заголовки, а потом и полностью отписывался. Научился не отвечать на мгновенные сообщения мессенджера за рабочим местом, дабы не отвлекаться и не терять мысли. Сейчас остался подписан на десяток только профильных сайтов.
Изначально эти сложности пытался привязать к своему возрасту и на одном из собеседований мне так и сказали, что компании не выгодно вкладывать в меня деньги и что поздновато я решил менять профессию. Но сейчас могу сказать, что дело вовсе не в этом.
Дело в самой профессии системного администратора. Работа, конечный итог которой стремится к абсолютной ле́ни, сильно расслабляет жизненные позиции и стремления, а общение с пользователями и выслушивание их недовольств, еще больше укрепляет асоциальные начала. И тут уже, кто как я, начинает задумываться о бо́льшей полезности, что приводит к поискам более гармоничной жизни, а кого все устраивает и он продолжает это нелегкое существование.
Заметил, что в последнее время очень много знакомых админов начинает готовится к перепрофилированию или уже поменяли профессию. А развитие облачных технологий и расширение влияния аутсорсинговых компаний, только усиливают эту тенденцию.
Системное администрирование потихоньку теряет свою актуальность и в недалеком будущем, вероятно, эта профессия изменится, станет горячим стартом и, возможно, стажировкой для все более новых программистов и других всенаправленных it-специалистов. Но не более.
Источник