Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...Ontico
Мы в Авито часто сталкиваемся с ситуацией, когда нужно быстро придумать алгоритм, решающий некоторую бизнес задачу на основе анализа больших объёмов данных. Придумать какой-то алгоритм не сложно, но каждый раз возникает вопрос — а вдруг можно решить эту же задачу в разы более качественно. Исследования можно вести годами, но это рискованно — лучшего решения может и не быть, и будет затрачено много времени.
На помощь приходят конкурсы по анализу данных. Мы устраивали конкурсы на построение алгоритмов, работающих с совершенно различными типами и объемами данных:
+ Выявление запрещенных объявлений.
+ Прогнозирование вероятности клика на рекламное объявление.
+ Обнаружение телефонов на изображениях.
+ Прогнозирование инкрементального эффекта от скидочных акций.
Какие-то были более удачными, какие-то — менее. Расскажем про основные этапы подготовки задач к конкурсу, а также про основные трюки, используемые для победы в таких конкурсах
Как подготовиться к гигабитной DDoS-атаке при помощи машинного обучения / Игн...Ontico
Обеспечение доступности — это сложная задача, которая требует совместной работы специалистов по проектированию и администрированию сетей, разработчиков приложений, тестировщиков и специалистов по IT-безопасности.
В этом докладе мы поговорим о том, какие области науки о данных применимы при защите от DDoS, взглянем на машинное обучение с позиций злоумышленников, специалистов по обеспечению доступности и по защите информации.
Рассмотрим в этом контексте обучение с обратной связью:
+ от окружающей среды (теория управления/control theory),
+ от данных (кластеризация, unsupervised learning),
+ от внешнего источника (обучение с учителем/supervised learning — классификация и регрессия).
Сделаем акцент на сложности алгоритмов и времени, необходимом для обучения. Машинное обучение нельзя просто включить по щелчку пальцев: чтобы всё работало хорошо, нужно заблаговременно подготовить данные, настроить и обучить механизмы защиты.
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...Аліна Шепшелей
About half of the developers, one way or another, faced with the legacy-projects. Not everyone can (and want) work with them. But with the right approach, such projects can be carried out with pleasure and even enthusiasm. We suggest that such a legacy of understanding, what are these project management techniques, practices, and explore the developers consider useful decisions: • Examples of optimization - it's worth a try; • Monitoring applications - JavaMelody; • Monitoring applications - logs and ELK (ELasticSearch + Logstash + Kibana); • Monitoring applications - Java Mission Control and Heap Dump Memory Analyzer Tool.
Доклад "Remote Highload" c Highload++-2016
Созданием еще одной высоконагруженной системы сегодня уже сложно кого-то удивить. Как насчет высоконагруженной системы, которая была создана и эксплуатируется 100% удаленной командой, работающей в 5 часовых поясах?
В докладе пойдет речь о команде Virtustream (Dell Technologies), которая отвечает за Virtustream Storage Cloud.
Экзабайты данных, десятки тысяч серверов, сотни гигабит в секунду, сотни тысяч и миллионы запросов в секунду, 20 датацентров по всему миру и, при этом, команда разработчиков из 15 человек, это возможно?
В докладе мы поговорим о разных аспектах - от культуры разработки и процесса найма до контейнерной платформы запуска микросервисов и выбора языка программирования.
Почему не работает Scrum, и плохо работает парное программирование? Как Mesos, Marathon, Consul и Calico делают возможным выкладывание нового сервиса за 5 минут? Почему каждый разработчик должен иметь доступ в production?
Kubernetes is not needed to 90 percents of the companies.rusIvan Glushkov
Эйфория и хайп вокруг Kubernetes не дают всем компаниям возможности трезво взглянуть на сложности, проблемы и риски процесса перехода на Kubernetes.
Я попробую остудить пыл самых смелых и наивных, и показать, что этот путь очень тернист и опасен:
рассмотрю список стандартных проблем,
покажу, на что следует обратить внимание при планировании перехода,
и посоветую "ничего не трогать, пока работает".
Стандартно, банально, но может сэкономить вам массу нервов и денег.
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...Ontico
Мы в Авито часто сталкиваемся с ситуацией, когда нужно быстро придумать алгоритм, решающий некоторую бизнес задачу на основе анализа больших объёмов данных. Придумать какой-то алгоритм не сложно, но каждый раз возникает вопрос — а вдруг можно решить эту же задачу в разы более качественно. Исследования можно вести годами, но это рискованно — лучшего решения может и не быть, и будет затрачено много времени.
На помощь приходят конкурсы по анализу данных. Мы устраивали конкурсы на построение алгоритмов, работающих с совершенно различными типами и объемами данных:
+ Выявление запрещенных объявлений.
+ Прогнозирование вероятности клика на рекламное объявление.
+ Обнаружение телефонов на изображениях.
+ Прогнозирование инкрементального эффекта от скидочных акций.
Какие-то были более удачными, какие-то — менее. Расскажем про основные этапы подготовки задач к конкурсу, а также про основные трюки, используемые для победы в таких конкурсах
Как подготовиться к гигабитной DDoS-атаке при помощи машинного обучения / Игн...Ontico
Обеспечение доступности — это сложная задача, которая требует совместной работы специалистов по проектированию и администрированию сетей, разработчиков приложений, тестировщиков и специалистов по IT-безопасности.
В этом докладе мы поговорим о том, какие области науки о данных применимы при защите от DDoS, взглянем на машинное обучение с позиций злоумышленников, специалистов по обеспечению доступности и по защите информации.
Рассмотрим в этом контексте обучение с обратной связью:
+ от окружающей среды (теория управления/control theory),
+ от данных (кластеризация, unsupervised learning),
+ от внешнего источника (обучение с учителем/supervised learning — классификация и регрессия).
Сделаем акцент на сложности алгоритмов и времени, необходимом для обучения. Машинное обучение нельзя просто включить по щелчку пальцев: чтобы всё работало хорошо, нужно заблаговременно подготовить данные, настроить и обучить механизмы защиты.
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...Аліна Шепшелей
About half of the developers, one way or another, faced with the legacy-projects. Not everyone can (and want) work with them. But with the right approach, such projects can be carried out with pleasure and even enthusiasm. We suggest that such a legacy of understanding, what are these project management techniques, practices, and explore the developers consider useful decisions: • Examples of optimization - it's worth a try; • Monitoring applications - JavaMelody; • Monitoring applications - logs and ELK (ELasticSearch + Logstash + Kibana); • Monitoring applications - Java Mission Control and Heap Dump Memory Analyzer Tool.
Доклад "Remote Highload" c Highload++-2016
Созданием еще одной высоконагруженной системы сегодня уже сложно кого-то удивить. Как насчет высоконагруженной системы, которая была создана и эксплуатируется 100% удаленной командой, работающей в 5 часовых поясах?
В докладе пойдет речь о команде Virtustream (Dell Technologies), которая отвечает за Virtustream Storage Cloud.
Экзабайты данных, десятки тысяч серверов, сотни гигабит в секунду, сотни тысяч и миллионы запросов в секунду, 20 датацентров по всему миру и, при этом, команда разработчиков из 15 человек, это возможно?
В докладе мы поговорим о разных аспектах - от культуры разработки и процесса найма до контейнерной платформы запуска микросервисов и выбора языка программирования.
Почему не работает Scrum, и плохо работает парное программирование? Как Mesos, Marathon, Consul и Calico делают возможным выкладывание нового сервиса за 5 минут? Почему каждый разработчик должен иметь доступ в production?
Kubernetes is not needed to 90 percents of the companies.rusIvan Glushkov
Эйфория и хайп вокруг Kubernetes не дают всем компаниям возможности трезво взглянуть на сложности, проблемы и риски процесса перехода на Kubernetes.
Я попробую остудить пыл самых смелых и наивных, и показать, что этот путь очень тернист и опасен:
рассмотрю список стандартных проблем,
покажу, на что следует обратить внимание при планировании перехода,
и посоветую "ничего не трогать, пока работает".
Стандартно, банально, но может сэкономить вам массу нервов и денег.
Машинное обучение в электронной коммерции - практика использования и подводны...Ontico
РИТ++ 2017, секция ML + IoT + ИБ
Зал Белу-Оризонти, 5 июня, 16:00
Тезисы:
http://ritfest.ru/2017/abstracts/2532.html
Простыми словами расскажем о популярных, эффективных и используемых в нашей компании техниках применения машинного обучения для привлечения и удержания клиентов:
- кластеризации товарного каталога,
- классификации клиентов (готовых перейти на платный тариф, готовых уйти, способных принести прибыль),
- повышении релевантности e-mail-рассылок.
Особое внимание уделим технике использования популярных платформ и библиотек:
- Apache Spark,
- Spark MLlib,
- Hadoop,
- Amazon Kinesns.
Отдельно остановимся на особенностях обработки "больших данных", выборе и разработке параллельных алгоритмов.
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри404fest
Особое внимание будет уделено современным способам внутри-командного взаимодействия (инструменты), обмена информацией и лидерству.
Как готовить Amazon Web Services — чтобы мясо было мягким. Тонкости работы с NoSQL DynamoDB. Релизный цикл, экстремальное программирование, принципы проектирования и контроль качества.
http://2014.404fest.ru/reports/bitrix-teamwork/
Борьба с вредоносным кодом: от базовых мер к целостной стратегииAleksey Lukatskiy
Описание целостной стратегии борьбы с вредоносным кодом - от начальных шагов и базовых защитных мер к продвинутой версии, включающей множество защитных механизмов
- Как начать развивать систему аналитики в компании, не имея армию data-инженеров.
- Как перейти из состояния «я не понимаю какие квадратики на этой схеме нужны для моих задач» и при этом не уйти в R&D на несколько месяцев.
- Как реализовать потоковую обработку данных на PHP (~40К записей в минуту).
- Какие технические решения применяли в нашем решении и какие факторы учитывали в принятии решений.
Презентация с мероприятия https://habr.com/ru/company/tuturu/blog/426059/
Презентация доклада "Рейтинг навыков .NET-разработчика" Александра Рахманова на конференции Go# Moscow 15 ноября 2014 года (http://gosharp.ru). См. подробнее в заметке "Рейтинг навыков .NET-разработчика" (http://wp.me/p5n7k3-7) в официальном блоге SkillsWiki.
Какие навыки наиболее востребованы и перспективны для разработчика? Давайте посмотрим, что компании ценят уже сейчас и как научиться всегда быть в тренде. Результаты исследования рынка труда техническими специалистами. Детализация анализа с уровня языков программирования до отдельных технологий и навыков.
Тестирование на проникновение в сетях Microsoft (v.2)Dmitry Evteev
Как показывает практика проведения тестирований на проникновение компанией Positive Technologies, всего 4-х часов достаточно атакующему, находящемуся во внутренней сети компании, для того, чтобы получить максимальный уровень привилегий. С чем это связано и можно ли от этого защититься? Данная тема будет освещена в ходе доклада Дмитрия Евтеева. На вебинаре будут подробно рассмотрены типовые успешные сценарии атак в сетях Microsoft, а также действия атакующего, связанные с пост эксплуатацией в Active Directory.
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...UNETA
Презентация к докладу: «Высокопроизводительные приложения на базе Windows Azure. Пример реального проекта». Докладчик: Александр Фещенко – MVP (SQL Azure), .Net Team Lead в DCT.
В докладе будут рассмотрены методики поиска узких мест в веб-приложениях, их устранения, а также способы повышения производительности при помощи облачной инфраструктуры Windows Azure.
Машинное обучение в электронной коммерции - практика использования и подводны...Ontico
РИТ++ 2017, секция ML + IoT + ИБ
Зал Белу-Оризонти, 5 июня, 16:00
Тезисы:
http://ritfest.ru/2017/abstracts/2532.html
Простыми словами расскажем о популярных, эффективных и используемых в нашей компании техниках применения машинного обучения для привлечения и удержания клиентов:
- кластеризации товарного каталога,
- классификации клиентов (готовых перейти на платный тариф, готовых уйти, способных принести прибыль),
- повышении релевантности e-mail-рассылок.
Особое внимание уделим технике использования популярных платформ и библиотек:
- Apache Spark,
- Spark MLlib,
- Hadoop,
- Amazon Kinesns.
Отдельно остановимся на особенностях обработки "больших данных", выборе и разработке параллельных алгоритмов.
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри404fest
Особое внимание будет уделено современным способам внутри-командного взаимодействия (инструменты), обмена информацией и лидерству.
Как готовить Amazon Web Services — чтобы мясо было мягким. Тонкости работы с NoSQL DynamoDB. Релизный цикл, экстремальное программирование, принципы проектирования и контроль качества.
http://2014.404fest.ru/reports/bitrix-teamwork/
Борьба с вредоносным кодом: от базовых мер к целостной стратегииAleksey Lukatskiy
Описание целостной стратегии борьбы с вредоносным кодом - от начальных шагов и базовых защитных мер к продвинутой версии, включающей множество защитных механизмов
- Как начать развивать систему аналитики в компании, не имея армию data-инженеров.
- Как перейти из состояния «я не понимаю какие квадратики на этой схеме нужны для моих задач» и при этом не уйти в R&D на несколько месяцев.
- Как реализовать потоковую обработку данных на PHP (~40К записей в минуту).
- Какие технические решения применяли в нашем решении и какие факторы учитывали в принятии решений.
Презентация с мероприятия https://habr.com/ru/company/tuturu/blog/426059/
Презентация доклада "Рейтинг навыков .NET-разработчика" Александра Рахманова на конференции Go# Moscow 15 ноября 2014 года (http://gosharp.ru). См. подробнее в заметке "Рейтинг навыков .NET-разработчика" (http://wp.me/p5n7k3-7) в официальном блоге SkillsWiki.
Какие навыки наиболее востребованы и перспективны для разработчика? Давайте посмотрим, что компании ценят уже сейчас и как научиться всегда быть в тренде. Результаты исследования рынка труда техническими специалистами. Детализация анализа с уровня языков программирования до отдельных технологий и навыков.
Тестирование на проникновение в сетях Microsoft (v.2)Dmitry Evteev
Как показывает практика проведения тестирований на проникновение компанией Positive Technologies, всего 4-х часов достаточно атакующему, находящемуся во внутренней сети компании, для того, чтобы получить максимальный уровень привилегий. С чем это связано и можно ли от этого защититься? Данная тема будет освещена в ходе доклада Дмитрия Евтеева. На вебинаре будут подробно рассмотрены типовые успешные сценарии атак в сетях Microsoft, а также действия атакующего, связанные с пост эксплуатацией в Active Directory.
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...UNETA
Презентация к докладу: «Высокопроизводительные приложения на базе Windows Azure. Пример реального проекта». Докладчик: Александр Фещенко – MVP (SQL Azure), .Net Team Lead в DCT.
В докладе будут рассмотрены методики поиска узких мест в веб-приложениях, их устранения, а также способы повышения производительности при помощи облачной инфраструктуры Windows Azure.
Similar to Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные камни и надводные скалы (20)
This document discusses continuous performance testing (CPT) and introduces the Jagger CPT solution. It provides an overview of why performance testing is important, outlines the principles and goals of CPT, and describes the key parts of the Jagger CPT platform including load generation, metrics collection, test data management, and environment management. It also provides an example customer success story where Jagger was used for continuous performance testing of a large ecommerce site.
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
This document provides an overview of the JDI (Java UI test automation framework). It discusses features of JDI including being UI element oriented, providing common UI elements and solutions to common problems. It provides examples of how to write tests using JDI annotations and page object pattern. The document also summarizes benefits of JDI such as reducing test code, improving test clarity, reuse across projects. Finally it outlines new features planned for JDI 2.0 including layout verification, page object generator, integration with Selenium and expanding JDI to other languages like Python.
The document discusses testing of geolocation systems. It provides an overview of geolocation, including definitions and importance. It then outlines the speaker's experience and work testing GIS systems. The rest of the document details approaches to testing geolocation, including simulating calls, checking responses and databases, and verifying accuracy. It also discusses common data formats, projections, tools like PostGIS and QGIS, and potential bugs to watch for like coordinate jumbling. The conclusion emphasizes starting simple, practicing to improve, and for tests to grow with knowledge as geolocation is important for future IT.
3. Elastic Load Balancing
Web 1
Elastic Load Balancing
Dynamic
HTTPS
*.com/*.de
Web N
…
CloudWatch
+
AutoScaling
Web 1 Web 2 Web N
…
CloudWatch
+
AutoScaling
Архитектура Битрикс24
S3
management,
monitoring,
backup
Static
HTTPS
*.com/*.de
CDN (Amazon CloudFront)
js, css
Dynamic
HTTPS
*.ru
Static
HTTPS
*.ru
CDN (CDNvideo)
js, css
images(clients)
images(clients)
local
cache
(APC)
local
cache
(APC)
local
cache
(APC)
local
cache
(APC)
local
cache
(APC)
control cache: memcached
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
master-master replication
master-master replication
master-master replication
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
Web 2
local
cache
(APC)
4. Битрикс24…
450 000+ компаний зарегистрировано
70 000+ активных компаний
60+ активных пользователей в компании
99,99% доступность сервиса за 2015 г.
47,5 миллионов сообщений в ленте
4 миллиона звонков совершено
42 тысячи звонков в среднем в день
5. «Скорость сайта» (54485+ сайтов, 1000+ запр./сек)
Бэкап в облако (25000+ сайтов, 42 ТБ)
Мониторинг сайтов из двух датацентров
CDN и оптимизация ресурсов (27000+ сайтов, 5 ТБ в день)
«Обратный» CDN – для динамики
Bigdata, рекомендации (220+ млн. активных пользователей)
Push-уведомления
Мгновенные сообщения (NodeJS, redis)
WebRTC - звонки
и другие
Облачные сервисы
9. Системы изнутри - анализ
Левое и правое полушарие мозга
Формализация эмоций
Коммуникации с клиентом
Страх и отвага, организация команды разработки
Эксперты в предметной области
Роль аналитика
Интуиция, туман и ответственность
10. Системы изнутри -
проектирование
Опыт, инструменты, люди
Клиент, квалификация и согласование
Предвидение вектора развития системы
Детализация
Оценка рисков, прототипы
11. Системы изнутри –
управление проектом
Сроки, риски, теория вероятностей
«Сделай то, никто не знает что, уже вчера»
Управление - Пирамида
Управление - Круг
Управление - Пирамида с кругами
Суровость, справедливость, профессионализм
12. Системы изнутри –
разработчики
Опыт и квалификация
Опыт и квалификация
Опыт и квалификация
«Поиграться/поучиться и …свалить»
Ответственность, храбрость, прозрачность
Коммуникации
13. Системы изнутри –
тестировщики
А что покликать? Тест-кейсы?
Покликать много
Покликать роботом
Автоматизация тестирования
Как найти настоящего тестировщика?
18. Требования, блин, меняются
Идеальный процесс – не панацея
Ресурсы – ограничены!
Много кода – проблема!
Много людей – проблема!
Сложность системы – проблема!
Собственный мозг – проблема!
Жизнь устроена иначе…
19. Баги – наше всё!
Предпочитаем сосредотачиваться на
позитивном
Здравый смысл
Глубокий анализ и управление сложностью
Математика, анализ, модели
«Усложнение и размножение сущностей – первый враг
качества».
Философия качества
21. Багтрекеры, мантисы, …
Юнит-тесты, *-тесты …
Альфа, бета, гамма … «омега»-тестирование
Метрики
Ура, нашли последний баг
Agile и … другие заблуждения человечества
Мы это с вами хорошо
знаем
22. «Хорошо тестируемый» код, mocks
Инварианты, предикаты, исключения,
asserts? ООП его за ногу
Тестирование unit-тестов unit-тестов
Поддержка unit-тестов
Тестов больше чем кода
Дорого!!!
Это мы тоже знаем: unit-
tests
24. Amazon SQS
PHP-воркеры
Шлюз к APNS, Google Cloud Messaging
Собственный протокол
Как протестировать, что сообщение дошло до клиента?
Push-уведомления
25. Long polling
Web sockets
Сторонний модуль для nginx
Отладка сторонних модулей для nginx ;-)
Свое решение на NodeJS/Redis
Как протестировать работу WebSockets на 10 открытых
вкладках за глючным файерволом?
Мгновенные сообщения
27. Почему «многие» кодят на бою и молчат об
этом?
Почему «многие» тестируют на клиентах и
молчат об этом?
Страшная тайна – открыта.
Архитектура и
статистический анализ
28. Глубокий анализ сложности
Теория вероятностей
Логирование и мониторинг
Простые, работающие решения
Модульная разработка
Инкрементальный дизайн
Чистый, вкусный, читаемый, разумный код
Компетенция
«Здоровый пофигизм»
управления качеством
29. Блокировки, тормоза в БД
Сетевые задержки, недоступности
Диск переполнился
Процесс – убит
Транзакции – не спасут!
Гибкие техники программирования
Логировать, измерять, повышать прозрачность
и понимание
Как не сойти с ума?
30. Munin, Zabbix
Pinba – температура по больнице
XHProf – граф вызовов
Логи в ElasticSearch
Percona MySQL
Базовая простая математика и предикаты.
Инструменты
статистического анализа
31. ORM и реальность
ORM и компетенция
Тестирование «ацких» SQL-запросов
Percona Innodb патчи
Гистограммы запросов
Объектно-реляционный
импеданс
32. Разработчик и код
Код и ООП
Код и операционная система
Диски
Сетевые протоколы
Компетенция и отвага
Как протестировать 20-этажный join?
Программистско-
сисадминский импеданс
34. Процессы приложения (число)
Память приложения (реальная,
виртуальная)
Лог ошибок – чист
Лог работы – обновляется
Нагрузка на процессор: user/system mode
Виртуализация
Минимальный набор
36. Диски – по сети
Связность между машинами
Raid-10 и молния
Отказы балансировщика ELB
CloudWatch – польза и не очень
Amazon Web Services – как
точка отказа
37. Как тестировать верстку, selenium
Браузеры
Мобильные устройства
Посидеть, покликать
Быстрые изменения и тестирование
Верстка и роботы
38. Круг vs пирамида, командная игра
Ситуационное лидерство
Проблемы – наверх!
Меньше артефактов - утоните
Визуализация, метафора, коммуникации
Модульность
Общий понятный код
Работающие техники
41. От 85 до 150
виртуальных
серверов + доп.
сервисы: S3, SQS,
CloudFront, Route
53, DynamoDB,
Kinesis.
Три человека – у
которых админство
не является
единственной
деятельностью.