- PVSM.RU - https://www.pvsm.ru -
Телекоммуникационный проект KAZOO молодой компании под названием 2600hz (США) уже успел собрать несколько отраслевых наград и используется многими крупными операторами связи.
Эта статья — краткий авторский обзор возможностей и архитектуры проекта от человека, посвятившего последние полтора года его изучению и применению на практике.
KAZOO — быстро развивающаяся открытая (open-source) платформа виртуальной облачной телефонии, на основе которой можно строить сервисы виртуальных АТС, виртуальные мобильные сети и другие масштабные облачные телекоммуникационные решения операторского класса.
Объём и назначение этой статьи не позволяет детально рассказать об устройстве системы с точки зрения разработки ядра и компонент. Этому, возможно, будет посвящены отдельные материалы. Цель статьи — кратко рассказать о функциях и архитектуре замечательной системы 2600hz KAZOO.
Иллюстрации к статье выполнены в формате концепт-карт, содержат много мелких букв и подразумевают вдумчивое разглядывание
Проект (ранее называвшийся Whistle) назван в честь духового инструмента Kazoo [1]. Переименование произошло после того как авторы посчитали что их творение — это уже не просто свисток (whistle, англ.), а нечто большее, пригодное для использования в серьёзных приложениях.
Тема свиста отражена и в названии самой компании (2600hz). 2600hz — знаменитая звуковая частота, с помощью которой молодые Стив Возняк и Стив Джобс, обманывали телефонные коммутаторы [2]. Ранний продукт компании 2600hz, веб-интерфейс к FreeSWITCH и Asterisk, под названием BlueBox (синяя коробка), был назван как раз в честь устройства для обмана тогдашних телекомов.
Фактически, KAZOO — это первая открытая (open-source, MPL) масштабная облачная платформа виртуальной телефонии [4]. KAZOO — функционально богатая, распределённая, отказоустойчивая, масштабируемая, высокопроизводительная, управляемая через API платформа виртуальных АТС, предназначенная для операторов связи, которые хотят предоставлять расширенные услуги IP-телефонии и виртуальных офисов, но не хотят платить миллионы долларов за решения «от лидеров рынка».
Ниже я раскрою каждое из вышеперечисленных свойств (функциональность, распределённость, отказоустойчивость, масштабируемость, высокую производительность, управление через API) более подробно.
Основатели проекта — американцы Darren Schreiber и Patrick Sullivan, которые решили попробовать создать что-нибудь новое в области телекоммуникаций. Официальная история проекта, размещённая на wiki-сайте [3], гласит что Darren и Patrick встретились в ресторане в Сан-Франциско, где решили основать новый стартап и посмотреть к чему это приведёт. Так и родился проект Whistle.
К концу 2010г. в проекте уже было задействовано 6 человек, в 2011-м — уже около 20. Горячий интерес от компаний из отрасли телекоммуникаций позволил привлечь финансирование и не только продолжить разработку, но и запустить в 2012-м году собственный коммерческий сервис на базе своей же платформы.
В 2013-м году прошла первая конференция для пользователей и участников проекта, в компании к этому моменту уже было занято 30 человек.
Следующая конференция пройдёт в октябре 2014 года и автор этой статьи собирается выступить там с докладом об успешном опыте применения платформы и участия в проекте.
KAZOO использует несколько «проверенных временем и дорогами» компонент:
Компоненты активно взаимодействуют между собой и формируют цельную облачную VoIP-платформу.
Каждая виртуальная АТС (account) внутри KAZOO «из коробки» поддерживает следующие функции (на самом деле — полный джентльменский набор):
Оператор может ограничивать клиенту количество используемых транков различной направленности, предоставлять номерную ёмкость, следить за расходованием средств, и т.д. и т.п.
Так как управление станцией производится через API (подробнее ниже), система может быть оснащена совершенно произвольным «личным кабинетом», реализующим практически любую логику управления, от «мастера установки» до интерфейса с перетаскиванием пиктограмм (принятым в некоторых современных IP АТС). В состав системы входит демонстрационный интерфейс, увы, слабо подходящий для коммерческого использования.
Компоненты KAZOO могут (и должны) размещаться на разных узлах, а кластеры могут формировать географически распределённые узлы, связанные через WAN. При наличии высокоскоростных каналов связи, элементы кластера могут быть разнесены между различными площадками для дополнительной отказоустойчивости.
Компоненты системы отлично работают в виртуальном окружении и могут размещаться в частных, публичных или гибридных IaaS-облаках, что существенно упрощает развёртывание и эксплуатацию.
KAZOO можно поставить на одном сервере (чтобы «посмотреть»), однако даже лабораторное окружение для разработки лучше иметь в виде минимального кластера из 7 узлов, так как очень большой объём работы в проекте проделан именно с целью обеспечения работы распределённого окружения.
Практически все (за единственным исключением, в виде не имеющей fallback-пути связи Kamailio-RabbitMQ) компоненты системы могут быть многократно продублированы как с целью повышения производительности, так и с целью обеспечения надёжности и высокой доступности. Несколько прокси-серверов Kamailio балансируют трафик между серверами FreeSWITCH, которые управляются серверами eCallMgr. Множественные серверы приложений Whistle apps взаимодействуют с серверами eCallMgr через AMQP и обмениваются данными с серверами BigCouch, «закрытыми» HAPROXY. Сервисы API предоставляются серверами Whistle apps и могут быть скрыты за балансирующими proxy-серверами.
Всё общение с системами хранения и внешними скриптами происходит по протоколу HTTP, что позволяет добиться отказоустойчивости всего комплекса (используя PaaS-платформы или многоуровневые отказоустойчивые фермы серверов со скриптами).
О масштабируемости отчасти написано в предыдущем абзаце, достаточно добавить лишь то, что производительность, фактически, наращивается добавлением ресурсов. Накладные расходы при горизонтальном масштабировании минимальны, так построена архитектура.
Высокая производительность системы отчасти реализуется за счёт хорошей масштабируемости, однако все используемые компоненты сами по себе очень быстры:
Как говорят кулинары: «из набора хороших продуктов очень сложно приготовить плохое блюдо (конечно, если ты кулинар)». Автор проводил стресс-тестирования системы в различных конфигурациях и может подтвердить: сотни CPS и многие тысячи одновременных звонков в режиме виртуальной АТС (со всеми функциями) на кластере доступного (среднему оператору) ценового диапазона — это имеющая место быть здесь и сейчас реальность.
Уникальным качеством платформы KAZOO является её полнофункциональный REST API. Именно посредством этого API клиентские приложения управляют сущностями внутри виртуальных АТС, а администраторы могут изменять системные настройки.
Основные сущности, для которых конечным пользователям предоставляются API:
Администраторам через API, в частности, предоставляется доступ до системных настроек и компонент:
На основе KAZOO возможно сравнительно быстрое создание сервисов наподобие Grasshopper, RingCentral, SendHub, виртуальных АТС различной сложности и ёмкости. Разумеется, чтобы сделать полноценный сервис одной KAZOO недостаточно, но в качестве основы решения она подходит совершенно замечательно и позволяет заложить в архитектуру весьма приличный рост и получить широкие функциональные возможности.
KAZOO не проста. Это — довольно сложное решение для тех, кому уже нужен масштаб, который традиционно стоит очень и очень дорого. Отсутствие лицензионных платежей существенно снижает стоимость входа в бизнес виртуальной телефонии, особенно во время кризиса.
Проект очень быстро развивается. Не за горами поддержка SMS, улучшенная документация, интерфейс realtime-sockets и другие очень полезные и удобные функции. Компания 2600hz получает награды и регулярно отчитывается об успешных проектах и интеграциях. Будущее продукта видится светлым и радужным, авторы очень стараются на радость сообществу поддерживать open-source версию, за что им низкий поклон и большое спасибо.
Проект KAZOO — уникальная open-source облачная платформа операторской виртуальной телефонии, позволяющая операторам связи предоставлять своим заказчикам современные услуги виртуальных АТС, а также строить другие сложные телекоммуникационные решения (например, виртуальные мобильные сети).
«Большая картина» KAZOO выглядит примерно так:
Автор: Marod
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/voip/68547
Ссылки в тексте:
[1] Image: http://habrastorage.org/files/fad/270/3ba/fad2703bab044c749f4755a9f4b18842.png
[2] Image: http://habrastorage.org/files/4f3/090/012/4f3090012dbd4957b010039f6f14724b.png
[3] Image: http://habrastorage.org/files/956/f50/3ff/956f503ff05243ae82ab6477754335bd.png
[4] Источник: http://habrahabr.ru/post/234937/
Нажмите здесь для печати.