По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Желание использовать данные с внешних сервисов это вполне обычная практика. Так как многие из этих сервисов доступны по HTTP(S) (REST API, например), то в этой статье мы хотим показать простой способ обращения к этим сервисам по cURL и обработку данных в случае, если сервер вернет JSON. Все взаимодействия будут выполняться из диалплана. Простой cURL запрос В диалплане Asterisk существует функция CURL, которая позволяет получить содержимое WEB или FTP страницы. Синтаксис запроса следующий: CURL(url,post-data) url - URL, к которому мы будем выполнять обращение; post-data - по умолчанию будет выполнен GET – запрос. Если в данном параметре будут указаны различные значения, то будет выполнен POST запрос с указанными в переменной данными; Например: exten => _X.,1,Set(C_RESULT=${CURL(//merionet.ru/rest?num=84991234567)}) Здесь мы выполним GET запрос по указанному URL, а результат сохраним в переменной C_RESULT. Использование HTTPS в запросах Иногда, HTTPS запросы могут не срабатывать, так как удаленная сторона будет проверять наш SSL – сертификат. Если поставить параметр ssl_verifypeer=0, то такой проверки не будет: same => n,Set(CURLOPT(ssl_verifypeer)=0) Как воспользоваться этим в диалплане? Легко. С помощью функции GotoIf мы можем определить действие, которое отработает на базе результата cURL: exten => _X.,1,Set(C_RESULT=${CURL(//merionet.ru/rest?num=84991234567)}) same => n,GotoIf($["${C_RESULT}" = "1"]?res1:res2) same => n(res1),Verbose(CURL Result = 1) same => n,Hangup same => n(res2),Verbose(CURL Result != 1) same => n,Hangup Указанный код отправит GET - запрос на rest, в котором в параметре num передаст номер звонящего (можно указать соответствующую переменную диалплана Asterisk). В случае, если результатом выполнения запроса будет 1, то мы перейдем к выполнению шага res1, а противоположном случае, res2. res_json для обработки JSON ответов На самом деле, для API, является обычной практикой возврат ответа в виде JSON. Поэтому, нам следует преобразовать эти данные перед обработкой их. Для этого мы воспользуемся модулем res_json из JSON библиотеки, который создан для расширения базовых возможностей диалплана с точки зрения обработки JSON. Почитайте материал об установке данного модуля по этой ссылке. exten => _X.,1,Set(C_RESULT=${CURL(//merionet.ru/rest.json)}) same => n,Set(result=${JSONELEMENT(C_RESULT, result/somefield)}) same => n,GotoIf($["${result}" = "1"]?res1:res2) same => n(res1),Verbose(CURL Result = 1) same => n,Hangup same => n(res2),Verbose(CURL Result != 1) same => n,Hangup Для теста, создайте у себя на web – сервере файл rest.json со следующим содержанием: { "result": { "somefield": 1 } }
img
Почитать лекцию №20 про протоколы передачи данных нижнего уровня можно тут. Обычно называется и маркируется как Wi-Fi 802.11, который широко используется для передачи данных по беспроводной сети в радиочастотах 2,4 и 5 ГГц. Микроволновые печи, радиолокационные системы, Bluetooth, некоторые любительские радиосистемы и даже радионяня также используют радиочастоту 2,4 ГГц, поэтому WiFi может создавать помехи и мешать работе другим системам. Мультиплексирование Спецификации 802.11 обычно используют форму частотного мультиплексирования для передачи большого количества информации по одному каналу или набору частот. Частота сигнала-это просто скорость, с которой сигнал меняет полярность в течение одной секунды; следовательно, сигнал 2,4 ГГц-это электрический сигнал, передаваемый по проводу, оптическому волокну или воздуху, который меняет полярность с положительной на отрицательную (или отрицательную на положительную) 2,4 × 109 раз в секунду. Чтобы понять основы беспроводной передачи сигналов, лучше всего начать с рассмотрения идеи несущей и модуляции. Рисунок 1 иллюстрирует эти концепции. На рисунке 1 выбрана одна центральная частота; канал будет представлять собой диапазон частот по обе стороны от этой центральной частоты. В результирующем канале две несущие частоты выбираются таким образом, чтобы они были ортогональны друг другу-это означает, что сигналы, передаваемые на этих двух несущих частотах, не будут мешать друг другу. Они обозначены на рисунке как OSF 1 и OSF 2. Каждая из этих несущих частот, в свою очередь, фактически является более узким каналом, позволяя модулировать фактический сигнал "0" и "1" на канале. Модуляция, в данном случае, означает изменение фактической частоты сигнала вокруг каждой из частот. Модуляция просто означает изменение несущей таким образом, чтобы сигнал передавался так, чтобы приемник мог его надежно декодировать. Таким образом, в спецификации 802.11 используется схема мультиплексирования с ортогональным частотным разделением каналов (Orthogonal Frequency Division Multiplexing- OFDM), а фактические данные кодируются с использованием частотной модуляции (Frequency Modulation-FM). Важно Один из сбивающих с толку моментов мультиплексирования заключается в том, что оно имеет два значения, а не одно. Либо это означает размещение нескольких битов на одном носителе одновременно, либо возможность одновременного взаимодействия нескольких хостов с использованием одного и того же носителя. Какое из этих двух значений подразумевается, можно понять только в конкретном контексте. В этой лекции применяется первое значение мультиплексирования, разбиение одного носителя на каналы, чтобы можно было передавать несколько битов одновременно. Скорость, с которой данные могут передаваться в такой системе (полоса пропускания), напрямую зависит от ширины каждого канала и способности передатчика выбирать ортогональные частоты. Таким образом, для увеличения скорости 802.11 были применены два разных метода. Первый - просто увеличить ширину канала, чтобы можно было использовать больше несущих частот для передачи данных. Второй - найти более эффективные способы упаковки данных в один канал с помощью более сложных методов модуляции. Например, 802.11b может использовать канал шириной 40 МГц в диапазоне 2,4 ГГц, а 802.11ac может использовать канал шириной 80 или 160 МГц в диапазоне 5 ГГц. Пространственное мультиплексирование Другие формы мультиплексирования для увеличения пропускной способности между двумя устройствами также используются в серии спецификаций 802.11. Спецификация 802.11n представила Multiple Input Multiple Output (MIMO), которые позволяют сигналу проходить разными путями через единую среду (воздух). Это может показаться невозможным, поскольку в комнате только один "воздух", но беспроводные сигналы фактически отражаются от различных объектов в комнате, что заставляет их проходить через пространство разными путями. Рисунок 2 демонстрирует это. На рисунке 2, если предположить, что передатчик использует антенну, которая будет передавать во всех направлениях (всенаправленная антенна), есть три пути через одно пространство, помеченные 1, 2 и 3. Передатчик и приемник не могут "видеть" три отдельных пути, но они могут измерять силу сигнала между каждой парой антенн и пытаться посылать различные сигналы между внешне разделенными парами, пока не найдут несколько путей, по которым могут быть отправлены различные наборы данных. Второй способ использования нескольких антенн - это формирование луча. Обычно беспроводной сигнал, передаваемый от антенны, охватывает круг (3D-шар). При формировании луча, он формируется с помощью одного из различных методов, чтобы сделать его более продолговатым. Рисунок 3 иллюстрирует эти концепции. В несформированном узоре сигнал представляет собой шар или шар вокруг кончика антенны- нарисованный сверху, он выглядит как простой круг, простирающийся до самой дальней точки в форме шара. С помощью отражателя луч может быть сформирован или сформирован в более продолговатую форму. Пространство позади отражателя и по бокам луча будет получать меньше (или вообще не получать, для очень плотных лучей) мощности передачи. Как можно построить такой отражатель? Самый простой способ - это физический барьер, настроенный на отражение силы сигнала, подобно тому, как зеркало отражает свет или стена отражает звук. Ключ - это точка в сигнале передачи, в которой устанавливается физический барьер. Рисунок 4 будет использоваться для объяснения ключевых моментов в форме сигнала, отражении и гашении. Типичная форма волны следует за синусоидальной волной, которая начинается с нулевой мощности, увеличивается до максимальной положительной мощности, затем возвращается к нулевой мощности, а затем проходит цикл положительной и отрицательной мощности. Каждый из них представляет собой цикл- частота относится к числу повторений этого цикла в секунду. Вся длина волны в пространстве вдоль провода или оптического волокна называется длиной волны. Длина волны обратно пропорциональна частоте- чем выше частота, тем короче длина волны. Ключевой момент, который следует отметить на этой диаграмме, - это состояние сигнала в точках четверти и половины длины волны. В четвертьволновой точке сигнал достигает наивысшей мощности; если объект или другой сигнал интерферирует в этой точке, сигнал будет либо поглощен, либо отражен. В точке полуволны сигнал находится на минимальной мощности; если нет смещения или постоянного напряжения на сигнале, сигнал достигнет нулевой мощности. Чтобы отразить сигнал, вы можете расположить физический объект так, чтобы он отражал мощность только в точке четверти волны. Физическое расстояние, необходимое для этого, будет, конечно, зависеть от частоты, так же как длина волны зависит от частоты. Физические отражатели просты. Что делать, если вы хотите иметь возможность динамически формировать луч без использования физического отражателя? Рисунок 5 иллюстрирует принципы, которые вы можете использовать для этого. Светло-серые пунктирные линии на рисунке 5 представляют собой маркер фазы; два сигнала находятся в фазе, если их пики выровнены, как показано слева. Два сигнала, показанные в середине, находятся на четверть вне фазы, так как пик одного сигнала совпадает с нулевой точкой или минимумом второго сигнала. Третья пара сигналов, показанная в крайнем правом углу, является комплементарной, или на 180 градусов вне фазы, так как положительный пик одного сигнала совпадает с отрицательным пиком второго сигнала. Первая пара сигналов будет складываться вместе; третья пара сигналов будет погашена. Вторая пара может, если она правильно составлена, отражать друг друга. Эти три эффекта позволяют сформировать пучок, как показано на рисунке 6. Одна система формирования луча может использовать или не использовать все эти компоненты, но общая идея состоит в том, чтобы ограничить луч в пределах физического пространства в среде - как правило, свободное распространение в воздухе. Формирование луча позволяет использовать общую физическую среду в качестве нескольких различных каналов связи, как показано на рисунке 7. На рисунке 7 беспроводной маршрутизатор использовал свои возможности формирования луча для формирования трех разных лучей, каждый из которых направлен на другой хост. Маршрутизатор теперь может отправлять трафик по всем трем из этих сформированных лучей с более высокой скоростью, чем если бы он обрабатывал все пространство как единую совместно используемую среду, потому что сигналы для A не будут мешать или перекрываться с информацией, передаваемой в B или C. Совместное использование канала Проблема мультиплексирования в беспроводных сигналах связана с совместным использованием одного канала, как в системах проводных сетей. В решениях, разработанных для совместного использования единой беспроводной среды, преобладают две специфические проблемы: проблема скрытого узла и проблема мощности передачи / приема (которую также иногда называют перегрузкой приемника). На рисунке 8 показана проблема со скрытым узлом. Три круга на рисунке 8 представляют три перекрывающихся диапазона беспроводных передатчиков в точках A, B и C. Если A передает в сторону B, C не может слышать передачу. Даже если C прослушивает свободный канал, A и C могут передавать одновременно, что вызывает конфликт в B. Проблема скрытого узла усугубляется из-за того, что мощность передачи по сравнению с мощностью принятого сигнала, и реальность воздуха как среды. Главное практическое правило для определения мощности радиосигнала в воздухе - сигнал теряет половину своей мощности на каждой длине волны в пространстве, которое он проходит. На высоких частотах сигналы очень быстро теряют свою силу, что означает, что передатчик должен послать сигнал с мощностью на несколько порядков больше, чем его приемник способен принять. Очень сложно создать приемник, способный "слушать" локальный передаваемый сигнал в полную силу, не разрушая приемную схему, а также способный "слышать" сигналы очень низкой мощности, необходимые для расширения диапазона действия устройства. Другими словами, передатчик насыщает приемник достаточной мощностью, чтобы во многих ситуациях "уничтожить" его. Это делает невозможным в беспроводной сети для передатчика прослушивать сигнал во время его передачи и, следовательно, делает невозможным реализацию механизма обнаружения коллизий, используемого в Ethernet (как пример). Механизм, используемый 802.11 для совместного использования одного канала несколькими передатчиками, должен избегать проблем со скрытым каналом и приемником. 802.11 WiFi использует множественный доступ с контролем несущей / предотвращение конфликтов (Carrier Sense Multiple Access/Collision Avoidance -CSMA/CA) для согласования использования канала. CSMA/CA похож на CSMA/CD: Перед передачей отправитель прослушивает сообщение, чтобы определить, передает ли его другое устройство. Если слышна другая передача, отправитель "замирает" на определенный случайный период времени перед повторной попыткой- эта отсрочка предназначена для предотвращения того, чтобы несколько устройств, слышащие одну и ту же передачу, не пытались передать данные одновременно. Если никакой другой передачи не слышно, отправитель передает весь кадр- отправитель не может принять сигнал, который он передает, поэтому в этой точке нет способа обнаружить коллизию. Получатель отправляет подтверждение кадра при получении; если отправитель не получает подтверждения, он предполагает, что произошла коллизия, отключается на случайное количество времени и повторно отправляет кадр. Некоторые системы WiFi также могут использовать Request to Send/Clear to Send (RTS / CTS). В таком случае: Отправитель передает RTS. Когда канал свободен, и никакая другая передача не запланирована, получатель отправляет CTS. Получив CTS, отправитель передает данные Какая система будет обеспечивать более высокую пропускную способность, зависит от количества отправителей и получателей, использующих канал, длины кадров и других факторов. Маршалинг данных, контроль ошибок и управление потоком данных Маршалинг данных в 802.11 аналогичен Ethernet; в каждом пакете есть набор полей заголовка фиксированной длины, за которыми следуют транспортируемые данные и, наконец, четыре октетная Frame Check Sequence (FCS), которая содержит CRC для содержимого пакета. Если получатель может исправить ошибку на основе информации CRC, он это сделает, в противном случае получатель просто не подтверждает получение кадра, что приведет к повторной передаче кадра отправителем. Порядковый номер также включен в каждый кадр, чтобы гарантировать, что пакеты принимаются и обрабатываются в том порядке, в котором они были переданы. Управление потоком обеспечивается в системе RTS / CTS приемником, ожидающим отправки CTS, пока у него не будет достаточно свободного места в буфере для приема нового пакета, чтобы промежуточные системы могли обнаруживать конечные системы; это называется протоколом End System to Intermediate System (ES-IS).
img
Кто такой DevOps-инженер, чем он занимается в мире IT-разработки и как им стать В этой статье мы познакомим вас с популярной профессией DevOps-инженера и расскажем, что он делает, как им стать, где искать работу и – самое главное – сколько можно зарабатывать. В отличие от некоторых модных карьерных направлений, которые появляются и исчезают, DevOps — это область, которая была и будет востребованной. Согласно прогнозам, к концу 2023 года рынок DevOps вырастет до невероятных $10.3 млрд, так что получение должности DevOps-инженера — это ваш первый шаг к долгосрочной карьере. Если вам нужна работа, сочетающая технологии и творческий подход, то должность DevOps-инженера — это для вас! В этой статье расскажем, как стартовать в этой сфере и что о ней следует знать. Кто такой DevOps-инженер Это специалист, на чьих плечах лежит ответственность за совершенствование и автоматизацию процессов разработки и эксплуатации программного обеспечения. Проще говоря, это методология, объединяющая разработку (Dev) и эксплуатацию (Ops) в разработке программного обеспечения с акцентом на скорость и качество. Задача DevOps-инженера состоит в том, чтобы наладить коммуникацию и сотрудничество между этими двумя направлениями. Что делает DevOps-инженер DevOps-инженер отвечает за создание инструментов, улучшающих процессы разработки, повышение производительности, надежности и безопасности программных продуктов. Ключевые области занятости devops-инженера включают в себя: автоматизацию развертывания и масштабирования систем, управление инфраструктурой как кодом (IaC), непрерывную поставку и интеграцию (CI/CD), мониторинг и логирование, управление конфигурацией и изменениями, работу с облачными платформами и микросервисной архитектурой. Где работать DevOps-инженеру DevOps-инженеры востребованы в различных сферах и отраслях. Они могут работать как в крупных корпорациях, так и в стартапах, где процессы разработки носят более гибкий и динамичный характер. DevOps-подход активно внедряется в современных IT-компаниях, разработчиками облачных решений, а также в корпоративных IT-отделах. Профессионал в этой области может работать как в операционных подразделениях, так и в команде разработки ПО. Необходимые навыки для DevOps-инженера Помните, что DevOps — это не просто набор инструментов или название должности. Это группа скиллов, в которой особое внимание уделяется командной работе, коммуникации и автоматизации. Рассказываем подробнее о каждом из них: навыки программирования: специалист должен обладать опытом в программировании на языках, таких как Python, Ruby, Go, Java, Rust, C и C++. Проще говоря, он должен уметь писать код, который автоматизирует процессы разработки и операционной работы. Навыки работы с системами контроля версий: DevOps-инженер должен знать, как работать с системами контроля версий, такими как Git. Он также отвечает за управление конфигурацией серверов и инфраструктуры. Навыки работы с облачными технологиями: специалист должен уметь работать с AWS, Azure или Google Cloud. Он должен уметь настраивать инфраструктуру в облаке и управлять ресурсами. Навыки автоматизации: DevOps-инженеру требуется автоматизировать процессы разработки и операционной работы. Он должен знать, как настроить CI/CD-пайплайны, тестирование и деплоймент. Навыки мониторинга и логирования. DevOps-инженер должен уметь анализировать логи и метрики, чтобы быстро реагировать на проблемы. Навыки коммуникации. Специалист должен уметь общаться с разработчиками, тестировщиками и операторами. Он должен быть готов к сотрудничеству, давать понятные ТЗ и уметь объяснять сложные технические вопросы простым языком. В рамках DevOps вы будете участвовать во всем цикле разработки ПО — от планирования до внедрения. Как правило, работа в качестве DevOps начинается с должности начального уровня, например, релиз-менеджера или младшего инженера. По мере накопления опыта внедрения инструментов и процессов, можно вырасти: и стать DevOps-инженером, архитектором или системным инженером. Чтобы построить карьеру в качестве DevOps, вам потребуется техническое образование в области информатики или информационных технологий, а также понимание Linux, веб-разработки и Java. Поскольку DevOps охватывает весь жизненный цикл программного обеспечения, вместо того чтобы сосредоточиться на одной области, инженеры DevOps работают над оптимизацией каждого этапа процесса. Это означает, что они будут решать множество задач в день, попутно находя точки роста для продукта. Плюсы и минусы профессии DevOps-инженера Поскольку 86% организаций считают необходимым быстро разрабатывать новое программное обеспечение, вклад DevOps в компанию очень большой. Давайте рассмотрим, какие плюсы у этой работы есть для вас как для сотрудника: Высокий спрос на рынке труда: инженеры востребованы во многих компаниях, в том числе и зарубежных. Именно поэтому DevOps стала такой популярной методологией разработки во всем мире. Высокая зарплата: DevOps-инженеры могут получать от 70 до 600 тысяч рублей — доход всегда растет вместе с умениями и опытом. Большой выбор инструментов: DevOps-инженеры могут использовать широкий спектр инструментов для автоматизации и управления процессами. Быстрый рост в карьере: при условии постоянного обучения и оттачивания технических скиллов DevOps-инженер может продвигаться по карьерной лестнице, не сидя годами на одной зарплате. К тому же, эта роль предполагает работу с другими техническими специалистами, фреймворками, языками программирования, так что вы получите глубокое понимание экосистемы DevOps — и это тоже поможет росту в долгосрочной перспективе. Минусы: Высокие требования к знаниям и навыкам. DevOps-инженеру необходимо постоянно обучаться и развиваться, чтобы оставаться востребованным. Большая ответственность. DevOps-инженер отвечает за автоматизацию процессов разработки и операционной работы, что может повлечь за собой серьезные последствия в случае ошибки или сбоя.. Необходимость быстрого реагирования. Специалист должен быть готов к быстрому реагированию на изменения в проекте или системе, чтобы ничего не «рухнуло». Высокая конкуренция. Чтобы получить работу DevOps-инженером, понадобится подтвердить свои технические навыки и софт-скиллы. Поможет и обучение в техническом вузе или на профильных курсах. Овертаймы или необходимость работать ночью. В некоторых случаях DevOps-инженер может столкнуться с тем, что ему придется выходить в ночные смены, чтобы обеспечить бесперебойную работу системы, либо задерживаться на работе. Такие моменты можно обсудить с руководством и договориться о дополнительной оплате. DevOps-инженер: зарплата и вакансии Зарплата DevOps-инженера в России может значительно варьироваться в зависимости от опыта работы, компании, региона и других факторов. По данным HeadHunter, средняя зарплата DevOps-инженера в России составляет около 130 000 — 150 000 рублей в месяц. В Москве и Санкт-Петербурге зарплаты могут быть выше и составлять от 150 000 до 200 000 рублей в месяц. Учитывайте, что зарплата может зависеть от уровня опыта и квалификации. Новички в этой области могут начинать с зарплаты 70 000 — 80 000 рублей в месяц, тогда как опытные DevOps-инженеры могут зарабатывать более 250 000 рублей в месяц. Как стать DevOps-инженером с нуля Будущее профессии DevOps-инженера выглядит блестящим. Возможно, после прочтения статьи вам показалось, что нужно обладать огромным количеством навыков для обучения этой профессии. Но это не так: начать карьеру DevOps-инженера с нуля можно и даже нужно! Важно выбирать учебные программы, которые охватывают не только основы DevOps, но и практику применения современных инструментов автоматизации, управления конфигурацией и работы с облачными платформами. У нас есть курс «DevOps-инженер с нуля», где вы научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Что в итоге У IT-компаний, которые наращивают скорость и эффективность DevOps, сочетая его с другими технологиями, есть потенциал стать лидерами — как в плане технологий, так и в плане доверия клиентов. DevOps-инженер способен повысить качество выпускаемого ПО, улучшить его безопасность и наладить отношения с пользователями. Карьерные возможности, высокие зарплаты и постоянно растущий рынок труда делают профессию привлекательной для тех, кто стремится растить свои навыки в IT. Помните, что единственный способ продвинуться в любой карьере — постоянно быть в курсе последних тенденций и технологий в этой области. Это не только поможет вам быть в курсе новостей сферы, но и поможет получить лучшую работу и зарплату.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59