Автоматизация контакт-центра. Часть 1. Голосовые роботы



Зачем автоматизировать контакт-центры
В ближайшие годы рынок контакт-центров будет расти вместе с требованием к качеству коммуникаций и скорости работы. Такие прогнозы дают аналитики мирового и российского рынка. Ключевые драйверы роста — это внедрение роботов и облачных сервисов. Они позволяют быстро запускать изменения и «дотянуться» до сложного в автоматизации участка работы колл-центра — коммуникаций с клиентом и контроля их качества.

Сервис Yandex SpeechKit от Яндекс.Облака даёт возможность автоматизировать кол-центр в двух направлениях:
  • Голосовые роботы для холодных обзвонов, опросов, информирования, подтверждения заказов, маршрутизации звонков. Многие транзакционные коммуникации с клиентами и простые скрипты могут быть заменены технологиями распознавания и синтеза речи Yandex SpeechKit.
  • Речевая аналитика (транскрибация) позволяет роботу вести «живой» диалог и автоматизировать контроль качества звонков.

В этой статье обсудим найм голосовых роботов в качестве операторов. У Яндекса и партнёров Яндекс.Облака уже накоплен достаточный опыт решения таких задач.

Задачи для голосовых роботов
О найме голосовых роботов стоит задуматься, если:
  • Требуется 1000+ типовых звонков в день.
  • Целевая нагрузка на оператора или telesale превышает 100 клиентов в день.
  • Объём звонков, связанных с обслуживанием, превышает продающие звонки.
  • При резком росте нагрузки колл-центр сложно масштабировать.
  • Операторы быстро выгорают, персонал увольняется.
  • Ресурсозатратно внедрять новые скрипты.

В таких ситуациях голосовые роботы — это решение, которое поможет колл-центру соответствовать запросам бизнеса и рынка. Голосовой робот особенно полезен, когда разговор укладывается в FAQ или простой скрипт. Популярная работа для голосовых роботов это:
  • маршрутизация входящих звонков (call steering);
  • телемаркетинг, холодный обзвон и кросс-продажи;
  • подтверждение заказа, записи о визите, согласование доставки;
  • он-бординг сотрудников или клиентов;
  • сбор обратной связи;
  • информирование об акциях и событиях;
  • сбор показаний и данных (контактные данные, счётчики).
Передача этих задач роботу позволяет в несколько раз сократить расходы на аутсорсинг колл-центра и обзванивать десятки тысяч контактов в разы быстрее по сравнению с обзвоном живыми людьми.

Почему портал Зарплата.ру выбрал робота-оператора
Ранее мы уже писали об опыте портала Зарплата.ру. Это одна из трёх крупнейших интернет-площадок в России по поиску работы и подбору персонала. Площадка использовала робота, чтобы убедить соискателей и работодателей поддерживать актуальные резюме и описание вакансий.

Попытка наладить обзвон соискателей и работодателей силами операторов была неэффективной из-за типичных сложностей с содержанием штата и управлением.

И поскольку ни рассылка СМС, ни использование интерактивного голосового меню не смогли заменить дорогостоящего оператора, Зарплата.ру продолжила поиск технологии, которая сможет подсказать клиентам, что им пора обновить резюме или вакансию.

В качестве решения внедрили робота для обзвона клиентов на базе технологий Yandex SpeechKit и Dasha.ai, который делает 10000 звонков в сутки. В результате за три месяца актуализировали базу на 100%.

Я могу откровенно сказать, что в нашей команде был определённый скепсис на тему автоматизации работы с клиентами. Ведь как для любого бизнеса, для нас это критическое направление. Но уже на этапе тестирования стало понятно, что мы сделали правильный выбор. В ходе тестов мы сравнивали конверсию звонков с нашей аккаунт-службой и стало видно, что эффективность лишь немного уступает живому человеку
делится Евгений Васильев, директор Зарплата.ру

Как работают голосовые роботы на базе Yandex SpeechKit от Яндекс.Облака
Сервис Yandex SpeechKit от Яндекс.Облака благодаря функциям распознавания и синтеза речи даёт роботу возможность «слышать» и «говорить». Под ваш запрос партнёры Яндекс.Облака могут настроить робота, чтобы разговор был похож на общение с человеком: робот будет по-разному «прислушиваться» к ответам, например, «воспринимать» как ответ не только «да», но и «ага», «ну, давайте», «конечно», «продлевайте»; и даже может перебивать вас, а вы его.

Частое решение для телемаркетинга и продаж, когда вместо синтезированной речи используют аудио-фразы, предварительно записанные диктором. Это тоже имитирует работу человека и повышает конверсию продаж. В сценариях, где робота можно не прятать, используют синтез речи.

Преимущества Yandex SpeechKit от Яндекс.Облака для автоматизации КЦ
Качество распознавания и естественное звучание

Модель распознавания в том числе обучена на данных из поиска, поэтому у наших роботов богатый «словарный запас». Yandex SpeechKit складывает речь более чем из миллиона отдельных фонем, а интонация задаётся нейросетью, обученной на множестве примеров из реальной жизни. Поэтому, когда система воспроизводит текст, результат не режет слух. Именно на основе SpeechKit работает Алиса — голосовой помощник Яндекса.

Быстрый запуск
Для обмена данными с сервисом предусмотрен HTTP API. Поэтому вам не придется разворачивать и поддерживать свою инфраструктуру, чтобы в сжатые сроки реализовывать нужные функции. Благодаря облачным технологиям, удобному API и поддержке партнёров Яндекс.Облака можно стартовать очень быстро. За месяц можно запустить масштабный федеральный проект.

Совместный проект помогает нам улучшить технологии синтеза и распознавания речи. Кроме того, он позволяет на практике оценить, как пользователи реагируют на мужской и женский голоса виртуального оператора. Некоторые исследования утверждают, что пользователи лучше реагируют именно на мужской голос
отмечает Андрей Савицкий, руководитель общегородского контакт-центра Департамента информационных технологий города Москвы

Запуск и внедрение или найм голосового робота
У партнёров Яндекс.Облака по автоматизации колл-центра накоплен достаточный опыт для внедрения и доработки голосовых роботов на базе Yandex SpeechKit. Наши партнёры помогут на всех этапах найма робота.

Для найма робота на роль оператора необходимо:
  • Адаптировать текущий сценарий звонков для робота. Описать скрипт, проработать ветки диалога. Определить задачи и возможности робота по обработки разных веток звонков.
  • Подключить и настроить для внутреннего отдела методологии рабочую область для правки текстов и логики скрипта.
  • Настроить интеграцию с телефонией и СRM, учётными системами.
  • Настроить отчётность о процессе и результатах работы робота.
Отдельно скажем об интеграции. Робот, синхронизированный с внутренними системами и приложениями, может самостоятельно обрабатывать простые обращения клиентов и «сообщать» им информацию в моменте. Интеграция также позволяет учитывать в ответах историю предыдущих обращений, передавать звонок живому оператору при необходимости вместе с информацией об обращении.

Яндекс.Облаку исполнился 1 год!



Ровно год назад, 5 сентября 2018 года, Яндекс официально объявил о запуске платформы Яндекс.Облако. За год наше Облако взлетело и выросло. Всемирно известные бренды и небольшие компании запустили на платформе свои проекты. Мы вспомнили главные события и самые интересные факты за прошедший год, и хотим поделиться с вами. Посмотрите, как всё начиналось. Спасибо, что вы с нами!

Вспомнить, как прошел первый год Облака
cloud.yandex.ru/events/1-year?utm_source=blog-site-link&utm_campaign=1-year

Опыт сервиса «Где мои дети»: перенос геоданных в Yandex Managed Service for ClickHouse



О сервисе
Сервис «Где мои дети», принадлежащий компании «Рефреш», позволяет родителю в любой момент времени определять, где находится его ребенок. Для работы сервиса нужна оперативная обработка и хранение огромного количества зашифрованных геоданных. На данный момент сервис «Где мои дети» локализован на 32 языка и имеет зарегистрированных пользователей в 209 странах мира, в 30 из которых зарегистрировались более 10 000 человек. Сейчас у приложения 800 000 активных пользователей, при этом на Россию и СНГ приходится лишь половина из них, вторая половина преимущественно из таких стран, как Бразилия, Турция, Израиль, США и Индия.
findmykids.org

Рубеж масштабирования
Сервис «Где мои дети» предлагает разные возможности. Например, при помощи приложения можно позвонить ребенку, и он услышит звонок, даже если он забыл отключить бесшумный режим после урока. А чтобы узнать, закончился ли у ребенка урок, родитель может прослушать звук вокруг его телефона. Но основной функцией приложения является отслеживание местоположения ребенка плюс взаимосвязанные опции вроде уведомления о выходе ребенка из обозначенной зоны и автоматического сохранения истории посещений. Сервис использует функцию GPS-трекинга. В качестве клиентского устройства может выступать смартфон с установленным на него приложением либо GPS-аксессуар в виде наручных часов. На данный момент клиентские устройства присылают более 1 000 наборов зашифрованных геоданных каждую секунду. Сервис подошел к тому рубежу, когда дальнейшее масштабирование становилось невозможным из-за технологических ограничений текущей инфраструктуры. В итоге перед командой встала необходимость решения следующих задач:
  • Сократить расходы на серверную инфраструктуру.
  • Повысить стабильность решения за счет меньшей требовательности к скорости дисков.
  • Организовать масштабирование ресурсов для хранилища геоданных «на лету».
  • Получить возможность выполнять более сложные запросы и извлекать больше пользы из данных.

Переход на Yandex Managed Service for ClickHouse
Решение о переходе на Yandex Managed Service for ClickHouse было обусловлено предшествующим опытом. Изначально в компании геоданные хранили в MySQL, используя виртуальные серверы одного из облачных провайдеров. Несмотря на использование самых дорогих облачных дисков на базе SSD, вскоре был достигнут барьер производительности записи текущего дискового решения. Следующим этапом стал горизонтальный шардинг данных на несколько БД серверов, но даже при непиковой скорости записи специалисты компании периодически сталкивались с тем, что производительность дисков в облаке некоторых серверов сильно деградировала без каких-либо причин, что приводило к аварийным ситуациям. В разные периоды времени с разной частотой специалисты компании сталкивались с ситуацией, когда очередь на запись начинала расти быстрее, чем рассасываться. Приходилось экстренно переносить данные на другие шарды и жертвовать надежностью хранения в угоду временному увеличению производительности. Помимо этого, в определенный момент обнаружилось, что только на облачные диски приходится более половины всех расходов на инфраструктуру и оборудование.

Несмотря на сложности, компания не хотела переходить на выделенные серверы, чтобы не отказываться от возможности удобного масштабирования ресурсов и их администрирования. Выбор пал на ClickHouse. Во время тестирования были выполнены следующие шаги:
  • создание тестовой учетной записи и изучение архитектуры, которая будет оптимальна для текущих задач;
  • создание тестового кластера, нагрузочное тестирование записи и извлечения данных.
При тестировании запросы были аналогичны тем, которые выполнялись в старом хранилище, а результаты были аналогичны или лучше. Например, появилась возможность выполнять запросы на агрегацию больших данных, которые без дополнительного инструментария раньше выполнить было просто невозможно.

После получения положительных результатов началась непосредственная реализация проекта:
  • создание аккаунта для организации, формальные операции;
  • создание кластера, тестирование работы хранилища в реальных условиях (настройка записи данных в старое хранилище и ClickHouse одновременно);
  • перенастройка сервиса на использование данных из нового хранилища;
  • миграция данных из старого хранилища в новое;
  • переключение подсистемы на работу только с новым хранилищем.
Миграцию провел один разработчик, трудозатраты составили менее 60 человеко-часов.

Результаты
По итогам проекта сразу удалось решить три из четырех поставленных задач. Затраты на решение для хранения геоданных сократились более чем в три раза. С момента переезда в Яндекс.Облако uptime сервиса составляет 100%, повысились удобство работы с геоданными и стабильность решения в целом. В настоящий момент сотрудничество продолжается. После того как в компании попробовали ClickHouse для хранения геоданных, было принято решение перевести в него данные внутренней продуктовой аналитики.

Мнение
Техподдержка Яндекс.Облака быстро решала технические вопросы и консультировала специалиста, клиентские менеджеры оперативно закрывали организационные вопросы. Эффективная коммуникация, удобный инструмент для управления облаком и достаточно полная документация позволили провести тестирование и миграцию на новое хранилище за один месяц
Григорий Гудименко, технический директор компании „Рефреш“

Введение лимитов на IOPS и пропускную способность сетевых дисков



Мы активно работаем над обеспечением гарантий производительности сетевых дисков. Наша цель — сделать производительность виртуальных машин, интенсивно использующих диски, максимально предсказуемой.

Чтобы обеспечить гарантии производительности, нам нужно задать верхний уровень потребления вычислительных ресурсов. В качестве первого шага для определения этого уровня 6 сентября мы введём ограничения на параметры сетевых SSD-дисков.

Немного о производительности сетевых дисков
Производительность диска зависит от нескольких параметров:
  • максимальное количество операций чтения и записи в секунду (input/output operations per second, IOPS);
  • пропускная способность, в МБ/сек (bandwidth);
  • размер запроса на чтение/запись;
  • время отклика диска, в миллисекундах (latency, ms);
  • объем самого диска.
Эти параметры связаны между собой: значение IOPS зависит как от характеристик диска, так и от совокупного значения пропускной способности и размера запроса в байтах. Производительность диска зависит от его объема — чем больше размер диска, тем выше значения IOPS и пропускной способности.
  • В случае недостаточно высокой производительности стоит увеличивать размеры дисков, даже если вы не планируете использовать все дисковое пространство.
  • Для получения максимальной производительности рекомендуется отправлять запросы к диску асинхронно (iodepth > 1).

Что меняется
Мы введем лимиты:
  • на количество операций чтения и записи (input/output operations per second, IOPS);
  • на пропускную способность (bandwidth) сетевых SSD-дисков.
Если у вас на момент введения ограничений будут диски, работающие со значениями IOPS и пропускной способности, превышающими лимиты, мы предусмотрели плавный переход на новую схему.

Дальнейшие шаги
  • Введение аналогичных ограничений для HDD-дисков.
  • Добавление ограничений, привязанных к количеству vCPU виртуальной машины.
  • Введение гарантий на IOPS и пропускную способность.
Подробности о вводимых ограничениях читайте в документации.

Стартовые гранты в Облаке — сентябрьское обновление



С 1 сентября начнут действовать новые правила использования стартовых грантов в Облаке. Рассказываем, что изменилось и почему мы так сделали.

Что такое стартовые гранты в Яндекс.Облаке
Стартовый грант для новых пользователей Облака — это возможность познакомиться с работой сервисов, оценить возможности платформы и лучше понять, как применять Облако в будущем. Стартовые гранты предоставляются при регистрации нового аккаунта. Мы начали предоставлять гранты одновременно с запуском платформы в открытый доступ, в декабре 2018 года.

Как условия выдачи стартовых грантов поменяются с 1 сентября
Размер грантов останется прежним: каждому новому пользователю, при создании аккаунта, мы будем начислять четыре тысячи рублей. Сумма по-прежнему одинаковая для личных и бизнес-аккаунтов.

Изменились правила расходования стартового гранта, теперь он состоит из двух частей. На Compute и Marketplace можно будет потратить не более одной тысячи рублей, на все остальные сервисы — не более трех тысяч рублей. Исключение — бизнес-аккаунты, на которых в качестве способа оплаты выбран банковский перевод.

Начать пользоваться стартовым грантом нужно в течение 60 дней после получения, срок действия завершается, когда использована хотя бы одна из его частей. Подробно про сроки и порядок использования стартового гранта читайте здесь.

Почему мы обновили стартовые гранты?
Во-первых, за год мы в три раза увеличили количество сервисов в Яндекс.Облаке. У нас есть управляемые базы данных, синтез и распознавание речи, визуализация данных, другие платформенные сервисы. Мы хотим, чтобы стартовый грант помогал новым пользователям активнее применять технологии, использовать их потенциал в своих проектах.

Во-вторых, мы хотим ограничить недобросовестное использование ресурсов Облака, когда новый аккаунт создается исключительно ради бесплатного периода и нагружается, например, майнингом, а по завершению гранта забрасывается.

И в заключение. Мы всегда готовы и открыты к диалогу. Если у вас проект, который сделает мир лучше и вам нужно больше ресурсов для знакомства и проверки Облака — свяжитесь с нами, мы даем гранты не только новым пользователям!

Ян Лещинский,
руководитель платформы Яндекс.Облако

Опыт Dasha.ai: как технологии распознавания речи Yandex SpeechKit помогли Зарплате.ру актуализировать клиентскую базу на 100%



О Зарплате.ру
Зарплата.ру входит в Hearst Shkulev Digital Regional Network и является одной из трех крупнейших интернет-площадок в России по поиску работы и подбору персонала. База сотрудников содержит около 7 000 000 резюме по всей России. В свою очередь, специалисты могут выбирать предложения работы из 114 000 опубликованных вакансий. Каждый день работодатели добавляют более 2 500 новых вакансий.

Задачи: убедить соискателей и работодателей обновлять информацию
Чтобы поиск специалиста был удобным и быстрым, а результаты релевантными, крайне важна актуальность резюме. Они должны всегда содержать достаточно информации о специалисте, полно описывать опыт, включать все необходимые настройки. То же самое и с вакансиями. Нужно, чтобы рекрутер вовремя обновлял предложение работы.

Ранее база поддерживалась в актуальном состоянии традиционными способами. Требовалось постоянно обращаться к живым людям и побуждать их совершать действия:
  • резюме: если по истечении месяца после размещения соискатель еще ищет работу, информацию нужно обновить, если нет — архивировать или удалить;
  • вакансия: если работодатель не закрыл позицию, нужно предложить продление размещения.
К началу проекта примерный объем позиций, требовавших актуализации, дошел до 10 000 в сутки. В этом году была внедрена система для обзвона клиентов на основе технологий Yandex SpeechKit и Dasha.ai.

Почему выбрали робота-оператора
Попытка наладить обзвон силами операторов не была эффективной из-за типичных сложностей с содержанием штата и управлением. После этого были испробованы и показали себя неэффективными две существующие технологии:
  • рассылка СМС не дала отклика;
  • при использовании IVR люди не хотели долго слушать текст и разговаривать с интерактивным меню.
Поскольку ни рассылка СМС, ни использование интерактивного голосового меню не смогли заменить дорогостоящего оператора, Зарплата.ру продолжила поиск технологии, которая сможет подсказать клиентам, что им пора обновить резюме или вакансию.

Робот-оператор. Оригинальное решение для обзвона клиентов создала компания «Dasha.AI». Система состоит из трех частей.
  1. Распознавание речи — за это отвечает облачная технология Yandex SpeechKit.
  2. После распознавания происходит обработка информации с помощью фирменной технологии Dasha.ai, извлечение из нее смысла и выбор ответа согласно скрипту.
  3. Ответ собеседнику (для этого диктор записал 30 фраз).

Этапы реализации
Для компании Зарплата.ру актуализация базы вакансий и базы резюме — это две задачи, но решены они были одним и тем же путем, поэтому в данном проекте объединены два кейса.

Во время пилота шел обзвон работодателей, в процессе которого удалось решить задачу увеличения объема повторных продаж. В ходе тестов проводилось сравнение конверсии звонков от Dasha.ai с аккаунт-службой — и стало видно, что Dasha.ai показывает эффективность, лишь немного уступающую живому человеку. После этого опыт был расширен.

Основной этап реализации проекта занял около трех месяцев:
  • После получения скрипта разговора от заказчика создана тестовая модель.
  • Проведены тестовые звонки: 60% состоявшихся разговоров заканчивались успешно с первого раза, в оставшихся случаях робот не понимал собеседника или разговор шел не туда.
  • За 8 итераций модели добились снижения количества ошибок до 10%.
  • К концу трех месяцев была создана модель, эффективность которой в процессе обзвона оказалась всего на 6,7% ниже, чем у оператора, живого человека.
Модель постоянно улучшается, апдейты выходят на ежемесячной основе, при этом точность работы с соискателями улучшается быстрее, чем было запланировано. Это зависит от объемов информации. По базе резюме большие объемы, по базе вакансий — меньше, в связи с этим дольше копится статистика ответов и модель улучшается медленнее.

Технические особенности: увеличить скорость распознавания
Использование технологии Yandex SpeechKit в режиме потокового распознавания (распознавание речи в реальном времени) — это стандартный процесс, все вопросы использования API описаны в документации. Тем не менее инженеры Яндекс.Облака и «Даша.АИ» отметили важный пункт — скорость распознавания. Изначально показатель Latency на коротких фразах (ответы «Да» или «Нет») составлял до 600 мс (обычно этот показатель составляет до 200 мс). В процессе работы, с одной стороны, инженерами была проведена оптимизация настроек, с другой — серверы Dasha.ai перенесены ближе к серверам Яндекса. В итоге сейчас распознавание происходит со скоростью 0—150 мс.

Итоги
По итогам внедрения системы для обзвона клиентов на базе технологий Yandex SpeechKit и Dasha.ai. портал Зарплата.ру сумел закрыть несколько существовавших вызовов:
  • масштабировать задачи, которые было невозможно выполнить из-за нехватки людей, и сократить издержки на содержание и обучение сотрудников call-центра, при этом произошло сокращение нагрузки на операторов первой линии и перераспределение на более высокоинтеллектуальные задачи;
  • избежать влияния человеческого фактора и появления ошибок в скриптах;
  • получить всегда актуальную базу данных, а также возможность составления аналитики и прогнозирования на основе кратких настраиваемых отчетов;
  • увеличить продажи за счет обзвона всех потенциальных клиентов, в том числе сократить временные затраты менеджеров продаж за счет общения только с лидами отфильтрованными Dasha.ai.

Поводы начать использовать Yandex Managed Service for Redis



Redis используют Airbnb, Slack, Twitter и Uber, а в недавнем опросе Stack Overflow Developer Survey 2019 первое место в категории самая любимая БД разработчиков с показателем 71,3% занял именно Redis. На платформе Яндекс.Облако сервис Yandex Managed Service for Redis доступен в публичном режиме с апреля. Рассказываем о причинах популярности, планах развития и возможности начать пользоваться со скидкой.

Что умеет Redis
Redis — это система управления БД класса NoSQL. Название является сокращением от remote dictionary server, то есть это сервер словарей, работающий со структурами данных типа «ключ — значение». Система целиком работает в оперативной памяти, но при этом умеет сохранять данные на диск, написана на Си и является решением с открытым исходным кодом. Важно, что Redis очень быстрый, многие операции хорошо оптимизированы и работают константное время. Система легко справляется с нагрузкой в несколько сотен тысяч запросов в секунду. Сейчас Redis чаще всего используется в качестве хранилища. Одно из главных преимуществ по сравнению с Memcached, которое используется для кэширования данных в оперативной памяти, — поддержка множества интересных структур данных, для которых доступны богатые API. Например, можно хранить координаты и делать запрос по радиусу. Также в списке структур данных:
  • Строки
  • Словари
  • Списки
  • Множества
  • Сортированные множества
  • Битовые маски
  • Геоданные
  • Потоки
  • HyperLogLog
С точки зрения функциональности в первую очередь стоит отметить персистентость, о которой мы скажем ниже. Система поддерживает асинхронную репликацию, атомарные изолированные транзакции и пакетную обработку команд. Redis дает возможность задавать произвольное время жизни ключей и настраивать политики вытеснения ключей, что будет полезно, когда вы достигли лимита памяти. В системе реализован фреймворк типа издатель/подписчик, можно прямо в запросе посылать Lua-скрипты или использовать их как хранимые процедуры, а также есть возможность подключать расширения.

Redis в подаче Яндекса
Yandex Managed Service for Redis использует последнюю версию 5.0.4, все критически важные обновления устанавливаются своевременно. Реализованы Multi-AZ репликация (Cross-Datacenter) и автоматический failover на основе стандартного решения Sentinel. Также Sentinel используется как сервер конфигураций: клиент подключается к Sentinel и узнает, где сейчас текущий мастер. Yandex Managed Service for Redis позволяет создавать БД в нескольких конфигурациях:
  • Одноузловая (по умолчанию) — для реализации кэша или работы с не критически важными данными, например, постоянно обновляемыми счетчиками.
  • Автоматический отказоустойчивый кластер (от 3 хостов), когда требуется гарантия надежности работы.
По умолчанию в Yandex Managed Service for Redis заданы некоторые ограничения:
  • Maxmemory=75% RAM: 25% памяти зарезервированы под служебные процессы, различные агенты, клиентские буферы.
  • Rep-backlog-size=10% RAM: для кластера из нескольких хостов 10% памяти аллоцируется под буфер репликации, чтобы реплики успевали синхронизироваться с мастером. Яндекс берет на себя заботу о безопасности сервисов, и в Yandex Managed Service for Redis ей также уделено усиленное внимание, в связи чем на каждом хосте установлен firewall, используется AppArmor и стандартная аутентификация по паролю, запрещены некоторые опасные команды. На данный момент доступ дается только из виртуальной сети, которая была указана при создании, также возможен доступ по FQDN.

Yandex Managed Service for Redis для пользователя
Два самых популярных сценария использования Redis — это кэш, который помогает основному бэкэнду хранилища справляться с нагрузкой, либо хранилище сессий состояний. Но мы бы хотели обратить внимание и на такие сценарии, как брокер сообщений, сервер очередей, таблица лидеров, хранилище геоданных. В зависимости от потребностей клиентам Yandex Managed Service for Redis доступны два вида хостов:
  • Burstable (2/4 Гб) с низкими гарантиями ресурсов для сценариев, не предполагающих отказоустойчивости, например, для тестирования.
  • High-Memory (8-256 Гб) специальные классы хостов, которые оптимизированы по памяти, созданные для Redis.
Yandex Managed Service for Redis позволяет удобно масштабироваться, увеличивая или уменьшая flavor в несколько кликов.

Из настроек в настоящий момент пользователи могут менять только две:
  • Политика вытеснения ключей (eviction-policy) — важна в сценарии реализации кэша, позволяет выбирать наименее часто используемые ключи, случайные, последние и т. п.
  • Тайм-аут для спящих клиентов (timeout).
В веб-консоли Yandex Managed Service for Redis можно наблюдать за ключевыми метриками, отслеживать потребление ресурсов, количество подключенных клиентов, живость хостов. Отдельно показано потребление ресурсов каждого хоста.

Автоматическое резервное копирование осуществляется раз в сутки ночью, глубина хранения составляет 7 дней. Предусмотрена возможность выполнения резервного копирования по требованию. Бэкап представляет собой зашифрованный RDB-snapshot, который можно восстановить в новом кластере.

Планы по развитию функциональности Yandex Managed Service for Redis
Команда Yandex Managed Service for Redis постоянно работает над улучшением возможностей сервиса. В планах развитие средств диагностики, повышение удобства использования, более тонкая настройка кластера (помимо политики вытеснения ключей), гибкая работа с бэкапами, SSL/TSL шифрование. Уже в работе отказоустойчивая конфигурация с двумя хостами, а также поддержка Redis Cluster, который позволяет горизонтально масштабировать Redis не только на чтение, но и на запись.

Совет
Начните знакомство с Yandex Managed Service for Redis с изучения документации.
Вы можете получить скидку до 40% на пользование Yandex Managed Service for Redis в течение целого года. Как это сделать, читайте здесь.

Опыт electroNeek: интеграция Yandex Vision и платформ Robotic Process Automation при оценке пакета документов



Об electroNeek
Платформа программной роботизации (RPA, Robotic Process Automation) electroNeek является набором программ, которые устанавливаются на компьютер пользователя или на сервер. Эти программы позволяют пользователю без существенных знаний языков программирования запустить автоматизацию процессов любой сложности путем создания на основе бизнес-инструкции ботов, работающих на ПК или в Облаке. Работает electroNeek в сфере «программной роботизации» процессов, которую исследовательская компания Gartner недавно назвала самым быстрорастущим рынком корпоративного IT. С выходом технологии Yandex Vision (OCR, Optical Сharacter Recognition) создатели RPA-платформы увидели для себя новые возможности. Сотрудничество развивалось, и теперь пользователи electroNeek имеют возможность абсолютно бесплатно обрабатывать изображения с помощью Yandex Vision, вызывая сервис прямо из интерфейса программы.
www.electroneek.ru/
cloud.yandex.ru/services/vision

Задача компании: сделать работу с бумагами быстрой и точной
Заказчиком нового решения electroNeek стала российская девелоперская компания, которой требовалось ускорить и оптимизировать документооборот. Дело в том, что для покупки квартиры, перед тем как процесс оформления будет считаться начатым, потенциальному покупателю необходимо заполнить и подписать 12 документов, после чего они обязательно сканируются и отправляются на проверку. Ранее просмотром отсканированных договоров занимался целый отдел из шести сотрудников. Переход на роботизированный сервис стал главной целью проекта, в рамках которой выделены две задачи:
  • повысить производительность труда сотрудников,
  • автоматизировать бизнес-процессы.

Решение: робот + Yandex Vision
Работа команды electroNeek с заказчиком шла по типовому сценарию:

Процесс, который будет автоматизирован, имеет рабочую инструкцию. Первая задача, которую выполняет аналитик или программист, — перевод этой инструкции в алгоритм. Пример алогоритма проверки документов:


Далее в ПО electroNeek Studio, которое называется Dev Tool, алгоритм переводится в рабочий код робота. На этом этапе работа с алгоритмами и кодом завершается.

Команда выбирает, какой робот им нужен:
  • Локальный робот, который берет контроль над мышкой и клавиатурой. Он представляет собой исполнительный файл на компьютере сотрудника.
  • Виртуальный робот — это либо виртуальная машина, которой управляет виртуальный сотрудник (также берет контроль над мышкой и клавиатурой), либо облачный алгоритм, настроенный на определенные триггеры (например, пришло электронное письмо). В данном случае никакое ПО не устанавливается на компьютер сотрудника, оно находится на сервере и автоматически реагирует на заданные триггеры.
Робот начинает отрабатывать алгоритм, в функционал которого входят практически любые задачи с корпоративными системами (например, внести данные в CRM, отправить уведомление о полученном письме нужным сотрудникам и т. д.).

После сканирования документа Yandex Vision всю информацию в нем. Полученные данные не требуется отсортировывать, так как с помощью electroNeek данные автоматически заносятся в корпоративные базы данных предприятия, что ускоряет процесс продажи квартиры.

Реализация проекта от начала до старта заняла две недели, в процессе участвовало два разработчика.

Результаты
После внедрения роботов задачи по автоматизации процессов были выполнены. Итоги пилотного периода:
  • время проверки документов сократилось с 30 минут до 1 минуты;
  • вместо 6 человек, проверявших отсканированные документы, остался один сотрудник, обслуживающий систему (при этом его годовая зарплата и затраты на аренду робота составили лишь четверть от ФОТ существовавшего отдела).
Внедренная связка OCR+RPA позволила перенаправлять силы работников с рутинных и повторяющихся заданий на более интересные аналитические задачи, а бизнесу позволила заработать больше денег за счет роста оборота без увеличения численности персонала.

Мнение
Сочетание таких мощных самих по себе инструментов, как Yandex Vision и electroNeek, позволяет реализовать еще больший возврат на инвестиции в автоматизацию. При этом синергия этих двух продуктов настолько велика, что мы решили сделать нативную интеграцию с Yandex Vision базовым функционалом нашего продукта. Пользователю electroNeek не нужно даже создавать отдельной учетной записи для работы с OCR, не потребуется проходить процедуры согласования закупки на стороне заказчика. Фактически мы создаем готовую связку для автоматизации процессов любой сложности. С самого начала пути Yandex Vision нам стали очевидны технологические преимущества этого решения при работе с документами на русском и казахском языках, что и определило вектор нашего стратегического партнерства с командой Яндекс.Облако
отмечает Сергей Юдовский, CEO electroNeek Robotics

Возможности
Наибольшей популярностью совместное использование Yandex Vision и electroNeek пользуется у клиентов при работе с финансовыми документами и договорами. Боты распознают информацию из счетов, накладных, договоров, таблиц и других финансовых документов и автоматически заносят ее в учетные и управленческие системы — 1С и прочие. А также готовят финансовые проводки, строят или обновляют excel-таблицы, посылают на основе считанной информации сообщения в мессенджерах.

Домены Yandex Object Storage внесены в Public Suffix List



В Яндекс Облаке мы постоянно улучшаем безопасность предлагаемых сервисов.

Недавно была одобрена заявка на включение наших доменов в Public Suffix List (список публичных
  • суффиксов). Список включённых доменов:
  • yandexcloud.net
  • storage.yandexcloud.net
  • website.yandexcloud.net

Что меняется
Указанные домены получают свойства доменов верхнего уровня (top-level domain, TLD), как, например, домены .ru,.рф, .com. Это приведет к следующим изменениям:
  • Браузеры не будут сохранять сookie, установленные на домены Yandex Object Storage. Это блокирует возможность влиять на логин-сессию пользователя.
  • Браузеры не позволят поменять заголовок запроса origin страницы на корневые домены. Это лишает злоумышленников возможности получать доступ к контенту через смену origin страницы.

Ниже мы подробно рассказываем о том, какие возможные угрозы безопасности блокируются включением доменов в список публичных суффиксов.
cloud.yandex.ru/docs/storage/concepts/bucket

Управление файлами cookie для доменов Yandex Object Storage
Если раньше на сайте в Yandex Object Storage c помощью кода ниже можно было установить значение сookie для всех бакетов сразу, то теперь это не сработает.
<body>
    <script>document.cookie = 'CookieName=CookieValue;MaxAge=300;Domain=website.yandexcloud.net'</script>
</body>

Добавляя и управляя сookie на родительском домене можно манипулировать сессией, в которой окажется залогинен пользователь, или влиять на контент, который он видит. Блокируя эту возможность мы повышаем безопасность Yandex Object Storage.

Изменение заголовка запроса origin страницы
Теперь браузеры не позволят менять заголовок запроса origin страницы на корневые домены. Код ниже не сработает:
<body>
    <script>document.domain='yandexcloud.net'</script>
</body>


Оказывается, данным кодом можно пользоваться на личных доменах для обхода правила ограничения домена (Same Origin Policy) при прямом обращении из javascript-кода страницы в iframе, расположенный на поддомене [1, 2]. Но в облаке бакеты могут принадлежать разным клиентам, и возможность сменить origin при использовании несёт риски безопасности.

К примеру, пусть у некой корпорации используется данная схема:

Для логина в систему пользователь заходит на corp-bucket1.website.yandexcloud.net, где ему показывается форма ввода пароля.
<!DOCTYPE html>
<html>
    <body>
        <h1>corp-bucket1<h1><hr>
        <iframe name="auth" src="https://corp-bucket2.website.yandexcloud.net/" frameborder="1" onload="setLocation()"></iframe>
        <script>
            document.domain = "website.yandexcloud.net";
            function setLocation() {
                auth.login_origin.value = document.location;
            }
            </script>
    </body>
</html>


Форма ввода пароля расположена на другом поддомене — // corp-bucket2.website.yandexcloud.net/
<!DOCTYPE html>
<html>
    <body>
        <h1>corp-bucket2<h1><hr>
        <div id="login-form">
            <form action="https://corp.example.com" method="POST">
                <input id="login" value="" placeholder="john.doe@corp.internal">
                <input id="password" value="" placeholder="************" type="password">
                <input id="login_origin" value="" type="hidden">
                <input type="submit" value="Sign In">
            </form>
        </div>
        <script>document.domain='website.yandexcloud.net';</script>
    </body>
</html>


И, так как пользователю не хочется вводить пароль каждый раз, то он сохраняет его в браузере, а браузер автоматически подставляет пароль. Со временем число сайтов у компании растёт, и вместе с логином и паролем принимается решение передавать дополнительную информацию — например, на каком сайте пользователь залогинился. Для этого сайт, открывающий форму, меняет свой origin, снимая правила ограничения домена, и пишет свой URL напрямую в форму.

Злоумышленник может создать страничку // evil-bucket.website.yandexcloud.net/ в своём бакете, которая так же меняет заголовок запроса origin, и получить полный доступ к контенту формы логина компании:
<!DOCTYPE html>
<html>
    <body>
        <h1>evil-bucket<h1><hr>
        <div id="login">Login: </div>
        <div id="password">Password: </div>
        <hr>
        <iframe name="auth" src="https://corp-bucket2.website.yandexcloud.net/" onload="setInterval(getCredentials, 1000)" style="width: 100vw; height: 80vh"></iframe>
        <script>
            document.domain='website.yandexcloud.net';
            function getCredentials() {
                window.login.innerText = "Login: " + auth.login.value;
                window.password.innerText = "Password: " + auth.password.value;
            }
        </script>
    </body>
</html>


Теперь, осталось заманить пользователя на эту страницу, и можно получить его пароль, любезно подставленный браузером в знакомую форму.

Примечание
Поведение разнится от браузера к браузеру — на Firefox 68.0 пример работает без дополнительных действий, а в Chromium 75.0 (и других браузерах на том же движке — Яндекс.Браузер, Chrome и др.) для получения пользовательских паролей нужно вынудить пользователя кликнуть по фрейму с формой логина, что обычно не является проблемой

Но, так как теперь браузер считает website.yandexcloud.net доменом верхнего уровня, то он не позволит ни злоумышленнику поднять свой домен до website.yandexcloud.net, ни компании реализовать такую небезопасную схему.

Что не меняется
Внутри бакета все политики работают как раньше. То есть, можно устанавливать cookie на домены

<your_bucket>.website.yandexcloud.net
<your_bucket>.storage.yandexcloud.net
и всё ещё можно менять origin в рамках своего бакета.

Сроки изменений
Теперь о главном — о сроках сроках принятия изменений в браузере. Изменения на уровне браузеров подтягиваются неравномерно. Для Chromium срок обычно 3-4 месяца, у Firefox список обновляется еженедельно, после чего должно пройти ещё некоторое время до выхода новой версии браузера. Релизные циклы других вендоров оценить сложно. Мы предполагаем, что в течение полугода новый список должен попасть во все актуальные браузеры.

С включением доменов в список публичных суффиксов доступ к вашим данным стал намного безопаснее. Кроме того, в Yandex Object Storage мы обеспечиваем следующие условия безопасности данных пользователей:
  • данные размещаются на физических носителях в датацентрах Яндекса, которые являются режимными объектами,
  • данные хранятся в зашифрованном виде, так что никто из тех, кто имеет доступ к физическому носителю, не сможет их прочитать,
  • по умолчанию доступ к хранилищу осуществляется по протоколу HTTPS.
Больше информации о сервисе Yandex Object Storage вы можете найти в документации.

В Яндекс.Облаке доступен образ Container Optimized Image



Чтобы вам было удобнее работать с Yandex Container Registry, наша команда создала образ виртуальной машины, оптимизированный для запуска Docker-контейнеров — Container Optimized Image. Образ создан на основе Ubuntu 16.04 и включает в себя Docker и Docker Compose.

Чем хорош Container Optimized Image
  • Управление контейнерами на виртуальной машине по модели «инфраструктура как код (Infrastructure as code, IaC)» позволяет настраивать инфраструктуру для ваших контейнеризованных приложений.
  • Прозрачная аутентификация в Yandex Container Registry обеспечивает легкий доступ к реестрам Docker-образов.

Container Optimized Image может пригодиться в случаях
  • Когда вам необходим гарантированный ресурс виртуальной машины и ваше приложение уже контейнеризовано.
  • Когда необходима внешняя система управления контейнерами на виртуальных машинах, но Yandex Managed Kubernetes кажется избыточным.

Сценарии использования
  • Отказоустойчивый FrontEnd / L7 балансировщик для ваших сервисов.
  • Приложения для активного сбора данных и метрик.
  • Воркеры для систем мониторинга.

Container Optimized Image интегрирован с сервисами Yandex Container Registry и Yandex Instance Groups. Образ может быть использован на прерываемых виртуальных машинах и поддерживает управление через Terraform.

Вы можете выбрать образ Container Optimized Image при создании виртуальной машины или в Marketplace.

Инструкции по работе с Container Optimized Image читайте в документации.