Pull to refresh
63
0
Олег Бунин @oleg_bunin

User

Send message

Picodata: простое масштабирование Tarantool

Level of difficultyMedium
Reading time16 min
Views8.3K

Привет! Сегодня я хочу познакомить вас с ПО, которое мы разрабатываем в нашей компанией — кластерной СУБД и сервером приложений на языке Rust. Мы профессионально занимаемся созданием и эксплуатацией решений на основе Tarantool и с некоторых пор начали разработку своего ПО, о котором и пойдёт речь.

Picodata — это дальнейшее развитие истории Tarantool, в которой учтен опыт эксплуатации этой СУБД и предложены решения как архитектурных, так и функциональных недостатков открытой версии Tarantool. Также, наше ПО проще запускать, настраивать и поддерживать в рабочем состоянии благодаря единой точке входа и интеграции всего инструментария в одном исполняемом файле. Мы создавали Picodata как изначально кластерную СУБД, которой удобно пользоваться. Если не верите, что российская СУБД может быть удобной, попробуйте — в конце этой статьи есть раздел Практикум, где можно сразу же попробовать собрать кластер самому на паре-тройке виртуальных машин или на вашем локальном компьютере. Сейчас же будет немного теории о том, как вообще работает распределенный кластер, что именно не так в “ванильном” Tarantool и что нам пришлось сделать чтобы это исправить.

Погрузиться в детали
Total votes 101: ↑101 and ↓0+101
Comments5

Какие процессы вашей разработки стоят того, чтобы о них рассказать сообществу

Reading time4 min
Views2.3K

Вероятно, вам всё еще нужно вызволить вашего кота из заложников деврела, раз вы читаете эту статью. Или у вас нашлась новая причина, так тоже бывает. Это третья часть квадрологии от Романа Поборчего, независимого эксперта — с 2015 он консультирует докладчиков наших конференций, как выступать на технические темы. 

В первой мы искали темы в задачах разработчиков, а во второй - в инструментах разработки. Сегодня мы будем искать темы для выступлений в процессах разработки. Они там есть, мы проверяли.

Читать далее
Total votes 33: ↑17 and ↓16+1
Comments3

Можно ли автоматизировать автоматизацию тестирования?

Reading time7 min
Views4.9K

В своем докладе на конференции TestDriven Conf 2022 Станислав Васенков предлагает за минуту создать из ручного теста проект с автотестами в боевой инфраструктуре. О том, как разрабатывался генератор, можно узнать из интервью.

Кроме того, мы обсудили актуальные проблемы современного тестирования и поговорили о том, почему искать тестировщиков для компании должен не HR, а инженер, говорящий с кандидатом на его языке. 

Читать далее
Total votes 11: ↑10 and ↓1+9
Comments3

Запускаем и отлаживаем внутренние митапы

Reading time12 min
Views2.6K

Однажды мне повезло попасть на запредельно крутой митап. Сотрудники одной компании объединились вокруг своего интереса и с завидным постоянством встречались для его обсуждения. У них было всё серьёзно, для каждой встречи собирали статистику, сколько человек к ним присоединилось, а сколько — пришло, но по какой-то причине ушло и не вернулось. На несколько месяцев вперед у них были расписаны темы, о чем поговорить. В общем, они были великолепны!

И знаете, что было их интересом, что они обсуждали раз за разом? Настольные игры! Их коллеги из соседних команд и компаний сталкивались с кучей сложностей в развитии внутренних сообществ, боролись с нерегулярностью встреч, падением интереса участников. А у этих было всё прекрасно — явка, контент, вовлечение!

Тот кейс многому меня научил. Главный урок — можно и нужно смотреть шире, заглядывать в разные предметные области в поисках  полезных инструментов. Все эти вещи отлично перекладываются и на более «серьёзную» повестку встреч внутри компании — о технологиях, инженерных практиках и остальном вокруг разработки. Как можно запустить и прокачать внутренние митапы у себя в компании — давайте разбираться в статье.

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments0

Tarantool: ускорение разработки с Rust

Reading time17 min
Views12K

Tarantool, как известно, поддерживает любой язык, который совместим с C и компилируется в машинный код. В том числе есть возможность реализации хранимых функций и модулей на Lua и C. Тем не менее, уже в двух своих проектах мы использовали Rust (в одном полностью перенесли Lua-код на Rust) и получили 5-кратное увеличение производительности по сравнению с Lua и сопоставимый результат, который дает по производительности C.

Читать далее
Total votes 51: ↑49 and ↓2+47
Comments27

Как приручить DDD. Часть 1. Стратегическая

Reading time13 min
Views25K

DDD — одна из моих основных рабочих методологий, я применяю её больше пяти лет. Хотя она довольна сложная, в том числе потому что это верхнеуровневый набор практик. DDD - это не фреймворк, когда нет опыта, его немного сложно применять. Тем не менее мы переводили на DDD работающие проекты, запускали с помощью нее новые — и у нас сложились некоторые практики и подходы.

Хотелось бы рассказать про те, что доказали у нас свою эффективность. Сегодня это будет стратегическое верхнеуровневое проектирование — о том, как разрабатывать программы с точки зрения моделей и требований. А в следующей части я расскажу про практики для работы с кодом и архитектурой, то есть более приближенные к разработке. Надеюсь, что вы сможете ими воспользоваться, а если вы еще не используете DDD у себя в проектах, то попробуете.

Читать далее
Total votes 18: ↑18 and ↓0+18
Comments4

Как мы создавали Data Management Platform: архитектура, проблемы, выводы

Reading time11 min
Views5.8K

Для таргетинга мы в Ozon используем сегменты, в которые группируем пользователей по интересам. Интересы могут быть определены через систему трекинга событий. Последние в свою очередь формируются в процессе взаимодействия пользователя с маркетплейсом Ozon. На основе сегментов мы отправляем нотификации, рассылаем письма, показываем рекомендации, баннеры, страницы с товарами и цены на товары, участвующие в маркетинговых акциях. В принципе, на сегменты можно завязать любую механику. Мы даже А/В тесты иногда проводим с ними.

Первоначально сегменты создавались вручную: поступал запрос от заказчика, после чего проводилась аналитическая работа по сбору требований. Количество заявок на создание сегментов со временем только увеличивалось. Чтобы автоматизировать процесс создания сегментов мы решили сделать конструктор сегментов для DMP — Data Management Platform. Это относительно молодой проект, ему чуть больше двух лет, но он полностью себя оправдал. Сегодня расскажу вам о нашем опыте. Меня зовут Евгений Чмель, и я руковожу командой DMP & CDP.

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments0

Team value менеджмент, или Зачем и как тимлиду сотрудничать с вузами

Reading time13 min
Views1.8K

Когда тренер Ливерпуля Юрген Клопп, который сделал команду чемпионом Англии и победителем Лиги Чемпионов, только появился в команде, то в первую очередь он встретился с начальником академии Ливерпуля. Почему?  Потому что Клопп, как тимлид, знает, кто будет играть у него в команде и какие требования к ним он предъявляет. Самым важным для него было рассказать об этом начальнику академии, чтобы тот знал, как воспитывать игроков для Клоппа.

А как, думаете, с этим обстоит дело в мире SW development? Мы с завидным постоянством пытаемся отдать работу с молодыми специалистами — ребятами, которые учатся в университетах —  на откуп рекрутерам. И считаем, что только они должны заниматься сотрудничеством с вузами.

В Dell Technologies я занимаюсь совместными проектами с университетами более десяти лет. И, как вы уже поняли, очень люблю футбол. Поэтому сегодня на примере аналогий из футбольного мира я расскажу, как мы готовим молодых специалистов к началу их карьеры.

Читать далее
Total votes 11: ↑10 and ↓1+9
Comments0

Как можно тестировать платформенные сервисы

Reading time9 min
Views3.3K

PaaS (Platform as a Service) — внутренняя платформа для запуска и разработки приложений. Если коротко, то наш PaaS позволяет легко и, можно сказать, при нулевом знании внутренней кухни создать свой сервис и начать пилить продуктовые компоненты. Более длинное объяснение — в этом видео. Под катом небольшой рассказ о том, с какими проблемами пришлось столкнуться при первом приближении к тестированию продукта, как происходил сам процесс тестирования платформенных решений на примерах и какую пользу это принесло.

Меня зовут Лариса Седнина, я работаю QA-инженером в Авито в юните QA Center of Excellence. Наш юнит — это центр экспертизы по обеспечению качества, основная задача которого в распространении лучших практик тестирования, помощи в настройке процесса тестирования и разработке инструментов для тестирования.

Читать далее
Total votes 13: ↑11 and ↓2+9
Comments1

Меняем стек на продакшене в сжатые сроки

Reading time13 min
Views3.9K

Представьте, что команда инженеров всю ночь перетаскивала в продакшен новую систему, запускала ее, утром сделала свои первые заказы и даже получила их. Они еще не знают, что случится через 10 минут, поэтому полны радости и надежд. Но потом приходит пользовательский трафик — и взрываются чаты и мониторинги…

Но давайте по порядку. Меня зовут Александр Клюшкин. Я работаю в Самокате и на нашем примере расскажу о сложностях перехода на новый стек. Зачем и кому это может понадобиться?

Читать далее
Total votes 18: ↑17 and ↓1+16
Comments2

Введение в distributed tracing

Reading time11 min
Views7.1K

В один прекрасный момент вы можете переезжать из одного ДЦ в другой и понять, что не знаете свои системы: их поведение может стать неожиданным. В одной системе вы должны были работать гораздо быстрее, но теперь работаете медленно. В другой — не понимаете, куда приходит запрос, а в третьей столкнетесь с проблемами.

Чтобы проще и быстрее понимать взаимосвязи между системами, и легко оптимизировать то, что уже было, вам прекрасно подойдет distributed tracing. Но как его выбрать, внедрить и не собрать все грабли?

Безкоровайный Денис, директор подразделения DevOps/DevSecOps в Proto Group и Панычев Дмитрий, руководитель разработки ряда достаточно запутанных проектов в Vprok.ru Перекресток, на конференции DevOps 2021 на примерах показали, как distributed tracing помог им решить бизнес-задачи. Читайте под катом, как они выбирали решение для distributed tracing и обходили грабли.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments3

Микросервисы для чайников: как на них перейти с монолита с нуля

Reading time12 min
Views66K

Меня зовут Семен Катаев, я работаю в Авито над процессом перехода от монолитной архитектуры к микросервисам. Переход у нас все еще продолжается, но мне уже есть чем с вами поделиться. Это краткий обзор того, с чем придётся столкнуться, если вы задумались над созданием надежного, масштабируемого, распределённого приложения.

Нам пришлось поменять практически все процессы разработки, провести реорганизацию в компании, освоить новые для нас паттерны проектирования и начать использовать незнакомые инструменты для перехода к микросервисной архитектуре. Об инструментах сегодня и пойдёт речь.

Читать далее
Total votes 29: ↑27 and ↓2+25
Comments31

Как команде учиться на своих ошибках?

Reading time12 min
Views6K

Мы больше не живем в мире фабрик и заводов, когда от человека можно было требовать четко выполнять свою работу и не ошибаться. В современном мире необходимо, чтобы человек решал нетиповые задачи. А это означает, что он будет ошибаться. С другой стороны, мы не можем быть полностью толерантны к ошибкам, ведь для компании нужен конкретный результат в конкретные сроки.

Из этой статьи вы узнаете, как добиться того, чтобы люди учились на своих ошибках и не повторяли их в будущем, а также — как соблюсти баланс между требовательностью к результату и открытостью к экспериментированию.

Читать далее
Total votes 25: ↑23 and ↓2+21
Comments1

Как сделать стрим в Postgres?

Reading time4 min
Views9.7K

На одной конференции мне задали вопрос (спасибо Александру!): как сделать стрим в PostgreSQL? Представьте, что имеется bytea и вы к нему хотите что-то дописать. Люди столкнулись с тем, что на это в PostgreSQL  тратится гигантское время  и растет WAL-трафик. 

Расскажу, что с этим возможно сделать — это будет еще один пример оптимизации TOAST (о чем я недавно писал), на на этот раз — для быстрой записи потока бинарных данных. На самом деле мой коллега, Никита Глухов, за несколько часов сделал расширение, которое «вылечило» проблему, и мы даже успели рассказать про это на сессии блиц-докладов на PGConf.Online 2021.

Читать далее
Total votes 33: ↑33 and ↓0+33
Comments2

Борьба с  TOAST или будущее JSONB в PostgreSQL

Reading time9 min
Views21K

В PostgreSQL есть два типа данных: JSON и JSONB. Первый формат является текстовым хранилищем, в котором json хранится "as is",  второй — бинарным, в нем ключи отсортированы  (сначала по длине ключа, а потом по его названию), дубликаты удалены, а пробелы удалены.

Тип JSONB имеет богатую поддержку, облегчающую работу разработчиков приложений, для него есть встроенные индексы, кроме того, существует расширение Jsquery, в котором реализован язык запросов к JSONB и дополнительные индексы. Когда у меня спрашивают, чем пользоваться, я всегда советую JSONB, так как он позволяет работать очень эффективно. 

Однако у постгреса есть серьёзная проблема, которая сказывается и на производительности JSONB  — это TOAST, и о ней я говорил в первой части. Сегодня я расскажу о том, как мы улучшили JSONB для того, чтобы существенно повысить его производительность.

Читать далее
Total votes 58: ↑57 and ↓1+56
Comments10

Обеспечение качества чат-бота: разбираем на примере слоёного пирога

Reading time13 min
Views5.5K

В Ozon поступают сотни тысяч заказов в день — при таком масштабе у пользователей неизбежно возникают очень разнообразные вопросы, которые они пишут в чат поддержки: как оплатить баллами «Спасибо», как вернуть не понравившуюся кофту или есть ли доставка в Норильск. При этом большинство вопросов в поддержку однотипны, а ответа пользователи ожидают мгновенно и в любое время суток. 

Чтобы отвечать на все эти вопросы, в Ozon есть несколько тысяч сотрудников КЦ в Твери и Тамбове, но даже при таком количестве специалистов им нужна помощь, в первую очередь по ответам на часто повторяющиеся вопросы. И самое очевидное решение — автоматизация с помощью чат-бота.

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

Читать далее
Total votes 21: ↑21 and ↓0+21
Comments6

Kubernetes: трансформация к SecDevSecOpsSec

Reading time14 min
Views6.2K

Данная статья — взгляд на то, как Kubernetes способен повысить уровень безопасности, упростив управление ею и ускорив внедрение механизмов безопасности с точки зрения специалиста по ИБ, который большую часть своей карьеры занимался наступательной безопасностью. Сейчас на примере Kubernetes я вижу, что на нем можно организовать так называемую self defense (самозащищающуюся) систему.

Меня зовут Дмитрий Евдокимов, я founder и CTO компании Лантри, а кто-то может меня лучше знать, как автора каналаk8s (in)security. Про безопасность я буду говорить, исходя из моего опыта, как человека, который десять лет атаковал различные системы, реализуя угрозы и риски. Ссылка на мое выступление на конференции DevOps Conf 2021 будет в конце статьи.

Читать далее
Total votes 28: ↑27 and ↓1+26
Comments7

Микросервис головного мозга. Пилим всё, что движется

Reading time13 min
Views13K

Это история о том, как увеличить скорость выкатки фич, но сохранить качество продукта. О болевых точках, которые замедляют разработку, и новой «болезни» — микросервисе головного мозга, которую диагностировал Михаил Трифонов, техлид фронтов в SberСloud. Он утверждает, что она приводит к росту функциональности ML Space на 683% при увеличении команды разработки всего в 2 раза. Невероятно, но бизнес-аналитика это подтверждает. Так что давайте разбираться по порядку.

Читать далее
Total votes 18: ↑18 and ↓0+18
Comments7

Выявление техдолга и оценка его процентов

Reading time12 min
Views7.5K

Как оценить технический долг и получить разрешение на его починку, прежде чем он поглотит вас и вашу команду? Этот вопрос рано или поздно встает перед всеми лид-разработчиками. Но его решение требует большой экспертизы и грамотного анализа. Поэтому давайте вместе разбираться, как лучше искать, извлекать и обеспечивать техдолг, а заодно выясним причём тут слоны.

Читать далее
Total votes 18: ↑18 and ↓0+18
Comments0

Ваши процессы попахивают. Как это понять и что делать?

Reading time13 min
Views21K

В этой статье я не буду рассказывать про успешные внедрения, лучшие практики и общеполезные методики. Я вообще не буду давать какие-либо советы. Наоборот, попытаюсь на основании своего опыта рассказать, как бывает плохо, какие практики быстро становятся ужасными и чего нужно опасаться.

Читать далее
Total votes 59: ↑57 and ↓2+55
Comments17
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity