Организация облачного видеонаблюдения — это множество технических нюансов, которые требуется решать сразу же: видимость камер из-за NAT, активация и идентификация камер, шифрование и автоматический провижининг. Камера при подключении должна автоматически стать частью IT-инфраструктуры оператора. Плюс должна обеспечиваться связь с абонентом. Flussonic Agent решает эти проблемы.
Максим Клюшков @m_klyushkov
Tech support
Ой, у меня задержка. Часть 2
4 min
9KВ предыдущей статье мы говорили о сокращении задержки в трансляции видео. С отправкой разобрались, теперь поговорим о доставке.
+16
Flussonic Watcher для интернет-провайдера
5 min
7.7KПеренасыщенный конкурентный рынок телекома, дешевеющая связь и услуги, увеличивающиеся требования к сервису и обременение государства к инфраструктуре операторов приводят к тому, что падающая прибыль операторов не позволяет им расти как прежде. А кому-то совсем нездоровится. В борьбе за лояльность пользователей и увеличение среднего чека у операторов есть один понятный путь — предлагать своим клиентам дополнительные услуги.
Три самых популярных направления у телеком-операторов — это домашний и мобильный интернет и, конечно, цифровое телевидение. Размышляя над тем, что может быть интересно абоненту, стоит обратить внимание на уличное, подъездное и домашнее видеонаблюдение. Организовать подобный сервис в масштабах многоквартирного дома сам пользователь, при всем желании и даже для себя любимого, не сможет по ряду причин, так что подобная услуга может стать вашим козырем.
Три самых популярных направления у телеком-операторов — это домашний и мобильный интернет и, конечно, цифровое телевидение. Размышляя над тем, что может быть интересно абоненту, стоит обратить внимание на уличное, подъездное и домашнее видеонаблюдение. Организовать подобный сервис в масштабах многоквартирного дома сам пользователь, при всем желании и даже для себя любимого, не сможет по ряду причин, так что подобная услуга может стать вашим козырем.
+17
Сборка проектов с GitLab CI: один .gitlab-ci.yml для сотни приложений
8 min
76KTutorial
В статье решается задача управления описанием сборки для большого количества однотипных приложений. Чтобы в проекте заработал GitLab CI, нужно в репозиторий добавить файл
.gitlab-ci.yml
. Но что, если в сотне репозиториев это файл с одинаковым содержимым? Даже если разложить его по репозиториям один раз, то как его потом изменять? А что, если одного .gitlab-ci.yml
мало для сборки — нужны Dockerfile
или Dappfile
, разные скрипты и структура YAML-файлов для Helm? Как обновлять их?С чего начать решение задачи по сборке сотни однотипных приложений? Конечно же, посмотреть, можно ли GitLab CI указать использовать
.gitlab-ci.yml
из другого репозитория или компоновать .gitlab-ci.yml
из файлов в других репозиториях…+33
Курс молодого бойца PostgreSQL
13 min
541KTutorial
Хочу поделиться полезными приемами работы с PostgreSQL (другие СУБД имеют схожий функционал, но могут иметь иной синтаксис).
Постараюсь охватить множество тем и приемов, которые помогут при работе с данными, стараясь не углубляться в подробное описание того или иного функционала. Я любил подобные статьи, когда обучался самостоятельно. Пришло время
Данный материал будет полезен тем, кто полностью освоил базовые навыки SQL и желает учиться дальше. Советую выполнять и экспериментировать с примерами в pgAdmin'e, я сделал все SQL-запросы выполнимыми без разворачивания каких-либо дампов.
Поехали!
+75
Ой, у меня задержка
8 min
25KК нам часто приходят с такой проблемой, но надо сразу уточнить: обычно это мужчины, а мы занимаемся доставкой видео.
О чём же речь? Речь о сокращении задержки между тем, когда что-то происходит перед камерой и тем, когда это дойдет до зрителя. Понятно, что трансляция лекции по квантовой физике будет доходить дольше, чем комеди-клаб, но мы всё же занимаемся техническими деталями.
Прежде чем переходить к обсуждению задержек (оно же latency, delay), надо ответить на очень важный вопрос: а зачем вообще их сокращать. Сокращать задержку хочется почти всегда, но требуется не всегда.
Так, например, прямой эфир с острополитическим ток-шоу в принципе стоит минуты на 3 придержать от прямого эфира, что бы можно было оперативно отреагировать на резкое развитие дискуссии, а вот вебинар или удаленное управление беспилотником требует минимальной задержки чтобы люди могли спокойно перебивать друг друга, а груз падал ровно в цель.
О чём же речь? Речь о сокращении задержки между тем, когда что-то происходит перед камерой и тем, когда это дойдет до зрителя. Понятно, что трансляция лекции по квантовой физике будет доходить дольше, чем комеди-клаб, но мы всё же занимаемся техническими деталями.
Прежде чем переходить к обсуждению задержек (оно же latency, delay), надо ответить на очень важный вопрос: а зачем вообще их сокращать. Сокращать задержку хочется почти всегда, но требуется не всегда.
Так, например, прямой эфир с острополитическим ток-шоу в принципе стоит минуты на 3 придержать от прямого эфира, что бы можно было оперативно отреагировать на резкое развитие дискуссии, а вот вебинар или удаленное управление беспилотником требует минимальной задержки чтобы люди могли спокойно перебивать друг друга, а груз падал ровно в цель.
+39
Что творится с HEVC (h265)
4 min
73KВ своё время разработка кодека H264 стала настоящим прорывом, потому что получилось посадить за один стол людей, занимающихся телевидением, IP камерами, конференц-связью и родить стандарт, которого в целом хватило всем.
Напоминаю, что кодек — это не конкретный алгоритм, а описание форматов упаковки видео так, что бы упихнуться в предельно сжатое количество бит. Энкодер волен выбирать способы упаковки согласно стандарта кодека.
Так вот H264 — это сочетание хорошего кодека, хороших энкодеров и массы приличных декодеров. Но что же происходит с H265?
Напоминаю, что кодек — это не конкретный алгоритм, а описание форматов упаковки видео так, что бы упихнуться в предельно сжатое количество бит. Энкодер волен выбирать способы упаковки согласно стандарта кодека.
Так вот H264 — это сочетание хорошего кодека, хороших энкодеров и массы приличных декодеров. Но что же происходит с H265?
+31
«Ржавая» IP-камера: прошивка на Rust
4 min
24KДо появления ботнета Mirai только особо интересующиеся знали о том, что находится внутри обычных IP камер. В большинстве случаев там стоит обычный линукс, причем частенько с дефолтным рутовым паролем, а то и вообще без него: у нас в офисе стоит такая камера, с прошивкой от декабря 2016 года и беспарольным рутовым телнетом.
Но что же дальше, какой софт запущен на этом линуксе? Есть несколько классных статей datacompboy про поиск бага которого нет, есть ещё разрозненная информация, но в целом ситуация такая: на IP-камере стоит специально пропатченное ядро, которое дает доступ программе через специальную библиотеку к железу, выдающему сжатые видеокадры.
Грустная реальность в том, что очень часто этот софт написан далеко не лучшим образом. Достаточно сказать, что большинство камер, которые висят на улице очень страдают из-за большого расстояния до сервера, потому что авторы их прошивки освоили мастерство потерь данных по TCP.
Мы решили исправить эту ситуацию своей прошивкой, причем сделав ставку на Rust.
Но что же дальше, какой софт запущен на этом линуксе? Есть несколько классных статей datacompboy про поиск бага которого нет, есть ещё разрозненная информация, но в целом ситуация такая: на IP-камере стоит специально пропатченное ядро, которое дает доступ программе через специальную библиотеку к железу, выдающему сжатые видеокадры.
Грустная реальность в том, что очень часто этот софт написан далеко не лучшим образом. Достаточно сказать, что большинство камер, которые висят на улице очень страдают из-за большого расстояния до сервера, потому что авторы их прошивки освоили мастерство потерь данных по TCP.
Мы решили исправить эту ситуацию своей прошивкой, причем сделав ставку на Rust.
+62
Let’s Encrypt: раздаем видео по HTTPS в один клик
3 min
6.6KЧто такое Let's Encrypt знает, наверное, каждый читатель Хабрахабра, ведь опубликовано уже более 100 статей на эту тему. Большая часть из них, это инструкции по установке и настройке: какой пакет установить, какие строчки конфига поправить, какой скрипт разместить в crontab, как завести это на очередном веб-сервере и автоматизировать для docker и прочих модных технологий.
В нашем продукте — Flussonic, мы сделали, пожалуй, самый простой способ настройки Let's Encrypt, не требующий правки конфигов, просто нажатием кнопки «Сделай мне HTTPS».
-7
Хакинтош: разворачиваем macOS Sierra на Intel-PC подробно и понятно
13 min
1.1MTutorial
ПРОЧТИ МЕНЯ ПОЖАЛУСТО
1. Все файлы залиты на МЕГУ. Кто испытывает с ней проблемы — в комментариях перезалили на торрент.
2. Пожалуйста, не спрашивайте меня про установку Мака на ноутбуки. Прошу вас. Пожалуйста. Это очень геморройный процесс. Поставьте себе убунту и подключите тему Мака. Тот же экспириенс получите
3. Я на хабре редко отвечаю, пишите в вк по всем вопросам.
Если вы НЕ МОЖЕТЕ распаковать файлы на флешку, пожалуйста, отойдите от кливиатуры и срочно прочитайте книгу «Компьютер для чайников: подробное пособие как пользоваться ПК»!!!
1. Все файлы залиты на МЕГУ. Кто испытывает с ней проблемы — в комментариях перезалили на торрент.
2. Пожалуйста, не спрашивайте меня про установку Мака на ноутбуки. Прошу вас. Пожалуйста. Это очень геморройный процесс. Поставьте себе убунту и подключите тему Мака. Тот же экспириенс получите
3. Я на хабре редко отвечаю, пишите в вк по всем вопросам.
Данный мануал/гайд/etc написан для тех, кому лень собирать по кускам ту или иную информацию об установке «мака» на PC, все понятно и по полочкам.
+62
Как работают ИТ-специалисты. Максим Лапшин, основатель компании Flussonic
5 min
14KМы продолжаем расспрашивать специалистов о режиме труда и отдыха, профессиональных привычках, об инструментарии, который они используют, и многом другом.
Будет интересно выяснить, что их объединяет, в чем они противоречат другу другу. Возможно, их ответы помогут выявить какие-то общие закономерности, полезные советы, которые помогут многим из нас.
Сегодня наш гость — Максим Лапшин, основатель компании Flussonic. У него достаточно категоричный взгляд на то, каким должен быть бизнесмен в ИТ. Но еще интереснее его отношение к словосочетанию «хороший инженер-программист».
Будет интересно выяснить, что их объединяет, в чем они противоречат другу другу. Возможно, их ответы помогут выявить какие-то общие закономерности, полезные советы, которые помогут многим из нас.
Сегодня наш гость — Максим Лапшин, основатель компании Flussonic. У него достаточно категоричный взгляд на то, каким должен быть бизнесмен в ИТ. Но еще интереснее его отношение к словосочетанию «хороший инженер-программист».
+19
Какой бывает HTML5-стриминг (и почему mp4-стриминга не существует)
6 min
54KНередко клиенты спрашивают, умеет ли наш сервер «mp4-стриминг в HTML5». В 99% случаев спрашивающий не понимает о чём говорит. В этом сложно винить клиентов: из-за путаницы с терминами, технической сложности и большого разнообразия вариантов стриминга запутаться очень легко.
В этой статье мы расскажем, какой бывает HTML5-стриминг, какие варианты хорошие, и почему, чёрт побери, нельзя говорить «mp4-стриминг».
+41
Что такое Flussonic Watcher
5 min
9.7KЕсли у вас в голове бурлят идеи о том, как бы сделать историю, в которой будет много пользователей, много IP камер и куча профита с этого, то не проходите мимо — мы расскажем о том, как мы помогаем запускать сервисы массового видеонаблюдения на нашем Flussonic Watcher.
готовый програмный комплекс операторского класса, обеспечивающий многопользовательский доступ к видео и архивам с тысяч IP-камер через браузеры и мобильные устройства.
В состав Flussonic Watcher входит:
Flussonic Watcher это:
готовый програмный комплекс операторского класса, обеспечивающий многопользовательский доступ к видео и архивам с тысяч IP-камер через браузеры и мобильные устройства.
В состав Flussonic Watcher входит:
- видеостриминговое ядро — сервер Flussonic;
- веб-портал, предоставляющий доступ администраторам и пользователям к камерам и архивам видео без использования плагинов;
- мобильные приложения;
- агент на камеру для доступа к ней из-за NAT без проброса портов, мирайя и смс;
- система интеграции с внешними биллингами, серверами авторизации;
- набор готовых бизнес-процессов и тех-регламентов на подготовку и продажу камер для клиентского видеонаблюдения.
Зачем нужен Watcher?
+16
Строим полноценный IPTV/OTT сервис: Stalker Middleware
8 min
146KTutorial
В этой статье я расскажу как установить бесплатную IPTV/OTT Middleware с открытым исходным кодом от компании Инфомир, зачем она нужна и какие возможности предоставляет пользователям и администраторам.
Статья будет полезна небольшим операторам и даже пользователям. Можно «поднять» у себя дома Stalker и использовать его для просмотра* бесплатных IPTV и интернет каналов на приставке. Самому организовать EPG и запись телеканалов.
*Stalker Middleware не содержит никаких ссылок на сервисы или телеканалы,
не открывает доступ к какому-либо контенту, а лишь предоставляет удобный
интерфейс для администраторов сервиса и конечных пользователей.
Статья будет полезна небольшим операторам и даже пользователям. Можно «поднять» у себя дома Stalker и использовать его для просмотра* бесплатных IPTV и интернет каналов на приставке. Самому организовать EPG и запись телеканалов.
*Stalker Middleware не содержит никаких ссылок на сервисы или телеканалы,
не открывает доступ к какому-либо контенту, а лишь предоставляет удобный
интерфейс для администраторов сервиса и конечных пользователей.
+18
Как уберечь IP камеру от ботнета Mirai с Flussonic Agent
10 min
16KНедавняя серия рекордных DDoS атак под терабит здорово взбудоражила тех, кто вроде к такому уже привык. Вполне возможно, что ситуация повторится в ближайшее время, причем с существенно большей силой, ведь базовые причины возникновения такого мощного ботнета как Mirai не устранены.
На самом деле несекьюрность IP камер это в целом секрет Полишинеля и причин тому много: это исторически сложившаяся практика работы с ними, сложность доступа к ним, инертность производителей.
Я хочу рассказать о некоторых аспектах этой проблемы и какие могут быть шаги, чтобы снизить остроту этой проблемы.
Итак, сейчас в мире продаются миллионы IP камер. Первая же ссылка из интернета заявляет про 200 миллионов камер безопасности, и эта цифра выглядит вполне разумно.
Не все CCTV камеры — IP, до сих пор продается огромное количество аналоговых камер. Аналоговые камеры понятны, в своём роде удобны, предсказуемы: ведь в них нет никакого глючащего софта, всё аппаратное. Но даже несмотря на последний всплеск AHD и HDCVI, IP камеры в силу лучшего качества картинки и большей гибкости замещают аналог (прекрасный повод аргументированно обсудить столь интересный вопрос в комментариях).
На самом деле несекьюрность IP камер это в целом секрет Полишинеля и причин тому много: это исторически сложившаяся практика работы с ними, сложность доступа к ним, инертность производителей.
Я хочу рассказать о некоторых аспектах этой проблемы и какие могут быть шаги, чтобы снизить остроту этой проблемы.
Текущее положение дел
Итак, сейчас в мире продаются миллионы IP камер. Первая же ссылка из интернета заявляет про 200 миллионов камер безопасности, и эта цифра выглядит вполне разумно.
Не все CCTV камеры — IP, до сих пор продается огромное количество аналоговых камер. Аналоговые камеры понятны, в своём роде удобны, предсказуемы: ведь в них нет никакого глючащего софта, всё аппаратное. Но даже несмотря на последний всплеск AHD и HDCVI, IP камеры в силу лучшего качества картинки и большей гибкости замещают аналог (прекрасный повод аргументированно обсудить столь интересный вопрос в комментариях).
+33
Как стать профессиональным веб-разработчиком: практическое руководство
12 min
661KTutorial
Translation
Дорога длинна и трудна, но интересна и полезна!
Статья задумывалась как практическое руководство для желающих стать профессиональным веб-разработчиком. Я уже более 20 лет пишу код для веба. Я ежедневно работаю с веб-разработчиками и помогаю им. В статье я опишу, что вам нужно выучить, когда вам нужно это выучить и где взять информацию (чаще всего даже бесплатно). Затем я дам совет по получению реального опыта, и что самое важное – по получению денег за написание кода.
По статье разбросано множество ссылок на бесплатные и важные ресурсы. Для простоты я собрал их в PDF и разбил по категориям. Мне не платят за упоминания сайтов, ссылки на которые я привёл – я всего лишь хочу порекомендовать вам лучшие ресурсы, чтобы помочь вам достичь вашей цели.
Что нужно помнить:
1. Статью разрешается пролистывать
Руководство может помочь вам вне зависимости от вашего положения на дороге к профессиональной разработке. Прокрутите его к тому заголовку, который лучше всего описывает ваше сегодняшнее положение, и читайте оттуда. Если вы только начали этот путь, или пока размышляете об этом – последуйте совету Короля из «Алисы в стране чудес»:
Начните с начала, и продолжайте, пока не дойдёте до конца; и там уже остановитесь.
+27
Пулы потоков: ускоряем NGINX в 9 и более раз
15 min
88KTranslation
Как известно, для обработки соединений NGINX использует асинхронный событийный подход. Вместо того, чтобы выделять на каждый запрос отдельный поток или процесс (как это делают серверы с традиционной архитектурой), NGINX мультиплексирует обработку множества соединений и запросов в одном рабочем процессе. Для этого применяются сокеты в неблокирующем режиме и такие эффективные методы работы с событиями, как epoll и kqueue.
За счет малого и постоянного количества полновесных потоков обработки (обычно по одному на ядро) достигается экономия памяти, а также ресурсов процессора на переключении контекстов. Все преимущества данного подхода вы можете хорошо наблюдать на примере самого NGINX, который способен обрабатывать миллионы запросов одновременно и хорошо масштабироваться.
Каждый процесс расходует память и каждое переключение между ними требует дополнительных циклов процессора, а также приводит к вымыванию L-кэшей
У медали есть и обратная сторона. Главной проблемой асинхронного подхода, а лучше даже сказать «врагом» — являются блокирующие операции. И, к сожалению, многие авторы сторонних модулей, не понимая принципов функционирования NGINX, пытаются выполнять блокирующие операции в своих модулях. Такие операции способны полностью убить производительность NGINX и их следует избегать любой ценой.
Но даже в текущей реализации NGINX не всегда возможно избежать блокировок. И для решения данной проблемы в NGINX версии 1.7.11 был представлен новый механизм «пулов потоков». Что это такое и как его применять разберем далее, а для начала познакомимся с нашим врагом в лицо.
За счет малого и постоянного количества полновесных потоков обработки (обычно по одному на ядро) достигается экономия памяти, а также ресурсов процессора на переключении контекстов. Все преимущества данного подхода вы можете хорошо наблюдать на примере самого NGINX, который способен обрабатывать миллионы запросов одновременно и хорошо масштабироваться.
Каждый процесс расходует память и каждое переключение между ними требует дополнительных циклов процессора, а также приводит к вымыванию L-кэшей
У медали есть и обратная сторона. Главной проблемой асинхронного подхода, а лучше даже сказать «врагом» — являются блокирующие операции. И, к сожалению, многие авторы сторонних модулей, не понимая принципов функционирования NGINX, пытаются выполнять блокирующие операции в своих модулях. Такие операции способны полностью убить производительность NGINX и их следует избегать любой ценой.
Но даже в текущей реализации NGINX не всегда возможно избежать блокировок. И для решения данной проблемы в NGINX версии 1.7.11 был представлен новый механизм «пулов потоков». Что это такое и как его применять разберем далее, а для начала познакомимся с нашим врагом в лицо.
+70
Как перезагрузить сервер?
6 min
133KAbstract: описание видов ребута, рассказ про sysrq, ipt_SYSRQ, ipmi, psu.
Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.
Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере.
В этой статье: что мешает серверу перезагрузиться и как ему помочь.
Начнём с теории ребута.
При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял.
Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится.
Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.
Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере.
В этой статье: что мешает серверу перезагрузиться и как ему помочь.
Начнём с теории ребута.
При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял.
Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится.
+79
Свой облачный хостинг за 5 минут. Часть 2: Service Discovery
7 min
44KПривет Хабр! В предыдущей статье я рассказал как построить свой облачный хостинг за 5 минут, используя Ansible, Docker и Docker Swarm. В этой части я расскажу о том, как сервисы, запущенные в облаке, находят друг друга, как происходит балансировка нагрузки между ними и обеспечивается их отказоустойчивость.
Это вводная статья, здесь мы сосредоточимся на обзоре инструментов, которые будут решать проблему «обнаружения сервисов» в нашем облаке. В следующей части мы приступим к практике, поэтому я решил дать вам время поближе ознакомиться с ними.
+20
Synergy — программный IP-KVM, который смог
4 min
31KВступление
В первую очередь надо сказать, что этот продукт уже фигурировал на ресурсах ТМ в этой статье от 2008 года. Однако по прошествии примерно 7 лет картинки потерялись и материал кажется несколько устаревшим.
Этой же публикацией я постараюсь обновить краткий мануал, раскрыть некоторые моменты, оставшиеся «за кадром», да и просто популяризовать отличное решение, которое незаслуженно страдает от недостатка внимания.
+11
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity