Рейтинг
0.00

Yandex Cloud

5 читателей, 268 топиков

Опыт сервиса «Где мои дети»: перенос геоданных в 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 для хранения геоданных, было принято решение перевести в него данные внутренней продуктовой аналитики.

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

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



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

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

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



С 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 читайте в документации.

Лицензия Windows на ВМ с vCPU 50% и 20% теперь дешевле на 40%



С 1 августа 2019 года в Яндекс.Облаке на 40% снижены расценки на лицензию Windows на ВМ с гарантированной производительностью vCPU 50% и 20%. Цена за использование ОС Windows Server за 1 vCPU в час составит всего 0,7500 ₽ с НДС вместо 1,2691 ₽.
console.cloud.yandex.ru/
cloud.yandex.ru/docs/compute/quickstart/quick-create-windows

Теперь пользователи Yandex Compute Cloud могут работать с ВМ на платформе Intel Broadwell с vCPU 20% и с ВМ на платформе Intel Cascade Lake с vCPU 20% и 50% по сниженной цене. Так, конфигурация на платформе Intel Cascade Lake с Windows в 2 vCPU, 4 RAM, диском 25 ГБ и с гарантированной долей vCPU 20% стоит 2143 ₽ в месяц с НДС вместо 2891 ₽.
Разверните ВМ на Windows в Яндекс.Облаке — теперь это дешевле, а производительность машин выше: мы первыми в России предлагаем пользователям процессоры нового поколения Intel Xeon Gold (Cascade Lake).
Подробнее о том, из чего складываются цены на ВМ в Облаке, читайте в разделе тарифы.

Опыт AdsCompass: оптимальная поддержка кластера в Yandex Managed Service for ClickHouse



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

AdsCompass начинала свою деятельность с нескольких десятков интернет-компаний, но за шесть лет развития партнерская сеть расширилась. Сегодня у AdsCompass более пяти тысяч рекламодателей, число которых ежемесячно растет примерно на 10—15%. Кроме этого, с 2018 года на платформе появилась возможность напрямую покупать интернет-рекламу через личный кабинет, а значит сеть пополнилась еще и за счет частных рекламодателей. Чтобы охватить всех партнеров из более чем 200 стран, сервисы, отвечающие за нагрузку, работают в двух ЦОД в Европе и США на собственном железе. На данный момент обрабатываемый трафик генерирует более 4 млрд записей статистики в сутки. Запись происходит с нескольких десятков серверов в один кластер ClickHouse. Ежемесячно происходит прирост объема трафика в среднем на 6-10%.

Задача AdsCompass
Компания столкнулась с необходимостью постоянно наращивать технические мощности, увеличивать затраты на поддержку кластера ClickHouse на собственном железе. Также прямо пропорционально масштабу бизнеса росли потери от падений в работе кластера.

Компания поставила задачи:
  • Увеличить стабильность работы кластера,
  • Сократить затраты на поддержку и развитие инфраструктуры, чтобы сосредоточиться непосредственно на продукте.

Решение
«Толчком к переходу на Яндекс.Облако было именно появление Yandex Managed Service for ClickHouse, — объясняет Андрей Привалов, ведущий разработчик AdsCompass. — Если не ошибаюсь, есть и другие предложения на рынке, но тот факт, что Яндекс является разработчиком этой базы данных, сыграл большую роль в выборе в пользу Managed Service for ClickHouse».

Переезд кластера в Yandex Managed Service for ClickHouse был осуществлен силами главных разработчиков AdsCompass. Процесс, включавший тестирование и постепенный полный перевод трафика, занял меньше недели.

На начальном этапе одновременно писали данные в свой кластер и в Яндекс.Облако для того, чтобы выявить наличие неучтенных лимитов. Также в первые дни проведены еще несколько штатных проверок, в том числе:
  • тестирование с целью «поймать» возможные всплески трафика;
  • проверка функционирования облачного сервиса в ситуации, когда после паузы объем записей значительно увеличивается с целью «догнать запись».

Результаты
Первым результатом переезда стало почти полное сокращение затрат временных ресурсов на поддержку кластера, не считая короткого общения с ТП Яндекс.Облака. Также по итогам переезда в AdsCompass отмечают рост стабильности работы кластера. Регулярное обновление кластера до новых версий происходит с минимальным простоем. Уже был случай, когда поддержка Яндекс.Облака решала проблемы с железом, все данные остались целы.

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

AdsCompass планирует использовать в своей деятельности также Managed PostgreSQL, Compute Cloud, Container registry и Message Queue. Разработчики планируют написать скрипт для очистки партиций и рассчитывают на появление решений в этом направлении.

Мнение
Повышение стабильности и экономия — не единственные результаты этого проекта. Раньше были случаи, когда при остановке кластера ClickHouse у нас копилась статистика для последующей записи. Если на дисках заканчивается место и файлы статистики больше некуда писать, их как-то придется удалять. Удаление статистики — это прямые потери данных, в том числе финансовых. Потеря даже небольшого объема финансовых данных может привести к ухудшению отношений с клиентами, а это уже большие репутационные риски. С Yandex Managed Service for ClickHouse мы забыли о таких рисках.
уточняет Андрей Привалов, ведущий разработчик AdsCompass