Несколько лет назад мы добавили в мобильное приложение iFunny социальные механики: подписку и фид с мемами, которые запостили друзья. В этом материале обсудим вызовы времени и ответы на них в виде нескольких подходов в технической реализации на бэкенде.
Рубрика «highload» - 3
Переезжаем на ClickHouse: 3 года спустя
2020-09-29 в 14:37, admin, рубрики: big data, clickhouse, highload, sql, Администрирование баз данных, базы данных, Блог компании Конференции Олега Бунина (Онтико), высоконагруженные проекты, системное администрирование, СУБДТри года назад Виктор Тарнавский и Алексей Миловидов из Яндекса на сцене HighLoad++ рассказывали, какой ClickHouse хороший, и как он не тормозит. А на соседней сцене был Александр Зайцев с докладом о переезде на ClickHouse с другой аналитической СУБД и с выводом, что ClickHouse, конечно, хороший, но не очень удобный. Когда в 2016 году компания LifeStreet, в которой тогда работал Александр, переводила мультипетабайтовую аналитическую систему на ClickHouse, это была увлекательная «дорога из желтого кирпича», полная неведомых опасностей — ClickHouse тогда напоминал минное поле.
Три года спустя ClickHouse стал гораздо лучше — за это время Александр основал компанию Altinity, которая не только помогает переезжать на ClickHouse десяткам проектов, но и совершенствует сам продукт вместе с коллегами из Яндекса. Сейчас ClickHouse все еще не беззаботная прогулка, но уже и не минное поле.
Александр занимается распределенными системами с 2003 года, разрабатывал крупные проекты на MySQL, Oracle и Vertica. На прошедшей HighLoad++ 2019 Александр, один из пионеров использования ClickHouse, рассказал, что сейчас из себя представляет эта СУБД. Мы узнаем про основные особенности ClickHouse: чем он отличается от других систем и в каких случаях его эффективнее использовать. На примерах рассмотрим свежие и проверенные проектами практики по построению систем на ClickHouse.
Как создаются Highload проекты на PHP: расшифровка
2020-08-08 в 9:14, admin, рубрики: badoo, highload, php, ruvds_эфиры, Блог компании RUVDS.com, высокая производительность, интервью, Карьера в IT-индустрии28 июля в нашем инстаграм-аккаунте и ютубе прошел прямой эфир с Александром Высоцким — ведущим PHP-разработчиком в лондонском офисе Badoo, который работает в команде антиспама. Саша рассказал о том, как создаются Highload проекты на PHP, своей жизни в Лондоне и, конечно, про Badoo.
Анонс: как создаются Highload проекты на PHP
2020-07-27 в 13:16, admin, рубрики: badoo, highload, php, ruvds_эфиры, Блог компании RUVDS.com, высокая производительность, интервьюВы просили, и мы сделали! Теперь наши прямые эфиры проходят во всех соцсетях сразу — завтрашний стрим можно будет посмотреть на нашем youtube-канале, в ВК, Facebook и в Инстаграме
Завтра, 28 августа, в 20:00 пройдет прямой эфир с Александром Высоцким — ведущим PHP-разработчиком в лондонском офисе Badoo, работает в команде антиспама. Ну что, готовы поговорить про PHP?Читать полностью »
Решение проблемы N+1 запроса без увеличения потребления памяти в Laravel
2020-06-27 в 20:30, admin, рубрики: eager loading, eloquent, highload, laravel, lazy load, N+1, php, высокая производительностьОдна из основных проблем разработчиков, когда они создают приложение с ORM — это N+1 запрос в их приложениях. Проблема N+1 запроса — это не эффективный способ обращения к базе данных, когда приложение генерирует запрос на каждый вызов объекта. Эта проблема обычно возникает, когда мы получаем список данных из базы данных без использования ленивой или жадной загрузки (lazy load, eager load). К счастью, Laravel с его ORM Eloquent предоставляет инструменты, для удобной работы, но они имеют некоторые недостатки.
В этой статье рассмотрим проблему N+1, способы ее решения и оптимизации потребления памяти.
Вы разрабатываете эффективные или антихрупкие системы?
2020-06-27 в 12:02, admin, рубрики: highload, архитектура, оопДавайте поговорим о high-load, high-extensible, ООП, DDD & EDA.
Речь пойдет о разнице между high load & high extensibility — это разные цели и задачи. Для которых нужны принципиально разные подходы. Которые часто вызывают когнитивный диссонанс среди программистов, предвещающий бурную полемику.
На Хабре много статей про high-load, а вот тема high-extensible как-то упускается из внимания.
Transparent coroutines
2020-06-06 в 20:14, admin, рубрики: c++, coroutines, highload, высокая производительность, Программирование, Разработка под LinuxКогда мне становится грустно, я пишу ни кому не нужные библиотеки...
В интернете полно статей про сопрограммы (coroutines) и хабр эта тема не обошла стороной. Вот например, замечательные статьи: Использование Boost.Asio с Coroutines TS, Основы Userver — фреймворка для написания асинхронных микросервисов, но все это становится бесполезно, когда в сопрограмме вам необходимо вызвать функцию из библиотеки, которая делает блокирующий ввод/вывод.
Встречайте еще одну ни кому ненужную библиотеку: yurco — библиотека, которая поможет встроить сопрограммы прозрачно для стороннего кода.
Как подготовить сайт к росту нагрузки
2020-04-03 в 8:26, admin, рубрики: diy или сделай сам, highload, ITSumma, Блог компании ITSumma, высокая нагрузка, инфраструктура, карантин, коронавирус, облака, облачные сервисы, оптимизация инфраструктуры, отказоустойчивость, рост нагрузки, рост трафика, системное администрирование, трафик
Только ленивый не достал с дальней полки свою экспертность и не предсказал «онлайнизацию» жизни — такую же вынужденную, как и режим самоизоляции. Но трафик, действительно, уже начал расти, а с учётом «каникул» до конца апреля ресурсы, предлагающие доставку товаров, услуги онлайн-образования и, особенно, онлайн-развлечений, могут оказаться не готовыми к потоку посетителей в новой реальности.
Опираясь на свой 12-летний опыт технической поддержки веб-проектов и удалённого администрирования серверов, мы подготовили своего рода «методичку»: что стоит проверить и о чём нужно позаботиться, если вы хотите быть уверенным, что ваш сайт справится с любой нагрузкой. Ну, почти любой.
Итак, вот 10 пунктов, которые критичны для активной жизни вашего веб-проекта в ближайшие дни и недели:
Читать полностью »
Кластер Elasticsearch на 200 ТБ+
2020-03-27 в 7:00, admin, рубрики: devops, elasticsearch, highload, Блог компании Одноклассники, высокая производительность, одноклассники, ок.tech, поисковые технологии, системное администрирование
С Elasticsearch сталкиваются многие. Но что происходит, когда хочешь с его помощью хранить логи «в особо крупном объёме»? Да ещё и безболезненно переживать отказ любого из нескольких дата-центров? Какой стоит делать архитектуру, и на какие подводные камни наткнёшься?
Мы в Одноклассниках решили при помощи elasticsearch решить вопрос лог-менеджмента, а теперь делимся с Хабром опытом: и про архитектуру, и про подводные камни.
Почему может понадобится полусинхронная репликация?
2020-03-06 в 12:37, admin, рубрики: db, highload, web-разработка, база данных, Блог компании OTUS. Онлайн-образование, высокая нагрузка, высокая производительность, высоконагруженные системы, кластер, масштабирование, Промышленное программирование, Разработка веб-сайтов, распределенные системы, репликация, репликация базы данныхВсем привет. На связи Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. В преддверии старта нового потока курса «Архитектор высоких нагрузок» я решил написать небольшой авторский материал, которым хочу поделиться с вами.
Введение
Из-за того, что на HDD может выполняться лишь порядка 400-700 операций в секунду (что несравнимо с типичными rps'ами, приходящимися на высоконагруженную систему), классическая дисковая база данных является узким горлышком архитектуры. Поэтому необходимо уделить отдельное внимание паттернам масштабирования данного хранилища.
На текущий момент имеются 2 паттерна масштабирования базы: репликация и шардирование. Шардирование позволяет масштабировать операцию записи, и, как следствие, снижать rps на запись, приходящийся на один сервер вашего кластера. Репликация позволяет делать тоже самое, но с операциями чтения. Именно этому паттерну и посвящена данная статья.Читать полностью »