Q
Слишком короткий поисковый запрос.
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Что это и зачем?
Сегодня сложно представить мир без компьютерных сетей. Технический прогресс позволяет пользователю всего за несколько минут совершить покупки в интернет-магазине с доставкой, заказать такси, забронировать билет на самолет и отель, приобрести билеты в театр и многое другое. Всё это стало возможным благодаря широкому применению компьютерных сетей, их взаимодействию и интегрированию в общую глобальную сеть.
Мало кто задумывается, как всё это работает. Средний пользователь, который является конечным потребителем услуг, взаимодействует с сетью через интерфейс пользователя, и просто делает в сети то, что ему нужно. Между тем десятки и сотни тысяч системных инженеров ежеминутно поддерживают инфраструктуру сети на плаву, чтобы всё функционировало без поломок и сбоев. В этом им помогают различные автоматизированные программные решения, которые позволяют одному администратору поддерживать работу сети из сотен устройств. Сегодня мы разбираем одно из таких приложений, призванных сэкономить время системного инженера решение Chef от одноименной группы разработчиков.
Непосредственно о Chef
Chef это система управления конфигурацией сети. По функциональному назначению она схожа с Puppet или Ansible, однако имеет от них ряд отличий, благодаря которому и пользуется популярностью у некоторых системных инженеров. Разберем, что же в этом решении такого.
Сама программа реализована на Ruby, поэтому пользователь должен обладать хотя бы базовыми знаниями по этому языку программирования, а на центральном сервере должно быть установлена соответствующая программная среда. Базовыми понятиями, которые используются в этой программе являются:
Ноды (Nodes): Эта любая серверная единица, физическая или виртуальная, которая будет входить в систему обслуживания Chef.
Шеф-сервер (Chef-server): Центральный сервер, на котором будет установлена основная управляющая часть программы.
Рецепт (Receipt): Собственно, сам файл с конфигурацией, применяемой для настройки поведения сети на различных сетевых узлах.
Поваренная книга (Cookbook): Хранилище рецептов то есть всех файлов конфигурации сети.
Хранилище поваренных книг (Bookshelf): Директория-хранилище поваренных книг.
Рабочая станция администратора (Workstation): Физический ПК, на котором будет развернута система управления Chef.
Нож (Knife): Основной инструмент управления программой Chef и ее составляющими из консоли.
Помимо этого, программа содержит много компонентов таких как веб-сервер Nginx, сетевой интерфейс сервера Web-UI, хранилище данных PostgreSQL, и другие компоненты. Кроме того, каждая поваренная книга содержит, помимо рецептов, также атрибуты (параметры поведения сети, описанные через рецепты или роли), шаблоны (заготовки файлов конфигурации) и файлы (любые файлы, которые будут распространяться на ноды с помощью рецептов).
То есть, структура программы выглядит так: администратор разворачивает серверную часть программы на рабочей станции, то есть создаёт на ней шеф-сервер. Далее пишет рецепты для определения будущего поведения всех нод, объединяет их в поваренную книгу (вместе с нужными атрибутами, файлами программного обеспечения и шаблонами будущих параметров конфигурации), затем помещает книгу в хранилище. Причем, рецептов в поваренной книге может быть несколько на случай различных версий операционных систем и ПО на узлах сети, да и самих поваренных книг также может быть более одной для различных сценариев поведения сети. Ноды через клиентскую часть запрашивают актуальные рецепты у сервера, принимают команды и переконфигурируют параметры узла так, что он исполняет свое назначение в сети наиболее эффективно. Таким образом, система является достаточно гибкой для быстрой перенастройки сети под исполнение тех или иных задач что и является ее основным плюсом.
Таким образом, вы получаете ультимативную платформу для управления и автоматизации в вашей сети. Конечно, придется немного поучиться и набраться опыта, зато потом вы сможете экономить кучу вашего времени и избавиться от досадных ошибок.
Все пользователи Linux и системные администраторы должны знать, как безопасно выключить всю систему. Для этого есть несколько вариантов, включая планирование выключения в определенное время, немедленное выключение, рассылку уникального сообщения и так далее.
В этом руководстве вы узнаете, как использовать команду выключения Linux shutdown с примерами.
Синтаксис команды выключения
Прежде чем переходить к конкретным способам выключения вашей системы Linux, вы должны понять основной синтаксис команды выключения:
shutdown [options] [time] [message]
[options] - определяют, хотите ли вы остановить, выключить или перезагрузить машину.
[time] - указывает, когда вы хотите завершить выключение.
[message] - добавляет сообщение, объявляющее о завершении работы.
Как использовать команду выключения
Для использования команды shutdown в системах Linux требуется пользователь root или пользователь с привилегиями sudo.
Если вы используете команду без дополнительных аргументов, запуск sudo shutdown в окне терминала выполнит завершение работы за 60 секунд.
Выключение со всеми параметрами
Чтобы просмотреть все параметры при завершении работы системы Linux, используйте следующую команду:
sudo shutdown --help
На выводе отображается список параметров выключения, а также описание каждого из них.
Как выключить систему в определенное время
Чтобы запланировать завершение работы, добавьте аргумент [time] и укажите, когда вы хотите, чтобы оно произошло. Есть два способа выключить систему в определенное время - с использованием абсолютного или относительного формата времени.
Абсолютное время соответствует формату чч:мм (hh:mm) и позволяет запланировать выключение в указанное время. Команда следует синтаксису:
sudo shutdown hh:mm
Например, чтобы потребовать выключения в 7 утра, введите следующую команду:
sudo shutdown 07:00
В качестве альтернативы можно использовать относительный формат +m и запланировать завершение работы через определенное количество минут с момента запуска команды. В этом случае синтаксис команды:
sudo shutdown +m
Чтобы выключить систему через 20 минут, запустите:
sudo shutdown +20
Как немедленно выключить систему
Как упоминалось ранее, запуск команды shutdown без каких-либо аргументов заставляет систему выключиться через минуту после выполнения команды. Однако, если вам требуется немедленное выключение, используйте:
sudo shutdown now
Другой вариант - запланировать выключение, используя формат относительного времени со значением 0, как в приведенной ниже команде:
sudo shutdown +0
Как транслировать собственное сообщение
После того, как вы запланировали выключение системы, все пользователи в системе получат сообщение, уведомляющее их о выключении. Чтобы добавить настраиваемое сообщение в уведомление о завершении работы, чтобы информировать пользователей о том, что должно произойти.
Вы можете добавить [message], только если команда также включает атрибут [time]:
sudo shutdown [time] "[message]"
Например, чтобы выключить систему через 20 минут и передать сообщение об обновлении системы, запустите:
sudo shutdown +20 "System Upgrade"
Как отменить запланированное выключение
Чтобы отменить запланированное выключение, используйте команду:
sudo shutdown -c
Вы также можете добавить сообщение для уведомления пользователей об отмене завершения работы. Для этого добавьте параметр [message] (в кавычках) к приведенной выше команде. Например:
sudo shutdown -c "Canceling System Upgrade"
Разработка и тестирование (QA). Это безусловно крутое и востребованное направление, а спецов по ним на рынке разбирают как горячие пирожки.
Но есть аспекты . без которых вся история с мобильными приложениями, сервисами в интернете, размещенными в облаках и продаваемая по модели SaaS/PaaS или любое другая программная сущность, к которой так или иначе подключаются удаленные пользователи - не заработает.
Поговорим про роль человека, который разбирается в принципах построения сетей, коммутации, маршрутизации данных, о серверных инженерах, спецам по контактным центрам и так далее.
Эти ребята не пишут код в IDE и не имеют тимлида. Но именно от их работы зависит то, будет ли "хрипеть" разговор в трубке телефона в компании, как быстро будут передаваться чувствительные к задержкам данные, и именно они спасут сеть на 10 000 человек от петли маршрутизации и широковещательного шторма. Цена ошибки таких людей - высока, от этого и ценность шарящего сетевика также высокая.
В статье я расскажу об этом направлении, как в него попасть, сколько получают "сетевики", и за кем будущее в этой отрасли.
МТУСИ
Итак, свою историю я начну с прекрасного университета - МТУСИ (Московский технический университет связи и информатики). И именно этот университет посчастливилось закончить мне и большой части нашей команды.
Вообще, как написано в википедии
"Московский технический университет связи и информатики - российский отраслевой университет в области информационных технологий, телекоммуникаций, информационной безопасности и радиотехники."
Теоретически, да и практически, львиную долю кадров будущих инженеров связи готовят именно тут. В какой компании не бывал, с кем не общался, будь то провайдер, банк или интегратор - мтусишники везде. Занимаются сетями передачи данных, телефонией, архитектурой систем передачи или информационной безопасностью.
Университет - прекрасный. Преподавательский состав - прекрасный. Но материал, которому нас учили на 5 курсе университета в 2015 году был о том, как работает декадно шаговая АТС. Чтобы вы понимали, декадно шаговые АТС появились в СССР сразу после второй мировой войны. Забавно, но это была в прямом смысле громкая станция - там щетки скользили по специальным ламелям и издавали звуки. И вот спустя 70 лет, выпускаясь из университета, мы изучаем декадно - шаговый искатель. Кстати, вот он:
Тогда как телефонные системы, которые на тот момент существовали в энтерпрайзе, с которыми нам реально предстояло работать выглядели вот так:
В формате гибких программных приложений, в которых работают цифровые стандарты на базе IP протокола. Они имеют графический интерфейс на английском языке, а также программную консоль для более хардового управления, если хочется действительно залезть под капот.
Само собой, проблема известная и касается не только университета связи. Вы смотрели интервью Юрия Дудя с экономистом Сергеем Гуриевым?
Вы наверное помните, что там Дудь приводит цитату Гуриева, что он как - то сказал, что, "Российских студентов учат непонятно чему". На что Гуриев сказал, что рынок труда и российская система образования не связана, что плохо.
И это правда. Выходя из стен университета, ты имеешь отличный разговорный навык, но не актуальный знания, которые ждет от тебя работодатель и рынок.
Тут мы получили вывод №1:
Курсы Cisco CCNA
Я стал осознавать это примерно в конце второго курса, когда немного поработал в технической поддержке одного из интернет - провайдеров, который оказывал услуги для юридических лиц - это были каналы связи, услуги виртуальных частных сетей (VPN), телефонные номера.
Это был клевый опыт, а особенно, я помню одного из ведущих инженеров - это был дядька, который также закончил МТУСИ. На 70 - 75% он состоял из русского мата, но привыкнув, из его поучительных речей, когда он заходил к нам в поддержку, я понял главное - знания, полученные уже, и те, которые предстоит получить в ближайшие 3 года обучения - мне не пригодятся. Кстати, здесь хорошо подходит старый мем (они даже немного похожи):
Уже на стартовой позиции сотрудника технической поддержки меня окружали вендорные решения, то есть решения конкретных производителей: мультиплексоры Eltex, биллинговые системы, SFP модули, коммутаторы доступа, софт свичи, вендор Cisco.
И тут к нам плавно пришло осознание:
Что чтобы попасть во флоу, в рынок и в тренды, нужно учиться работать решениями, которые есть на рынке - то есть с решениями конкретных производителей. Причем не просто уметь кнопки нажимать и давать команды в консоли - а знать теория и глубоко понимать логику их работы.
Вообще, учеба в МТУСИ проходит в двух зданиях - первые 2 года мы учились на октябрьском поле, а оставшееся время на Авиамоторной. Так вот, переехав на новую территорию к третьему году обучения, мы стали обращать внимание - в здании есть несколько учебных центров.
Там был вендор Alcatel и Cisco. Решение учиться решениям вендора было принято сразу, вопрос был лишь в том - куда пойти - тут включились ассоциации:
Алькатель ассоциировался с:
А Cisco с городом Сан - Франциско:
Через год обучения мы закончили курс Cisco CCNA (Cisco Certified Network Associate) по маршрутизации и коммутации - это наиболее распространённый сертификат из всей линейки сертификации Cisco. Еще через 2 месяца мы подтвердили свои знания и сдали экзамен на получение сертификата и к концу 3 курса уже смогли трудоустроиться на работу в системные интеграторы на полставки на базовые инженерные позиции.
На самом деле, как я говорил раньше, наши ассоциации при выборе учебного центра нас не подвели. В энтерпрайзе (корпоративных ИТ инфраструктурах) решения на базе Cisco встречаются часто. Да и сама циска один из самых крупных вендоров телеком отрасли, а годных специалистов в России, которые могли бы работать с линейкой продуктов не так много.
Тут мы получили вывод №2:
Подвиды
Поговорим про то, какие бывают ребята из отрасли обслуживания инфраструктур:
Инженер по обслуживанию корпоративных систем связи - он же VoIP инженер. Этот человек хорошо разбирается в IP - телефонии, протоколах, знает стеку стека протоколов TCP/IP - зарплата от 50к на старте
Инженер по обслуживанию инфраструктуры информационных систем - он же серверный инженер. Этот человек хорошо разбирается в серверной начинке, знает наизусть Linux Based и Windows системы, отличит первый рейд массив от пятого, знаком с Chef, Ansible и Puppet, и докером - зарплата от 65 - 70 тыр. на старте
Инженер по обслуживанию корпоративной сетевой инфраструктуры - он же сетевик. Разбудив его ночью, он расскажет вам все про модель OSI, знает, как работают коммутаторы и маршрутизаторы нескольких вендоров, а на обеде расскажет вам все о протоколах маршрутизации трафика - от 50к на старте
Это три основные направления в отрасли - безусловно их больше и всех перечислить не получится - обслуживание информационных систем (ПО, разный софт), филд инженер, который работает руками и монтирует железо, инженеры поддержки пользователей и так далее.
С сетевиками и в целом, с этой категорией ребят все хорошо и они в тренде. Есть и будут еще долго. Но предлагаю смотреть дальше.
DevOPS инженер
Будущее за кросс-функциональными ребятами, которые не "заточены" под один продукт, а имеют широкий кругозор и знания.
Именно тут появляется методология DevOps, которая является акронимом от development и operations - то есть от разработка и эксплуатация. Девопс инженер сочетает в себе множество знаний из смежных отраслей, которые особенно актуальны для компаний, занимающихся разработкой софта и управлением большим количество серверов.
Дело в том, что при разработке, могут возникать случаи, когда что-то не работает, или работает не так, как хотелось бы:
В таком случае разработчик говорит:
Сетевик говорит:
И понеслась. Вообще, системные администраторы или сетевые инженеры в одно время базово научились программировать, подарив миру такие продукты как Chef, Puppet или Ansible, которые служат для автоматизации работы серверов. Но так случилось не со всеми - кто то остаётся хардовым сетевым инженером, который на пальцах объяснит вам как работает протокол BGP, но совершенно не понимает в программировании.
Решив проблему понимания между разработчиком и инфраструктурщиком. Тем самым, при достижении уровня понимания между этими ролями, компании могут достичь таких метрик как:
Сокращение времени для выхода на рынок;
Снижение частоты отказов новых релизов;
Сокращение времени выполнения исправлений;
Уменьшение количества времени на восстановления (в случае сбоя новой версии или иного отключения текущей системы).
Итак, попробую сформулировать, по пунктам, что же должен уметь прекрасный DevOps инженер будущего:
Легко ориентируется в Windows и Linux based системах.
Знает инструменты для управления конфигурацией и автоматизации серверов Chef, Puppet, Ansible.
Умеет писать скрипты. Минимум - на пайтоне
Знает сетевые технологии на уровне Cisco CCNA
Этого достаточно, чтобы уже получать в среднем по РФ 100-200 тысяч рублей.
Что забавно: есть город, и это не Москва, где девопс получает получает 160-360 тысяч рублей в месяц.
Как думаете какой?
Правильный ответ - Питер. Именно там девопс оценивается больше всего. Связано ли это с климатом, подвернутыми штанами или очками с Толстой черной оправой - ответить сложно.
Итоги
Итак, мы поговорили о пути инженера по телекоммуникациями, сетевой инфраструктуре, системам связи и инфраструктуры информационных систем. Затронули наиболее быстрые пути развития, обсудили зарплаты на старте и поговорили о том, как стать прекрасным DevOps инженером будущего.
Мы поняли, что ни один вуз не сделает из вас готового к рынку спеца, а чтобы быть таковым - нужно уметь работать с решениями конкретных вендоров, а проще всего это сделать с помощью авторизованных учебных центров.
Задавайте вопросы в комментариях - помогу :)