Andrey Borodin "Architecture of online backup for various DBMS"FwdaysWe are developing WAL-G, a cloud backup tool. We used to have only copies of PostgreSQL, but now we support MongoDB, MySQL, FoundationDB and others.
In this talk, I will talk about the features and differences of these databases in terms of backup in the Cloud.
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...OnticoЧтобы добиться от системы максимальной производительности, необходимо учитывать структуру данных, с которыми вы работаете. Проблемы возникают, если данные очень неоднородные, и один из способов решения этих проблем - использовать возможности современных реляционных БД для хранения данных в документо-ориентированной форме.
Этот подход имеет свои плюсы и минусы, которые будут обсуждаться в докладе на примерах PostgreSQL/MySQL/MariaDB etc.
Основные вопросы:
* конечно, производительность тех или иных решений и подходов - чего необходимо избегать, а чего бояться не стоит (бенчмарки для разных конфигураций и видов нагрузки);
* способы безболезненного переноса данных в такой формат.
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...OnticoClickHouse - высокопроизводительная база данных для больших данных и аналитики.
На ClickHouse основана Яндекс.Метрика - крупнейшая система веб-аналитики в России.
Ради чего мы написали свою базу данных? Ради скорости! ClickHouse работает невероятно быстро, быстрее всех известных нам конкурентов, и при этом может обрабатывать запросы по петабайтам данных.
Я расскажу про:
- Краткую историю создания проекта;
- Основные преимущества и особенности ClickHouse;
- Архитектура проекта; подход к хранению данных, отказоустойчивости, исполнению запросов;
- Как работает внутри, почему ClickHouse такой быстрый;
- Текущие кейсы использования в Метрике и других проектах Яндекса;
- Профит, который вы можете получить от ClickHouse.
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4Nikolay SamokhvalovТип данных JSONb – это, пожалуй, самая яркая новинка PostgreSQL 9.4, который вышел 18 декабря 2014.
Уже немало докладов и статей посвящено этому типу данных, работе с ним и индексации. Но как правило, информация в них перегружена специфичными для PostgreSQL терминами.
Запутались в моделях данных? В том, какие индексы могут вам помочь ускорить вашу работу с СУБД?
Этот доклад помогает сложить паттерн. Он для тех, кто начал использовать PostgreSQL совсем недавно или только планирует работать с ним. В нём рассказано о месте PostgreSQL в современном мире СУБД, о борьбе различных моделей данных за место под солнцем на этом рынке и то, как это отразилось на развитие Postgres.
Помимо прочего, рассказывается о том, какие вообще бывают деревья, как они помогают ускорять базы данных и почему PostgreSQL — просто райский лес для деревьев самого разного типа :)
См. также видео: http://postgresmen.ru/meetup/2014-12-23-parallels
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)OnticoЯ расскажу о нашем опыте перевоза 300+ ТБ метаданных и 250k RPS нагрузки с одной коммерческой СУБД на букву "O" в PostgreSQL.
Реактивный раздатчик ok.ru/musicVadim TseskoРаздатчик музыки непосредственно занимается отдачей байтов аудиопотока многочисленным пользователям https://ok.ru/music. В пике суммарный трафик достигает 100 Гб/с через сотни тысяч соединений, а время до первого байта составляет не больше 100 мс. Предыдущая версия раздатчика на основе файлов и Apache Tomcat не устраивала нас требуемым количеством оборудования и неспособностью утилизировать современное железо. При разработке новой версии мы поставили перед собой цель сохранить внешнюю функциональность сервиса неизменной, но обойтись существенно меньшим количеством машин, сохранив при этом масштабируемость и отказоустойчивость сервиса.
В докладе мы рассмотрим, как различные архитектурные решения помогли нам обеспечить масштабируемость и отказоустойчивость сервиса за счёт распределения и репликации музыкальных треков между нодами. Затем подробно поговорим про устройство отдельной ноды, включая отказоустойчивую подсистему хранения, сетевую подсистему, а также использование подхода reactive streams. Уделим особое внимание собранным граблям и трюкам, позволившим увеличить производительность системы, упростить отладку и эксплуатацию системы.
Доклад ориентирован на разработчиков, которые хотят расширить свой арсенал подходов и инструментов для создания распределённых и/или высоконагруженных систем с интенсивным I/O.
Обзор перспективных баз данных для highload / Юрий НасретдиновOnticoРИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 10:00
Тезисы:
http://backendconf.ru/2017/abstracts/2773.html
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для highload-проектов. Я расскажу о Tarantool, ClickHouse и CockroachDB, о том, как они устроены, и почему я считаю, что они в будущем станут стандартом де-факто, как раньше был MySQL, а сейчас — MongoDB.
...
ClickHouse как решение для бизнес аналитики. Дмитрий КузьминHOWWEDOIT— Как мы пришли к использованию ClickHouse.
— Сильные и слабые стороны.
— Практические кейсы использования ClickHouse для решения аналитических задач.
Анализируем данные с ClickhouseАлександр СигачевПримеры использования базы clickhouse для анализа данных.
Экспорт данных access.log в clickhouse. Примеры анализа скорости пользователей на основе логов сервера.
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...OnticoРИТ++ 2017, Backend Conf
Зал Кейптаун, 6 июня, 15:00
Тезисы:
http://backendconf.ru/2017/abstracts/2710.html
В данном докладе я дам обзор системных интерфейсов, которые предоставляет Linux для эффективной обработки запросов. В частности, речь пойдет о мультиплексировании ввода-вывода, отправке файлов и многопоточной обработке входящих соединений. Расскажу о нюансах и недостатках в сравнении с аналогичными интерфейсами других unix-подобных операционных систем. Личный опыт показывает, что продуманность и качество реализации интерфейса для прикладных программ — это, к сожалению, довольно слабая сторона ядра Linux.
Micro orm для жизни. Кожевников Дмитрий D2D Just.NETDev2DevMicro-ORM решения хвастают высокой скоростью маппинга. Яркий представитель семейства - Dapper, разработан в StackExchange и позволяет ресурсам вроде StackOverflow держать нагрузку. Но нишу бизнес-приложений твёрдо занимают heavy-ORM - EnityFramework и NHibernate. Так зачем enterprise-разработчику нужен Dapper? Micro-ORM - это свобода от влияния технологии доступа к данным. Нам Dapper помог серьёзно подойти к дизайну не только DAL, но и доменной модели. А ещё мы любим писать SQL. А вы уже впустили SQL в своё сердце?
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)OnticoНесколько месяцев назад компания "Яндекс" совершила маленькую революцию, открыв свою внутреннюю систему хранения и аналитики больших данных ClickHouse в opensource для всех желающих.
ClickHouse стабильно показывает очень высокие результаты на тестах производительности запросов, часто догоняя и обгоняя лидеров рынка аналитических RDBMS, включая HP Vertica. Высокие результаты и авторитет "Яндекса" привлекают к этой системе заслуженное внимание разработчиков и архитекторов. Вместе с тем, архитектура ClickHouse довольно существенно отличается от привычных архитектур RDBMS, в ClickHouse отсутствует многое из привычной функциональности, есть ряд "неудобных" ограничений. Поэтому разработка новых и миграция существующих решений сопровождается значительными сложностями.
В докладе рассматриваются основные архитектурные особенности ClickHouse, отличия от традиционных RDBMS или NoSQL баз данных, и обсуждаются способы решения типичных задач, возникающих при разработке аналитических систем на ClickHouse.
Работаем с API по-взрослому - Максим Кислов (Badoo)AvitoTechЯ расскажу о том, как мы разрабатываем фронтенд и бэкенд параллельно, используя protobuf + JSON RPC.
Часто фронтенд выставляет требования к бэкенду, из этих требований получается API, и разработка возможна только при одновременной работе серверного и клиентского девелопера.
Мы же начинаем разработку с API, и фронтенд (а также мобильные приложения) никак не зависят от степени готовности бэкенда.
– Я поделюсь тем, как мы делаем API до начала разработки;
– Success story использования protobuf + RPC;
– И немного – о разработке клиента вообще без серверного кода.
Yandex.Frontend: complex services, complex solutionsYelena JetpyspayevaTalk (in Russian) for Yet another Conference 2013, October 2d, Moscow
Abstract: More than 10 years Yandex launches various Internet services such as Maps, Mail, Disk, Music, Auto. During this long period of time we have got a lot of experience that could be useful for other web developers.
In this talk we will share several stories about several services of Yandex and our common library of blocks. In the context of search services we will talk about full stack of BEM technologies, server JavaScript and automatised web development.
We will describe an experience of Yandex.Direct which has a non-stop frontend development and refactoring workflow. We also tell about MVC-pattern (bem-mvc) realisation and converting data in comfortable data view format.
Using Yandex.Maps and its API example we will show how you can adapt BEM flexibly taking into consideration special project's needs.
We also talk about open source and why we went there and what we have learned. Promise you, it will have a lot of interesting details.
Video (Russian) https://events.yandex.ru/lib/talks/1108/
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4Nikolay SamokhvalovТип данных JSONb – это, пожалуй, самая яркая новинка PostgreSQL 9.4, который вышел 18 декабря 2014.
Уже немало докладов и статей посвящено этому типу данных, работе с ним и индексации. Но как правило, информация в них перегружена специфичными для PostgreSQL терминами.
Запутались в моделях данных? В том, какие индексы могут вам помочь ускорить вашу работу с СУБД?
Этот доклад помогает сложить паттерн. Он для тех, кто начал использовать PostgreSQL совсем недавно или только планирует работать с ним. В нём рассказано о месте PostgreSQL в современном мире СУБД, о борьбе различных моделей данных за место под солнцем на этом рынке и то, как это отразилось на развитие Postgres.
Помимо прочего, рассказывается о том, какие вообще бывают деревья, как они помогают ускорять базы данных и почему PostgreSQL — просто райский лес для деревьев самого разного типа :)
См. также видео: http://postgresmen.ru/meetup/2014-12-23-parallels
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)OnticoЯ расскажу о нашем опыте перевоза 300+ ТБ метаданных и 250k RPS нагрузки с одной коммерческой СУБД на букву "O" в PostgreSQL.
Реактивный раздатчик ok.ru/musicVadim TseskoРаздатчик музыки непосредственно занимается отдачей байтов аудиопотока многочисленным пользователям https://ok.ru/music. В пике суммарный трафик достигает 100 Гб/с через сотни тысяч соединений, а время до первого байта составляет не больше 100 мс. Предыдущая версия раздатчика на основе файлов и Apache Tomcat не устраивала нас требуемым количеством оборудования и неспособностью утилизировать современное железо. При разработке новой версии мы поставили перед собой цель сохранить внешнюю функциональность сервиса неизменной, но обойтись существенно меньшим количеством машин, сохранив при этом масштабируемость и отказоустойчивость сервиса.
В докладе мы рассмотрим, как различные архитектурные решения помогли нам обеспечить масштабируемость и отказоустойчивость сервиса за счёт распределения и репликации музыкальных треков между нодами. Затем подробно поговорим про устройство отдельной ноды, включая отказоустойчивую подсистему хранения, сетевую подсистему, а также использование подхода reactive streams. Уделим особое внимание собранным граблям и трюкам, позволившим увеличить производительность системы, упростить отладку и эксплуатацию системы.
Доклад ориентирован на разработчиков, которые хотят расширить свой арсенал подходов и инструментов для создания распределённых и/или высоконагруженных систем с интенсивным I/O.
Обзор перспективных баз данных для highload / Юрий НасретдиновOnticoРИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 10:00
Тезисы:
http://backendconf.ru/2017/abstracts/2773.html
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для highload-проектов. Я расскажу о Tarantool, ClickHouse и CockroachDB, о том, как они устроены, и почему я считаю, что они в будущем станут стандартом де-факто, как раньше был MySQL, а сейчас — MongoDB.
...
ClickHouse как решение для бизнес аналитики. Дмитрий КузьминHOWWEDOIT— Как мы пришли к использованию ClickHouse.
— Сильные и слабые стороны.
— Практические кейсы использования ClickHouse для решения аналитических задач.
Анализируем данные с ClickhouseАлександр СигачевПримеры использования базы clickhouse для анализа данных.
Экспорт данных access.log в clickhouse. Примеры анализа скорости пользователей на основе логов сервера.
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...OnticoРИТ++ 2017, Backend Conf
Зал Кейптаун, 6 июня, 15:00
Тезисы:
http://backendconf.ru/2017/abstracts/2710.html
В данном докладе я дам обзор системных интерфейсов, которые предоставляет Linux для эффективной обработки запросов. В частности, речь пойдет о мультиплексировании ввода-вывода, отправке файлов и многопоточной обработке входящих соединений. Расскажу о нюансах и недостатках в сравнении с аналогичными интерфейсами других unix-подобных операционных систем. Личный опыт показывает, что продуманность и качество реализации интерфейса для прикладных программ — это, к сожалению, довольно слабая сторона ядра Linux.
Micro orm для жизни. Кожевников Дмитрий D2D Just.NETDev2DevMicro-ORM решения хвастают высокой скоростью маппинга. Яркий представитель семейства - Dapper, разработан в StackExchange и позволяет ресурсам вроде StackOverflow держать нагрузку. Но нишу бизнес-приложений твёрдо занимают heavy-ORM - EnityFramework и NHibernate. Так зачем enterprise-разработчику нужен Dapper? Micro-ORM - это свобода от влияния технологии доступа к данным. Нам Dapper помог серьёзно подойти к дизайну не только DAL, но и доменной модели. А ещё мы любим писать SQL. А вы уже впустили SQL в своё сердце?
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)OnticoНесколько месяцев назад компания "Яндекс" совершила маленькую революцию, открыв свою внутреннюю систему хранения и аналитики больших данных ClickHouse в opensource для всех желающих.
ClickHouse стабильно показывает очень высокие результаты на тестах производительности запросов, часто догоняя и обгоняя лидеров рынка аналитических RDBMS, включая HP Vertica. Высокие результаты и авторитет "Яндекса" привлекают к этой системе заслуженное внимание разработчиков и архитекторов. Вместе с тем, архитектура ClickHouse довольно существенно отличается от привычных архитектур RDBMS, в ClickHouse отсутствует многое из привычной функциональности, есть ряд "неудобных" ограничений. Поэтому разработка новых и миграция существующих решений сопровождается значительными сложностями.
В докладе рассматриваются основные архитектурные особенности ClickHouse, отличия от традиционных RDBMS или NoSQL баз данных, и обсуждаются способы решения типичных задач, возникающих при разработке аналитических систем на ClickHouse.
Работаем с API по-взрослому - Максим Кислов (Badoo)AvitoTechЯ расскажу о том, как мы разрабатываем фронтенд и бэкенд параллельно, используя protobuf + JSON RPC.
Часто фронтенд выставляет требования к бэкенду, из этих требований получается API, и разработка возможна только при одновременной работе серверного и клиентского девелопера.
Мы же начинаем разработку с API, и фронтенд (а также мобильные приложения) никак не зависят от степени готовности бэкенда.
– Я поделюсь тем, как мы делаем API до начала разработки;
– Success story использования protobuf + RPC;
– И немного – о разработке клиента вообще без серверного кода.
Yandex.Frontend: complex services, complex solutionsYelena JetpyspayevaTalk (in Russian) for Yet another Conference 2013, October 2d, Moscow
Abstract: More than 10 years Yandex launches various Internet services such as Maps, Mail, Disk, Music, Auto. During this long period of time we have got a lot of experience that could be useful for other web developers.
In this talk we will share several stories about several services of Yandex and our common library of blocks. In the context of search services we will talk about full stack of BEM technologies, server JavaScript and automatised web development.
We will describe an experience of Yandex.Direct which has a non-stop frontend development and refactoring workflow. We also tell about MVC-pattern (bem-mvc) realisation and converting data in comfortable data view format.
Using Yandex.Maps and its API example we will show how you can adapt BEM flexibly taking into consideration special project's needs.
We also talk about open source and why we went there and what we have learned. Promise you, it will have a lot of interesting details.
Video (Russian) https://events.yandex.ru/lib/talks/1108/
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...YandexБольше десяти лет Яндекс делает разные интернет-сервисы: Карты, Почту, Директ, Музыку, Авто и так далее. В процессе их разработки был приобретён опыт, который может быть полезен другим веб-разработчикам. В докладе мы расскажем несколько историй на примере некоторых сервисов Яндекса и общей библиотеки блоков. В контексте поисковых сервисов, речь пойдёт об использовании полного стека БЭМ-технологий, о переходе к серверному JavaScript и автоматизации разработки. Мы опишем опыт Яндекс.Директа, фронтенд которого переписывается без остановки основной разработки. А также расскажем про реализацию MVC-паттерна (bem-mvc) и преобразование данных в удобный для представления вид. На примере Яндекс.Карт и их API будет показано, как можно гибко адаптировать БЭМ-методологию, учитывая особые нужды конкретного проекта. Мы также расскажем, зачем мы пошли в опенсорс и чему научились. Обещаем много интересных подробностей.
State of the Standardized WebYandexState of the Standardized Web
В 2014 году принципы Extensible Web начали воплощаться в новых стандартах. Поговорим о Web Crypto, Web Animations, Service Worker и других вещах, которые должны принципиально изменить веб-платформу в ближайшем будущем.
Сергей Константинов, Яндекс
Руководитель группы разработки API Яндекс.Карт. Окончил Южно-Уральский государственный университет. Разработкой API Яндекс.Карт занимается с 2008 года. С 2013 — участник Технической архитектурной группы Консорциума W3C.
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...Tanya DenisyukБудет показан пример архитектуры популярной социальной сети в Англии, переработанной на новом стеке, чтобы решить проблемы производительности, отказоустойчивости и горизонтального масштабирования. Новый стек базируется на технологиях: .NET, SignalR, Couchbase, RabbitMQ, ElasticSearch, Amazon Services (CloudFront, S3, EC2, Route 53, Balancer), Windows, Linux. Цель: показать одну из моделей архитектуры нагруженных веб-систем, практики и возможные подводные камни при разработке высоконагруженных Интернет систем.
SECON'2014 - Александр Бындю - Переход от монолитной архитектуры к распределе...Конференция разработчиков программного обеспечения SECON'2014Типовые проекты, где в центре системы стоит реляционная БД, перестают удовлетворять современным требованиям рынка ПО. В норму входит использование очередей, поисковых движков, NoSQL решений, облачных технологий. Всё это требует перехода от «классической» архитектуры к дроблению системы на набор низкосвязанных компонентов, взаимодействующих друг с другом через сообщения или интерфейсы.
Мы рассмотрим примеры типовых подходов и инструментов, которые сейчас актуальны в мире разработки масштабируемых систем.
Архитектура кода нового 2ГИС Web API или куда мы дели MVCDevDayСергей Коржнев
Архитектор версии 1.4 2ГИС Web API
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Тезисы:
● Как организован код в старой версии.
● Вдумчиво смотрим, как мы используем Yii, хватаемся за голову и клавиатуру. Там отрезаем, тут пришиваем, и вуаля!
● Ну и делаем выводы, как мы забороли две классические проблемы программирования: борьба с дублированием кода и сложностью системы.
Переход от монолитной архитектуры к распределеннойAlexander ByndyuПо материалам конференции .NET разработчиков - http://dotnetconf.ru/materialy/frommonolittodistributed
Архитектура высоконагруженного сервиса на примере бэкенда Яндекс.Store — Андр...YandexЯндекс.Store — это магазин приложений для устройств на платформе Android. Для безотказной работы ему необходим мощный бэкенд. Мы поговорим об архитектуре сервиса: об особенностях использования MongoDB в высоконагруженных проектах, а также о том, как мы проектировали протокол взаимодействия.
Специфика рендеринга vue.js-приложений на сервере, Алексей КлюевMail.ru Group– Зачем нужен серверный рендеринг фронтэнд приложению или сайту?
– Какие инструменты стоит применять под задачи проекта?
– Интересные задачи по серверному рендерингу: загрузка данных, разделение сред выполнения кода, и другие.
– На что обращаем внимание при деплое, что замеряем, как анализируем метрики?
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Когда сто...IT-Portfolio20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Когда стоит написать свою БД", Олег Краснов (cистемный Архитектор SEMrush)
Аннотация
В 2008 году система хранения SEMrush была построена на базе сочетания SQL и файлового хранилища. Это позволило выдерживать нагрузку примерно до 3 миллионов запросов в день. Но уже в 2009 году было видно, что интерес к сервису растет стремительно и очень скоро старая система хранения будет основным сдерживающим фактором. Мы провели ряд экспериментов и в результате исследования остановились на собственной структуре хранения данных. Новая система была создана в предельно короткие сроки и уже через 3 месяца была введена в строй. Эта система используется и по сей день, хотя нагрузка выросла на порядок.
В докладе будет освещены история и методы построения хранилища данных проекта SEMrush. В ходе выступления будет проведена ретроспектива требований. Также докладчик расскажет об особенностях применяемого хранилища данных и отличиях от стандартных методов и средств. В том числе, будут освещены перспективы данной технологии применительно к реалиям и новым потребностям проекта.
О компании
Сегодня SEMrush – ведуший сервис для анализа конкурентов. Он позволяет узнать кейворды, по которым любой домен или сайт попадает в AdWords, выдачу Google и Bing. В отличие от других инструментов, которые позволяют анализировать только ваши собственные данные, SEMrush дает возможность изучить рекламные тексты конкурентов и собирает сведения об их бюджетах на продвижение в поисковиках.
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)OnticoРИТ++ 2017, Frontend Сonf
Зал Мумбаи, 6 июня, 14:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2471.html
Знаете ли вы, что такое прогрессивный рендеринг?
Почему вам стоит его использовать?
Какие есть варианты сегодня?
«Scrapy internals» Александр Сибиряков, Scrapinghubit-people- Scrapy is a framework for web scraping that allows for extraction of structured data from HTML/XML through selectors like CSS and XPath. It provides features like an interactive shell, feed exports, encoding support, and more.
- Scrapy is built on top of the Twisted asynchronous networking framework, which provides an event loop and deferreds. It handles protocols and transports like TCP, HTTP, and more across platforms.
- Scrapy architecture includes components like the downloader, scraper, and item pipelines that communicate internally. Flow control is needed between these to limit memory usage and scheduling through techniques like concurrent item limits, memory limits, and delays between calls.
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrainsit-peopleThe document discusses debugging in Python 3.6. It describes tracing and frame evaluation debuggers. Tracing debuggers slow code execution significantly by calling the tracing function on every line. Python 3.6 introduced a new frame evaluation API that allows evaluating frames directly, avoiding the performance issues of tracing. The document demonstrates how to build a debugger using this approach, including setting breakpoints and stepping through code by inserting temporary breakpoints on each line. Frame evaluation allows building a debugger that is faster than tracing debuggers without significant performance penalties.
«Gevent — быть или не быть?» Александр Мокров, Positive Technologiesit-peopleGevent is a concurrency library for Python that uses greenlets, or lightweight coroutines, to provide asynchronous operations and non-blocking I/O. It allows developing highly concurrent applications using a simple and familiar synchronous style. The document compares gevent to other concurrency options like asyncio and discusses how it provides features like asynchronous task execution, event loops, and inter-greenlet communication using queues and callbacks.
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...it-peopleThe document discusses what serverless computing is and how it can be used for building applications. Serverless applications rely on third party services to manage server infrastructure and are event-triggered. Popular serverless frameworks like AWS Lambda, Google Cloud Functions, Microsoft Azure Functions, and Zappa allow developers to write code that runs in a serverless environment and handle events and triggers without having to manage servers.
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologiesit-peopleThe document describes a talk on optimizing Python performance through just-in-time compilation. It discusses how the CPython interpreter works by evaluating bytecode through an evaluation loop. It then talks about how PyPy achieves faster performance through jit compilation of hot loops detected via tracing. The talk dives into the RPython language used to implement PyPy and shows an example of compiling a small Python program to C with RPython. It also discusses using partial evaluation to specialize an interpreter for constant inputs.
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn Systemit-peopleThe document appears to be a transcript of Python code being executed in an interactive Python shell. It contains examples testing the behavior of built-in functions and operators like sorted(), reversed(), isinstance(), sum(), float("nan"), is, min(), and comparisons like ==, <, on various data types including lists, tuples, and dictionaries.
«(Без)опасный Python», Иван Цыганов, Positive Technologiesit-peopleThe document discusses various security vulnerabilities in Python web applications. It begins with an overview of the OWASP Top 10 security risks, with sections focusing on risks related to using components with known vulnerabilities (A9) and insufficient attack protection (A7). For A9, it provides examples of vulnerabilities in popular Python packages and recommends checking changelogs and vulnerability databases. For A7, it recommends implementing attack protections like login attempts logging, rate limiting, and use of a web application firewall. The document also covers security misconfiguration (A5), giving examples like using default settings in production and exposing tracebacks.
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...it-peopleThe document discusses best practices for writing tests in Swift, including recommendations to:
- Write clean, readable tests that focus on asserting a single truth
- Use a domain-specific language in tests for clarity
- Structure tests with "given-when-then"
- Mock dependencies through protocols to enable test isolation
- Favor partial mocks over fully mocking to limit complexity
4. Поиск по Интранету
› Десятки сервисов –Вики, Трекер, Код и т.п.
› Сотни миллионов документов
Поиск по сервисам внутри Яндекс Коннект
› Тысячи организаций
Продукты
4
9. 〉Два брокера
› MongoDB – глобальные распределенные
очереди
› Redis –локальные очереди на одной машине
〉Отдельные ноды и очереди для каждой стадии
Celery
9
14. Tornado
› Асинхронный поход в API
› Простая агрегация данных
Django
› Удобное окружение
› ORM
› REST API
Почему Django и Tornado
14
15. Базовый степ
class Step(object):
def get_future(self, state, requester):
"""
Переопределяется в наследниках,
возвращает таску с основной
логикой степа. Не переопределяется для тех,
у кого нет хождений по http
"""
moment = gen.Future()
moment.set_result(None)
return moment
16. @gen.coroutine
def execute(self, state, requester):
""" Метод который запускает выполнение таски
из self.get_future """
if not state.errors:
res = yield self.get_future(state, requester)
self.process_response(state, res)
def process_response(self, state, response):
""" Переопределяется в наследниках.
По умолчанию не делает ничего. """
pass
17. ParallelStep
class ParallelStep(CompoundStep):
@gen.coroutine
def execute(self, state, requester):
steps = self.get_steps(state)
if not state.errors and steps:
responses = yield [step.get_future(state, requester)
for step in steps]
for response, step in zip(responses, steps):
step.process_response(response)]
self.process_response(state, responses)
18. ChainStep
class ChainStep(CompoundStep):
@gen.coroutine
def execute(self, state, requester):
data = []
steps = self.get_steps(state)
for step in steps:
if state.errors:
break
response = yield step.get_future(state, requester)
data.append(response)
step.process_response(state, response)
self.process_response(state, data)
21. 〉Все компоненты в одном образе
〉У компонента свой набор процессов
〉Контроль процессов с помощью supervisord
〉Для разработки docker-compose
Docker
21