Анонс Ruby digest: Интересное на Ruby Russia 2022

Nikolai Rubanov (Darksa)
Заметки про Evrone
2 min readOct 6, 2022

Видео с конференции Ruby Russia уже здесь. В этом году мероприятие проходило в онлайн-формате и собрало вместе рубистов не только из России, но и за её пределами. Сегодня мы расскажем, что было интересного в докладах спикеров и о том, какие темы сейчас наиболее актуальны.

Удивительно, но факт. Самая популярная платформа для автоматизации тестирования Cucumber создавалась в качестве дополнения к методологии разработки BDD (Behavior-driven development). По замыслу автора этот инструмент должен был стать связующим звеном между бизнес-аналитиками, разработчиками и тестировщиками. Основная фишка Cucumber — использование естественного языка для написания сценариев тестирования. Например, если команда разработки русскоязычная, то будет разумно использовать русский язык. И так уже делают некоторые компании, например, Альфа-Банк.

Когда что-то должно работать в реальном времени возникает масса нюансов. Часть из них связана с существующими ограничениями на количество одновременно открытых соединений и особенностями протоколов. Для обмена данными в real-time серверу надо держать открытое соединение с браузерами клиентов. Для этого чаще всего используют протокол WebSockets. Увы он не лишен недостатков — например, есть ограничение в 256 подключений на все вкладки браузера. Кроме того мы вообще никак не можем гарантировать, что сообщение по Websocket доставлено. Сбалансировать нагрузку между разными серверами внезапно становится проблемой. А мониторинг превращается в невыполнимый квест.

SMS-уведомления — это хорошо и удобно… но дорого. Бизнес всегда стремится снизить издержки и поэтому переход на практически бесплатные push-уведомления выглядит логично. Но это легко сделать только на бумаге. Реальность же встречает нас целой пачкой «подводных камней». Например, push-уведомления легко могут потеряться по дороге. О последовательности доставки нескольких уведомлений можно только мечтать. Задача не сводится к работе только с доставкой на Apple iOS и Google Android. Huawei, отделившись от сервисов Google обзавёлся собственным «пушистым» сервисом.

Резкий рост нагрузки у современных сервисов давно стал обыденностью. Самый простой вариант решения для кластеров Kubernetes — автоскейлинг. Но насколько эффективно расходуются ресурсы? Не выйдет ли так, что зря «тушим пожар» нагрузки деньгами? Когда этим вопросом задались в компании Самокат, то провели целое детективное расследование. Они выяснили почему веб-сервер Puma может при 50% нагрузке на CPU почти половину запросов отбрасывать с ошибками 502 и 503 и вызывать перезагрузку пода в кластере Kubernetes.

Подробности из самых интересных докладов на Ruby Russia 2022 читайте в полной версии нашего дайджеста.

--

--