Pull to refresh
11
0.2
Oleg Kunitsyn @olku

User

Send message

Как обойти лимит Telegram API для групп свыше 10,000 участников

Level of difficultyEasy
Reading time3 min
Views4.3K

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

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

Эта инициатива казалась нам многообещающей, однако в процессе реализации мы столкнулись с серьёзным ограничением. При попытке загрузить список пользователей из группы на 13,000 человек, система смогла обработать только 10,000. Это ограничение API Telegram значительно усложнило выполнение задуманного плана, требуя от нас дополнительных технических решений.

Читать далее
Total votes 17: ↑7 and ↓10-3
Comments10

Лучшие практики для надёжной работы с RabbitMQ

Level of difficultyEasy
Reading time13 min
Views20K

Привет, Хабр! Я Женя, архитектор интеграционной платформы в Точке, отвечаю за асинхронный обмен сообщениями между внутренними сервисами, за ESB и за брокеры сообщений.

В этой статье я постарался кратко и последовательно изложить основные моменты, о которых полезно помнить при использовании RabbitMQ, если важны стабильность обмена и сохранность данных.

В первую очередь материал рассчитан на разработчиков, которым ещё не приходилось погружаться в тонкости работы с RabbitMQ или использовать его вообще. Более опытным читателям статья может пригодиться в качестве компактной и упорядоченной выжимки из уже знакомых статей, вебинаров и многочисленных страниц документации.

Следуй за белым кроликом
Total votes 58: ↑58.5 and ↓-0.5+59
Comments16

Архитектура — зеркало корпоративных ценностей

Reading time19 min
Views3.2K

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

Для IT компаний архитектура — базис, на котором выстраиваются все продукты и подходы. Но, у архитектуры тоже должна быть основа. Интересно, что будет, если мы будем выстраивать её из ценностей? Не тех, которые плакатами развешаны на кухне, а тех, которые живут «в курилке», на которых сформировалась компания и коллектив.

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

Плюсы и минусы каждого инфраструктурного решения за четыре года работы в стартапе

Level of difficultyMedium
Reading time15 min
Views11K

Последние четыре года я занимался в стартапе руководством инфраструктурой, которая должна была быстро масштабироваться. С самого начала я принял фундаментальные решения, которых компании нужно было придерживаться несмотря ни на что все эти четыре года. В посте я перечислю некоторые из важных решений, принятых мной, расскажу, сожалею ли я о них, или одобряю.
Читать дальше →
Total votes 45: ↑42 and ↓3+39
Comments6

JWT-аутентификация при помощи Spring Boot 3 и Spring Security 6

Level of difficultyMedium
Reading time15 min
Views33K

Переход от базовых приложений к более сложным требует использования Spring Security для обеспечения безопасности. Новая версия, Spring Security 6, изменяет некоторые базовые реализации, а русскоязычных материалов на эту тему очень мало. В этой статье мы рассмотрим JWT-аутентификацию и авторизацию с помощью Spring Boot 3 и Spring Security 6, чтобы помочь начинающем разработчикам разобраться и начать пользоваться базовым функционалом этой библиотеки. Цель данной статьи - показать, как использовать JWT-аутентификацию с API-интерфейсами.

Читать далее
Total votes 16: ↑13 and ↓3+10
Comments11

Рассчитываем рейтинг товара на основе оценок пользователей с KafkaStreams и OpenSearch

Level of difficultyMedium
Reading time14 min
Views3.2K

Всем привет! Меня зовут Александр. Последний год тружусь фрилансером на проекте по созданию очередного маркетплейса. Мои задачи включают разработку скоринговой системы продуктов, которая бы позволяла формировать выборку товаров по популярности на основе нескольких показателей. Одним из показателей являются оценки пользователей по шкале от 1 до 5. Думаю, что не станет открытием Америки то, что расчет рейтинга товара по среднему арифметическому всех оценок приводит к насовсем корректным результатам выборки. Например, при таком подходе товар "А" с одной оценкой 5 в рейтинге будет выше товара "Б", у которого сотня оценок 5 и одна оценка 4. Решение данной проблемы давно найдено - для расчета следует применить доверительный интервал биномиального распределения по методу Уилсона (Wilson Score Confidence Interval).

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

Исследуем пределы пропускной способности Kafka в инфраструктуре Dropbox

Reading time6 min
Views8K


Широкое использование технологий Apache-стека — очевидный тренд. И Kafka на острие популярности: нынче людей, знающих такой брокер сообщений, пожалуй, превосходит количество тех, кто привык рядом со словом Кафка видеть слово Франц.

Мы и сами активно используем эту технологию в наших проектах. Но ведь всегда интересно, а как оно получается у других? И вдвойне интересно, если это не просто пример из чьей-то практики, а целенаправленное тестирование технологии. Поэтому мы перевели свежую статью, в которой рассказывается о том, как Dropbox опытным путём искал границы возможностей и лимиты выносливости у Kafka. И нашёл что хотел.
Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments4

5 вещей, о которых должен знать любой разработчик Apache Kafka

Reading time15 min
Views69K


Apache Kafka — это платформа потоковой обработки событий, которую используют 30% компаний из Fortune 500. У Kafka много функций, благодаря которым платформа задает стандарт обработки событий, и здесь мы поговорим о пяти самых важных аспектах, которые должны быть известны любому, кто работает с Kafka.


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

Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments3

Инструменты для тестирования Kafka

Reading time4 min
Views17K

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

Читать далее
Total votes 12: ↑9 and ↓3+6
Comments7

Обзор UI-инструментов для мониторинга и управления кластерами Apache Kafka

Reading time8 min
Views40K

Прим. перев.: автор этого материала — Герман Осин, старший архитектор решений в Provectus. Осин сравнивает функциональность восьми UI-инструментов, которые помогают решить проблемы наблюдаемости и мониторинга Apache Kafka. Стоит отметить, что обзор скорее вводный. Он будет полезен для первоначального знакомства с возможностями решений.

Apache Kafka — незаменимый инструмент для обработки данных в реальном времени и отслеживания активности приложений. К сожалению, мониторинг кластеров Apache Kafka и управление ими — непростая задача. Решить ее помогают сторонние коммерческие или Open Source-инструменты с графическим интерфейсом и дополнительными функциями в области администрирования и мониторинга.

В статье представлен краткий обзор таких инструментов.

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

Kafka за 20 минут. Ментальная модель и как с ней работать

Level of difficultyMedium
Reading time19 min
Views78K

Привет! Меня зовут Глеб Гончаров, и я руковожу подгруппой ИТ-инфраструктуры в СберМаркете. В работе мы широко используем Kafka как шину данных для микросервисов и не раз убедились на практике, что к инструменту важно подобрать правильный подход. Об этом сегодня и поговорим в двух частях — сначала обсудим основы, а в конце статьи будет ссылка на практические задания.

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

Как новому тимлиду завоевать доверие команды: 9 правил, которые я усвоил за полгода в этой роли

Level of difficultyEasy
Reading time10 min
Views5.9K

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

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

Позиция тимлида вообще предполагает relationship management, который может быть направлен как и на команду, так и наверх, в сторону стейкхолдеров. Но в этой статье я хочу поговорить именно про связку TL + Dev Team. Руководителю важно выстроить и поддерживать доверительные отношения с сотрудниками. Это поможет эффективно управлять командой и добиваться слаженной и продуктивной работы.

Если люди вам доверяют, вы будете получать более полную и достоверную информацию, сможете вовремя реагировать на проблемы, решать конфликты и строить долгосрочные планы.

Я говорил с коллегами, читал статьи по теме, прослушал курс Стратоплана и в итоге собрал несколько идей и правил, которые сам применяю на практике, чтобы наладить стабильные процессы в команде и добиться доверия сотрудников.

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

Анализ безопасности приложений, использующих GraphQL API

Level of difficultyMedium
Reading time14 min
Views3.8K

Привет! Меня зовут Даниил Савин. Летом я участвовал в программе стажировки для безопасников от Бастион и в процессе глубоко исследовал тему безопасности приложений, использующих GraphQL. Так появилась статья, из которой вы узнаете:

• какие встроенные функции есть у GraphQL;

• как тестировать GraphQL API;

• какие инструменты использовать;

• и как обходить различные защитные механизмы.

Читать далее
Total votes 24: ↑23 and ↓1+22
Comments1

Работа с хранилищами в Kubernetes: руководство для инженеров

Reading time21 min
Views13K
image

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

Накопленный мною опыт в этой области стал основой для этой статьи.

Я сфокусируюсь на трёх ключевых элементах управления хранилищем в Kubernetes:

  • PersistentVolumes (PV).
  • PersistentVolumeClaims (PVC).
  • Storage Classes.

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

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

Например, у нас была задача обеспечить надёжное и масштабируемое хранение данных в веб-приложении для управления клиентскими заказами. Мы настроили в Kubernetes Storage Class на основе SSD для базы данных (что не является хорошей практикой): это помогло обеспечить быстрый доступ и обработку транзакций. А для логов и нечасто применяемых данных использовали отдельный Storage Class с HDD, и это позволило снизить затраты.

А главное, Storage в Kubernetes — это такая штука, которую ты сделал и забыл, дальше оно там само работает.

Рассказываю детально.
Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments4

Spring Cloud Gateway. Единая точка входа или отказа: путь к non-blocking API gateway

Level of difficultyHard
Reading time20 min
Views11K

Привет, Хабр! Меня зовут Никита Летов, я техлид бэкенд-разработки сервисов дистанционного банковского обслуживания Росбанка для физических лиц, или как модно сейчас говорить, ретейла. В этом посте я расскажу, что такое входная точка в приложение, когда в ней появляется необходимость и какие вообще задачи решает паттерн API Gateway. Мы рассмотрим классический блокирующий подход на примере гейтвея Netflix Zuul 1.x, проблемы, связанные с его эксплуатацией, а также реактивный Spring Cloud Gateway и сложности перехода на него. В заключение сравним два подхода.

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

Topics API — как персонализированная реклама может работать без cookie

Level of difficultyMedium
Reading time7 min
Views1.9K

Отказ от third‑party кук уже не за горами. Однако в попытке уберечь пользователя от «слежки» браузеры рискуют по дороге отправить в могилу индустрию персонализированной рекламы (и не только, но сегодня про нее). Могу только представить, что испытывает Google, разрываясь между желанием сохранить лояльность пользователей Chrome и стремлением продолжить зарабатывать на рекламе сотни миллионов долларов ежедневно. В качестве решения проблемы, в рамках инициативы Privacy Sandbox, Google предлагает использовать Topics Api, как инструмент доступа к «интересам» пользователя без возможности его отслеживания.

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

Производительность базового поиска в Ozon как культурный феномен

Level of difficultyMedium
Reading time22 min
Views22K

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

Читать далее
Total votes 81: ↑76 and ↓5+71
Comments87

Автономия разработчиков. Как устроены компании нового типа

Level of difficultyEasy
Reading time7 min
Views11K

Сигарная фабрика начала 20 века, фото: университет Южной Флориды

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

Человек — социальное существо. Люди привыкли физически собираться вместе, чтобы действовать сообща. Но внезапно выяснилось, что для интеллектуального труда это не обязательно. Работники успешно выполняют задачи не выходя из дома… Для некоторых представителей управленческой элиты это стало шоком.
Читать дальше →
Total votes 66: ↑60 and ↓6+54
Comments55

«Человеческая» сторона ИТ. Распространённые проблемы разработки, связанные с людьми

Reading time4 min
Views3.3K

Недавно Аби Нода*, программист и генеральный директор платформы DeveloperExperience, ознакомился с исследованием The Human Side of Software Engineering Teams: An Investigation of Contemporary Challenges. В нём авторы обозначили наиболее важные «человеческие» проблемы, сопутствующие разработке ПО.

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

Подробнее о том, как человеческий фактор мешает работать программистам, читайте под катом.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 20: ↑17 and ↓3+14
Comments0

Типичный Swagger без гмо

Level of difficultyMedium
Reading time6 min
Views9.9K

Кто из нас не был одурманен сказками про свагер? Мол, добавь эту волшебную штуку — да заживешь! Но плата за магию — зеленое болото нотаций. А нельзя ли обойтись только типизацией самого php? (Спойлер: онжом)

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

Information

Rating
2,220-th
Location
Berlin, Berlin, Германия
Registered
Activity