По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Скажите, вам было бы удобно, если бы до вас всегда можно было бы дозвониться по одному телефонному номеру? Всего один звонок заставит звонить офисный телефон посреди дня, мобильный посреди обеда и домашний посреди вечера. Для этого существует функция Single Number Reach (SNR) в Cisco CME (CUCME). Она позволяет добавить дополнительное устройство к “родительскому” номеру. Например, вы можете связать свой мобильный телефон с рабочим. Когда пойдет звонок на рабочий номер, то зазвонит телефон в офисе, а через заранее определенный интервал одновременно начнет звонить и мобильный. Если ни там, ни там не примут звонок, то CME переведет звонок на корпоративную голосовую почту. /p> Single Number Reach в CME по сути является облегченной версией функции Mobile Connect в CUCM, которая позволяет пользователю заставить звонить несколько устройств одновременно. В дополнение к функции одновременного вызова Single Number Reach позволяет делать пользователю трансфер посреди звонка. Например, если вы начали разговор сидя за своим столом используя Cisco VoIP телефон, но потом вспомнили что опаздываете на запланированную видеоконференцию, то просто нажмите кнопку Mobility на стационарном телефоне и CME переведет вызов на мобильный телефон, как было настроено предварительно. Также можно всегда вернуть вызов обратно, нажав клавишу Resume. Использование Single Number Reach может использовать дополнительные голосовые соединительные линии в PSTN. Функция, позволяющая переместить вызов между офисным и мобильным телефоном, доступна только потому, что CME постоянно поддерживает вызов. Например, если пользователь получил вызов на своем настольном телефоне, а затем нажал кнопку Mobility, чтобы отправить его на свой мобильный телефон, то будет задействовано две соединительные линии PSTN: одна для входящего вызова на офисный телефон и одна для исходящего вызова на мобильный телефон. Настройка Single Number Reach Для настройки этой функции можно использовать как командную строку, так и Cisco Configuration Professional (CCP) . Если используется CCP, то нужно перейти в меню Unified Communications → Users, Phones, and Extensions → Extensions и выбрать номер, на котором нужно настроить Single Number Reach. Нажимаем на Edit, переходим во вкладку Advanced и выбираем пункт меню Single Number Reach. Здесь есть следующие опции: Enable SNR for this extension – галочка включает функцию и позволяет настроить следующие поля Remote Number – в этом поле нужно указать удаленный номер, на который CME должен перевести вызов, после определенного времени. Номер нужно вводить в соответствии с вашим диалпланом (например, если у вас выход в город через 9, то и здесь нужно указать девятку перед номером) Ring remote number after – сколько секунд CME должен ждать перед тем перевести звонок на удаленный номер, указанный в предыдущем поле Timeout – сколько секунд CME должен ждать, прежде чем считать звонок неотвеченным Forward unanswered calls to – это опциональное поле, в котором можно указать, куда направлять неотвеченные звонки При конфигурации через CLI используется такой синтаксис: CME(config)#ephone-dn 2 dual-line CME(config-ephone-dn)# snr 84996491913 delay 10 timeout 25 cfwd-noan 1101 CME(config-ephone-dn)# mobility Тут snr – номер на который будет переведен звонок, delay – время до перевода, timeout – через сколько звонок будет считаться неотвеченным и cfwd-noan – куда будет направлен неотвеченный вызов. Функцию Mobility, которая позволяет делать транфер во время активного разговора, можно настроить отдельно от SNR.
img
Docker и Kubernetes - два ведущих инструмента, используемых в индустрии облачных вычислений. В то время как Docker - это компьютерное приложение, использующее концепцию контейнеризации, а Kubernetes - это система оркестровки контейнеров. Как правило, Docker и Kubernetes используются совместно друг с другом. Тем не менее, сравнение Kubernetes и Docker является чрезвычайно популярной темой в сообществе облачных вычислений. Прежде чем сравнивать две наиболее важные технологии облачных вычислений, давайте сначала кратко расскажем о каждой из них. Kubernetes Впервые выпущенный в июне 2014 года, Kubernetes был изначально разработан Google. За дальнейшую разработку и обслуживание системы оркестровки контейнеров с открытым исходным кодом отвечает Cloud Native Computing Foundation. Согласно официальному сайту, Kubernetes является «системой с открытым исходным кодом для автоматизации развертывания, масштабирования и управления контейнеризованными приложениями». Используя технологию контейнеризации, Kubernetes позволяет запускать контейнеры на нескольких вычислительных узлах, которые могут быть простыми серверами или виртуальными машинами. Перед использованием Kubernetes нужно перепроверить несколько вещей. Одним из них является обеспечение того, чтобы все участвующие вычислительные узлы были надежно связаны друг с другом. Docker Разработанная Docker, Inc., Docker была впервые выпущена в марте 2013 года. Это компьютерная программа, способная выполнять виртуализацию на уровне операционной системы, широко известную как контейнерная упаковка. Docker можно рассматривать в двух разных сторон. С первого взгляда контейнеры Docker - это действительно легкие виртуальные машины, а со второй точки зрения Docker - это платформа для упаковки и доставки программного обеспечения. Последний аспект в первую очередь ответственен за огромную популярность технологии контейнеризации Docker и ее широкое распространение в индустрии облачных вычислений. Можно ли сравнивать Docker и Kubernetes? Сравнивать Docker с Kubernetes - все равно что сравнивать Солнце с Луной. Конечно, оба небесных тела, но сравнение между ними не звучит правильно! Это потому, что, хотя оба сияют, один - звезда, а другой - естественный спутник. Хотя Docker может работать без Kubernetes, а Kubernetes может функционировать в полной мере без Docker, использование обоих в совместной работе улучшает функциональность друг друга. Docker может быть установлен на компьютере для запуска контейнерных приложений. Подход контейнеризации означает запуск приложений в операционной системе таким образом, чтобы они были изолированы от остальной части системы. Приложение будет чувствовать, что оно имеет свою собственную выделенную ОС. Несколько приложений могут работать в одной ОС, как если бы у каждого из них был свой экземпляр операционной системы. Каждое приложение находится внутри контейнера. Docker позволяет создавать, управлять и запускать контейнеры в одной операционной системе. Теперь, когда у вас установлен Docker на нескольких хостах, то есть на операционных системах, вы можете воспользоваться Kubernetes. В таком случае мы называем эти хосты узлами или узлами Docker, которые могут быть серверами с открытым исходным кодом или виртуальными машинами. Прелесть использования Kubernetes с Docker заключается в том, что он помогает автоматизировать балансировку нагрузки контейнера, создание сетей, выделение ресурсов, масштабирование и безопасность на всех хостах Docker с помощью отдельной панели мониторинга или интерфейса командной строки. Повышение масштабируемости приложений и повышение надежности инфраструктуры - две лучшие причины выбора нескольких узлов. Коллекция узлов, управляемых отдельным экземпляром Kubernetes, называется кластером Kubernetes. Kubernetes vs Docker Docker Swarm, про настройку которого можно прочитать тут - это платформа оркестрации контейнеров с открытым исходным кодом. Это собственный механизм кластеризации для Docker, и поэтому он использует ту же командную строку, что и Docker. Ниже приведены различные важные различия между Swarm и Kubernetes. Развертывание приложений Приложение развертывается в Kubernetes с использованием комбинации модулей и служб (или микросервисов). В Docker Swarm развертывание приложения происходит просто в виде микросервисов или сервисов в кластере Swarm. Docker Swarm поставляется с Docker Compose, который помогает в установке приложения. Для идентификации нескольких контейнеров в Docker Swarm есть файлы YAML (YAML Ain’t Markup Language). Настройка контейнера Хотя Docker Swarm API не поддерживает все команды Docker, он предлагает почти все лучшие функциональные возможности Docker. Итак, Docker Swarm поддерживает большинство инструментов, доступных для Docker. Однако, если Docker API не способен выполнять некоторые необходимые операции, не существует простого обходного пути для их использования в Docker Swarm. Как и Docker Swarm, Kubernetes имеет свою собственную версию API, определения клиентов и YAML. Тем не менее, они отличаются от их коллег Docker. Следовательно, нет возможности использовать Docker CLI или Docker Compose для определения контейнеров в Kubernetes. В случаях, когда необходимо переключить платформу, команды и определения YAML необходимо переписать. Балансировка нагрузки Как правило, Ingress используется для балансировки нагрузки в Kubernetes. Тем не менее, есть и другой способ, в котором модуль в Kubernetes выставляется через сервис и его можно использовать в качестве балансировщика нагрузки в кластере, к которому он принадлежит. Docker Swarm имеет DNS-элемент, который можно использовать для распределения входящих запросов по определенному имени службы. Для балансировки нагрузки службы могут быть назначены автоматически или настроены для работы на указанных пользователем портах. Сеть Kubernetes использует плоскую сетевую модель. Таким образом, все модули могут взаимодействовать друг с другом. Как будет происходить взаимодействие между модулями, определяется сетевыми политиками. Обычно модель плоской сети реализована в виде наложения. Модель плоской сети в Kubernetes требует две CIDR (Classless Inter-Domain Routing): один для сервисов, а другой - от которого модули получают IP-адрес. В Docker Swarm узел, присоединяющийся к кластеру Swarm, отвечает за генерацию оверлейной сети для сервисов, охватывающей каждый хост в кластере, и сети мостов Docker только для хостов для контейнеров. Docker Swarm дает пользователям возможность шифровать трафик контейнерных данных при создании оверлейной сети. Масштабируемость Kubernetes - это комплексная структура для распределенных систем. Поскольку он предлагает унифицированный набор API и надежные гарантии состояния кластера, Kubernetes является сложной системой. Эти способности отвечают за замедление развертывания и масштабирования контейнера. По сравнению с Kubernetes, Docker Swarm может развертывать контейнеры на гораздо более высокой скорости. Следовательно, это позволяет быстрее реагировать на масштабирование системы в соответствии с требованиями. Синергия между Docker и Kubernetes Kubernetes способен работать в тандеме с любой технологией контейнеризации. RKT и Docker являются двумя наиболее популярными опциями для механизма оркестровки контейнеров с открытым исходным кодом. Однако последний предпочтительнее, чем первый. Из-за большего предпочтения использования Docker с Kubernetes было приложено много усилий для совершенствования сотрудничества между этими двумя технологиями. Хотя Docker имеет свой собственный механизм оркестровки контейнеров в форме Docker Swarm, склонность к использованию Kubernetes с Docker нельзя не заметить. Это видно из того факта, что Docker for Desktop поставляется с собственным дистрибутивом Kubernetes. Следовательно, совершенно очевидно, что обе технологии, Docker и Kubernetes, объединили свои усилия и также извлекли большую пользу из этого сотрудничества.
img
Даже если вы новичок в разработке, вы, возможно, слышали о TypeScript. Это относительно новый язык программирования, который был разработан компанией Microsoft и который завоевал сердца многих с самого момента своего выпуска в 2012 году. Что интересно, TypeScript по сути не является самостоятельным языком программирования. На самом деле TypeScript считается расширенной версией языка программирования JavaScript. TypeScript – это расширенная версия JavaScript Расширенная версия языка программирования – это некое расширение, которое добавляет новые функции и расширяет возможности языка. Иными словами, любая написанная на JavaScript программа будет работать и на TypeScript. В этой статье мы вкратце расскажем, что такое TypeScript, зачем он нужен, а также приведем некоторые ключевые отличия, за счет которых он выделяется на фоне JavaScript. Что такое JavaScript? JavaScript ES6 (который также известен как ECMAScript 6) – это клиентский кроссплатформенный прототип-ориентированный язык описания сценариев; создан Бренданом Эйхом. JavaScript широко применяется в разработке клиентской части динамических интерактивных веб-приложений. JavaScript – это язык  с динамической типизацией , то есть проверка соответствия типов происходит в процессе компиляции. Языки с динамической типизацией делают акцент на эффективности работы разработчиков, то есть для того, чтобы довести проект до ума разработчиком потребуется  меньший объем кода .  Языки с динамической типизацией также склонны быть более гибкими, но предлагают код, который, как правило, менее оптимизирован, поскольку для того, чтобы определить, есть ли в коде какие-то ошибки, его  нужно сначала запустить. JavaScript запускается непосредственно в веб-браузере, поэтому для выполнения кода JavaScript не нужны никакие дополнительные ресурсы. Однако отладка череды ошибок за один раз, а не по ходу дела, все равно может стать непомерной задачей.  Примечания : к языкам с динамической типизацией также относятся Python, PHP, Perl и Ruby. После своего появления в 1995 году JavaScript прошел несколько стадий улучшения своей функциональности, что привело к упрощению разработки программного обеспечения. И теперь его можно использовать даже для разработки интерактивных игр! Изначально JavaScript подразумевался как очень простой язык для встраивания в веб-страницу в виде небольших фрагментов кода. А все потому, что в то время веб-браузеры могли обрабатывать всего несколько десятков строк кода без вреда для скорости работы.  Современные же браузеры могут запускать приложения на JavaScript с  сотнями тысяч строк кода.  JavaScript также имеет преимущество благодаря наличию большого исполненного энтузиазма сообщества, подробной документации и большого количества библиотек и фреймворков. Кроме того,  JavaScript поддерживает множество клиентских API , которые могут позволить сократить объем кода, который должен писать разработчик программного обеспечения. Именно поэтому большая часть команд разработки выбирает именно JavaScript. И все же изначально JavaScript не предназначался для использования в больших проектах. Поэтому, несмотря на то, что небольшие проекты можно отладить без проблем, попытка отладить большой проект на JavaScript может оказаться неудачной, а сам процесс трудоемким и длительным.  Примечание : возможно, вы не думали о JavaScript как об объектно-ориентированном языке программирования, но на самом деле он отлично поддерживает ООП! Что такое TypeScript? TypeScript – это язык программирования с открытым исходным кодом, но изначально в 2010 году он выпускался как внутренний продукт Microsoft. TypeScript стал доступен для всех на GitHub в конце 2012 года.  Так как TypeScript считается строгой расширенной версией ECMAScript 2015, то любая программа на JavaScript также может быть рассмотрена как программа на TypeScript. В отличие от JavaScript, TypeScript – это язык программирования  со статической типизацией . Так как это  статический модуль контроля типов, он проверяет поведение определенных переменных перед запуском вашей программы. Это будет так, даже если вы объявляете переменные без указания типа. В таких случаях TypeScript может автоматически назначить типы объявленным переменным. Такой маневр известен как  «выведение типов» и является встроенной функцией и для других языков, например, Kotlin и Scala.  Как только TypeScript назначит тип переменной, он будет использовать его на протяжении всего кода. Такой подход может поспособствовать улучшению согласованности и может помочь устранить потенциальные ошибки еще  до начала компиляции. Однако у всего есть своя цена. Здесь это потеря гибкости, к которой привыкли разработчики JavaScript. Примечание : к языкам со статической типизацией относятся Java, C и C++. Если программист использует язык со статической типизацией, он должен указать тип данных для каждой переменной, которую он объявляет.  В основе TypeScript было 11 целей разработки: Компания Microsoft определила 11 ключевых моментов, которые поспособствовали развитию TypeScript. Статическое определение потенциальных ошибок. Возможность структурирования больших частей кода.  Возможность избежать увеличения времени выполнения программы.  Компиляция в чистый и распознаваемый код на JavaScript. Создание языка, который был бы пригодным для компоновки и на котором было бы легко размышлять. Сохранение полной совместимости с текущими и будущими версиями JavaScript. Сохранение поведения всего кода на JavaScript во время выполнения. Возможность избежать добавления синтаксических структур на уровне выражений. Сделать TypeScript согласованным, и чтобы он допускал возможность стирания. Сделать кроссплатформенный инструмент разработки. Сделать так, чтобы изменение языка не нарушали прошлые версии TypeScript. Преимущества TypeScript TypeScript превосходит JavaScript в двух вещах: TypeScript компилируется в JavaScript : TypeScript преобразует и заменяет свой собственный код действующим кодом на JavaScript в процессе компиляции, позволяя тем самым использовать дополнительные возможности ECMAScript в более старых версиях браузеров, которые обычно их не поддерживают. TypeScript может применять статическую типизацию : статическая типизация выявляет потенциальные проблемы на более ранних этапах жизненного цикла разработки, за счет того, что всем объявленным переменным назначаются типы данных.  Примечание :  полифил – это фрагмент кода (как правило, написанный на JavaScript), который стремиться воспроизвести методы новой функции. Полифиллинг позволяет более старым версиям браузеров поддерживать новые функции, которые обычно ими не поддерживаются.  Транспайлер конвертирует исходный код на одном языке в исходный код на другом языке. В таком случае методы, которые были написаны на TypeScript, компилируются в JavaScript для того, чтобы их можно было запустить в среде JavaScript.  Компилятор TypeScript имеет гибкую изменяемую конфигурацию. Есть большое количество способов регулирования различных аспектов, связанных с проверкой типов и компиляцией. Чем строже проверка, тем больше ошибок может найти компилятор TypeScript. Самая распространенная ошибка в TypeScript – это ошибка, связанная с присваиванием типов. Основная цель модуля контроля типов – убедиться, что для всех значений определены корректные типы. Дополнительные возможности Совместимость : TypeScript поддерживает практически все фреймворки и библиотеки JavaScript; в их числе: React : одностраничное приложение (SPA - single-page application), которое использует виртуальную модель DOM для того, чтобы увеличить объем памяти и улучшить производительности. Vue : написан на TypeScript и легко интегрируется в приложения.  Angular : отлично подходит для быстрого прототипирования, простого тестирования и оптимизации производительности сервера.  Синтаксический сахар : использование строго определенных типов упрощает чтение кода, так как вам не нужно гадать, к какому типу относится та или иная переменная. Всесторонняя поддержка IDE : Visual Studio Code Eclipse Atom WebStorm … и другие! Недостатки TypeScript У TypeScript есть и недостатки. Вы можете оценить их, сопоставив с преимуществами, и решить самостоятельно, подходит он вам или нет.  Вот несколько недостатков, которые следует учесть при принятии решения: Время компиляции : программы, написанные на TypeScript, выполняются быстрее, чем программы, написанные на JavaScript. Кривая обучения: TypeScript немного сложнее, чем JavaScript; для того, чтобы научиться им пользоваться, потребуется время. Несоответствие типов : так как код, написанный на TypeScript, компилируется в код JavaScript, то вы можете столкнуться с нестандартными ошибками и несоответствием типов.  Меньшая гибкость : в TypeScript переменные и параметры менее гибкие. Сравнительная таблица: TypeScript VS JavaScript TypeScript JavaScript Выпущен в 2012 году Выпущен в 1995 году Компилируется в JavaScript Самостоятельный язык Статическая типизация, со строгим контролем типов Динамическая типизация, со слабым контролем типов Компилируемый язык, не может быть выполнен прямо в веб-браузере Интерпретируемый язык, может быть выполнен прямо в веб-браузере Кривая обучения довольно крутая Легкий для изучения Доступно прототипирование Доступно прототипирование Мало документации Подробная документация Растущее сообщество с меньшим количеством ресурсов Большое сообщество разработчиков и ресурсов JavaScript Лучше всего подходит для сложных или крупных проектов Лучше всего подходит для небольших проектов Поддерживает все библиотеки JS Библиотеки JS работают по умолчанию Поддерживает модули, универсальные шаблоны и интерфейсы.  Не поддерживает модули, универсальные шаблоны и интерфейсы Настройка сборки с пакетом npm Не требуется настройка сборки Числа и строки – это интерфейсы Числа и строки – это объекты     Нужно ли мне изучить TypeScript? Если  вы новичок в веб-разработке и планируете работать над небольшими проектами , то для начала вам идеально подойдет JavaScript. Если  вы уже знакомы с JavaScript , то ответ на этот вопрос будет зависеть от того, импонируют ли вам определенные функции TypeScript как разработчику программного обеспечения. В зависимости от ситуации (и ваших приоритетов) иногда может оказаться так, что целесообразнее будет использовать JavaScript, а не TypeScript.  Например, один из самых существенных недостатков компилируемого языка, такого как TypeScript, заключается в  дополнительном времени, которое необходимо для выполнения кода . Если вашим приоритетом является сокращение времени компиляции, то лучше выбрать JavaScript. Если вы больше заботитесь о том, чтобы ваш  код был читабельным , а не о времени его компиляции, то здесь явным преимуществом будет обладать TypeScript. Примечание : возьмите себе на заметку, что разработчики TypeScript обычно получают в среднем более высокую оплату, поскольку их меньше, чем разработчиков JavaScript. И тем не менее, еще одно достижение (в виде нового изученного языка) лишним не будет! Установка Через пакет npm Для начала убедитесь, что у вас есть IDE, диспетчер пакетов Node.js (npm) и компилятор TypeScript. Node.js предоставляет среду, в которой ваш пакет TypeScript сможет работать. Затем откройте командную строку или терминал, и введите следующую команду: npm install -g typescript Если TypeScript был установлен правильно, то вы сможете проверить номер версии с помощью команды tsc –v. Теперь вы можете воспользоваться следующей командой и установить TypeScript в свой локальный проект в качестве зависимости.  npm install typescript --save-dev Через Microsoft Visual Studio Code Для начала убедитесь, что у вас установлена Visual Studio, а также приложение для веб-разработки ASP.NET. Далее : Откройте новый проект в Visual Studio. Щелкните правой кнопкой мыши на папку проекта в обозревателе решений (Solution Explorer).  Щелкните « Manage NuGet Packages » (Управление пакетами NuGet). Во вкладке « Browse » (Обзор) найдите  Microsoft.TypeScript.MSBuild . Нажмите « Install » (Установить). В том случае, если ваш проект не поддерживает NuGet, то вы можете установить расширение TypeScript в Visual Studio, перейдя сюда: Extensions -> Manage Extensions (Расширения -> Управление расширениями).  Подведем итоги Отлично! Мы рассмотрели некоторые основные возможности TypeScript, а также некоторые вопросы, связанные с выбором между TypeScript и JavaScript. Надеюсь, что это краткое введение в TypeScript было для вас информативным и заставило вас задуматься о новом проекте. Кто знает, возможно вы заходите написать его именно на TypeScript.  
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59