Как стать автором
Обновить
24
0
Антон Зубарев @aszubarev

Пользователь

Отправить сообщение

Древние свитки CI/CD: смыслы, которые мы потеряли

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8.5K

Привет, Хабр. Меня зовут Владимир Утратенко, я — Head of Infrastructure and Security в Uzum Market. У меня богатый опыт найма DevOps-инженеров, ведь последние 6 лет я — нанимающий менеджер. А ещё много лет подряд занимаюсь DevOps как моделью разработки. Сегодня мы поговорим про боли в CI/CD, которые часто упускают из вида DevOps-специалисты, лиды и CTO.

Читать далее
Всего голосов 17: ↑16 и ↓1+17
Комментарии7

Статический анализ структуры базы данных (часть 3)

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров4.1K

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

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

Читать далее
Всего голосов 6: ↑6 и ↓0+11
Комментарии0

«Я стал тимлидом и боюсь». Что почитать и зачем

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров29K
Стресс, связанный с переходом на менеджерскую роль, способен пошатнуть любые, даже самые крепкие нервы. А если ваше решение стать руководителем желанное и осознанное, то вы легко можете загнать себя в ловушку из двух стен: тревожности и перфекционизма.

Меня зовут Александр Шиндин, я — технический менеджер мобильных продуктов Kaspersky Password Manager и Kaspersky Who Calls. Я так сильно хотел проявить себя в роли руководителя, что внутренних обучающих курсов, которые дает в таких случаях компания, мне не хватало, — и лучшим дополнением к теории стали книги. Они ускорили мое погружение в мир менеджмента, помогли быть готовым к еще большему числу нестандартных ситуаций и придали уверенности в принимаемых решениях.

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


Читать дальше →
Всего голосов 44: ↑43 и ↓1+52
Комментарии17

Web-приложение с использованием fingerprint: как это работает и в чем сложность

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.9K

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

Читать далее
Всего голосов 8: ↑6 и ↓2+4
Комментарии9

IT-сектор Кубы: непростая судьба интернета на Острове Свободы

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров4.7K

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

Читать далее
Всего голосов 12: ↑9 и ↓3+8
Комментарии21

Как бауманец научился делать миллионы на маркетплейсах и теперь работает с 7 до 21 без выходных

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров132K

Так, с женой мы взяли 1 млн ₽, купили станки и запустили свое производство кожаных изделий. Сейчас у нас работает 7 человек.

Читать далее
Всего голосов 142: ↑119 и ↓23+128
Комментарии370

Postgresso #5 (66)

Время на прочтение19 мин
Количество просмотров5.4K

PostgreSQL: PostgreSQL 17 Beta 1 Released!

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

В пояснительной записке к релизу тоже начинают с оптимизации. Первым делом рассказывают об изменениях в Vacuum. Там новая внутренняя структура, благодаря которой удалось сэкономить 20% памяти, а также сократить время самой очистки. Последний пункт касается редкой темы: в PostgreSQL 17 улучшена поддержка SIMD-инструкций.

Интересный, важный пункт - управление переключением при логической репликации (failover control for logical replication), важное для отказоустойчивых конфигураций.

В SQL/JSON появилась важнейшая вещь - JSON TABLE, это новый уровень работы с этим форматом. Также появились новые конструкторы и другие функции.

Читать далее
Всего голосов 22: ↑22 и ↓0+31
Комментарии1

Необходимое зло

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров8.9K

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

Читать далее
Всего голосов 14: ↑12 и ↓2+12
Комментарии108

OpenDJ: быстрый масштабируемый LDAP на базе Apache Cassandra

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.5K

LDAP-совместимые службы каталогов — широко распространенный отраслевой стандарт и удобное решение для хранения идентификационных данных.

В одном из популярных open-source LDAP каталогов OpenDJ, начиная с версии 4.6.1 появилась возможность использовать Apache Cassandra или ScyllaDB в качестве хранилища данных. Это позволяет использовать преимущества производительности и масштабируемости колоночных NoSQL БД по сравнению с классическими LDAP каталогами. В данной статье мы развернем инстанс OpenDJ на базе Apache Cassandra.

Читать далее
Всего голосов 1: ↑1 и ↓0+3
Комментарии1

Почему MMAP не лучший выход

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров4.8K

Доступ к файлам через отображение-в-память (mmap) — это способность некоторых операционных систем отобразить содержимое какого-либо файла в адресное пространство программы. Сама программа получает доступ к содержимому файла через указатели, как если бы сам файл был бы целиком загружен в оперативную память. Операционная система прозрачно загружает части файла в оперативную память, и автоматически выгружает их, когда памяти не хватает.


MMAP захватила умы программистов СУБД на многие десятилетия, как альтернатива буферу данных. И вот здесь следует отметить, что в mmap имеются серьёзные проблемы с корректностью и скоростью работы с данными в современных СУБД. В реальности, некоторые известные СУБД сперва использовали mmap для работы с "больше-чем-вмещается-в-память" базами данных, но вскоре обнаружили эти скрытые ограничения, которые принудили их к самостоятельному управлению файловым вводом/выводом, после заметных трат на инженерные исследования. В этом смысле mmap и СУБД подобны сочетанию кофе и острой пищи: неудачное сочетание, которое не очевидно, пока сам не попробуешь.


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

Читать дальше →
Всего голосов 24: ↑24 и ↓0+34
Комментарии7

Пишем универсальный прототип бэкенд-приложения: Litestar, FastStream, dishka

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров6.9K

Привет, Хабр! Меня зовут Сергей, я техлид в команде PT BlackBox. Мы с коллегами разрабатываем продукт, который позволяет обнаруживать уязвимости в приложениях методом черного ящика. Фактически мы сами и пишем веб-приложения, и именно о них пойдет речь в статье.

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

Для написания прототипа я буду использовать LitestarFastStream и dishka. Эта статья будет особенно полезна тем, кто пишет на Tornado, Django, Flask или AIOHTTP и хочет перейти на более актуальные технологии для дальнейшего развития своих проектов на современных рельсах.

Ну что ж, приступим
Всего голосов 23: ↑22 и ↓1+24
Комментарии12

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

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров97K

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

Читать далее
Всего голосов 41: ↑41 и ↓0+41
Комментарии15

Transactional Outbox: от идеи до open-source

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров5.2K

Привет! На связи Миша Меркушин. Я тимлид команды Ruby Platform, ответственной за разработку внутренних библиотек и улучшение архитектуры микросервисов на Ruby в СберМаркете. Эта статья про архитектурный паттерн Outbox и инструмент, который мы создали и итерационно развивали внутри команды и лишь недавно «выпустили» его в мир. Он решает проблему обеспечения надежной и согласованной отправки сообщений из приложения, гарантируя, что сообщение будет отправлено после успешного завершения транзакции базы данных.

Читать далее
Всего голосов 27: ↑25 и ↓2+24
Комментарии13

10 лет Kubernetes: как родился один из самых крупных Open Source-проектов современности

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров7.9K

10 лет назад, 6 июня 2014 года, был сделан первый коммит в Kubernetes. По сути, этот день стал историческим — тогда определился путь развития современных технологий контейнеризации и организации облачной инфраструктуры.

Сегодня, согласно отчету Cloud Native Computing Foundation (CNCF), Kubernetes пользуются 71% компаний из списка Fortune 100. Чтобы понять, как Kubernetes стал одним из краеугольных камней облачных вычислений и микросервисов, посмотрим на первые годы его жизни. Это будет история о необычной стратегии борьбы с конкурентами и способности объединить враждующие стороны в работе над одним проектом.

Читать далее
Всего голосов 24: ↑23 и ↓1+27
Комментарии5

Знакомство с Debezium — CDC для Apache Kafka

Время на прочтение18 мин
Количество просмотров93K


В своей работе я часто сталкиваюсь с новыми техническими решениями/программными продуктами, информации о которых в русскоязычном интернете довольно мало. Этой статьей постараюсь восполнить один такой пробел примером из своей недавней практики, когда потребовалось настроить отправку CDC-событий из двух популярных СУБД (PostgreSQL и MongoDB) в кластер Kafka при помощи Debezium. Надеюсь, эта обзорная статья, появившаяся по итогам проделанной работы, окажется полезной и другим.

Что за Debezium и вообще CDC?


Debezium — представитель категории программного обеспечения CDC (Capture Data Change), а если точнее — это набор коннекторов для различных СУБД, совместимых с фреймворком Apache Kafka Connect.
Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии1

Change Data Capture (CDC) в Yandex Data Transfer: гид по технологии с примерами

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров8.4K
В современных микросервисных архитектурах регулярно встречаются потребности в кешах, индексах полнотекстового поиска, репликах, а также в реактивном взаимодействии компонентов. Решать все эти задачи по отдельности — тот ещё вызов, но оказывается все эти задачи могут быть решены одним механизмом, и имя ему: Change Data Capture.

Меня зовут Тимофей Брунько, я разработчик Yandex Cloud. В этой статье я расскажу о том, как в теории и на практике работает CDC — Change Data Capture, или буквально «захват изменения данных», — и как наш сервис Yandex Data Transfer с поддержкой формата Debezium помогает пользователям решать задачи поставки данных, связанные с CDC. В конце статьи покажу реальные кейсы. Поехали.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии4

Паттерн: Сага

Время на прочтение2 мин
Количество просмотров140K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Pattern: Saga" автора Chris Richardson.


Ситуация


Есть приложение, к которому применялся паттерн Database per Service. Теперь у каждого сервиса приложения есть своя собственная база данных. Некоторые бизнес транзакции охватывают сразу несколько сервисов, так что нужен механизм, обеспечивающий согласованность данных между этими сервисами.


Например: давайте представим, что мы разрабатываем интернет магазин, где у клиента есть кредитный лимит. Приложение должно гарантировать, что новый заказ не превышает кредитный лимит клиента. Так как Заказы и Клиенты — различные базы данных, то приложение не может использовать локальные ACID транзакции.


Проблема


Как обеспечить согласованность данных между сервисами?


Решение


Необходимо каждую бизнес транзакцию, которая охватывает несколько сервисов, реализовывать как сагу.


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


Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии10

Катастрофа с Hibernate 6.5 при обновлении на Spring Boot 3.3.0

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров8.5K

Обновившись до Spring Boot 3.3.0 (конкретно до Hibernate 6.5), мы столкнулись со 100% загрузкой процессора на БД из-за небольшого изменения в SQL коде, сгенерированного Hibernate после преобразования JPQL в SQL.

Читать далее
Всего голосов 11: ↑10 и ↓1+12
Комментарии12

Я посмотрел 100 FAANG вакансий и вот их требования к английскому

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров18K

С 90% вероятностью многие из вас видели десятки, сотни и тысячи вакансий, где в требованиях был указан именно Fluent английский. Но в голове у вас идея, что нужен именно C1.

Почему так?

Есть старое и отличное исследование про внимательность, которое показывает, что мы видим то, что хотим видеть и на чём мы сфокусированы. Сейчас часто используется термин «информационный пузырь».

Читать далее
Всего голосов 23: ↑14 и ↓9+10
Комментарии15

Офис или удаленка: топ-10 причин офисной работы

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров8.1K

До 2020 года не только лишь все компании практиковали удаленный опыт работы. Таких агентств было с десяток на рынке. Но ковид многое изменил – сначала всех перевели на удаленку, как того требовала безопасность, а после как-то привыкли. Ну удобно, правда же? Не надо ехать на работу и с нее, можно подольше поспать, а в обеденный перерыв позаниматься своими делами. Или не только в обеденный? 🙂

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

Читать далее
Всего голосов 15: ↑3 и ↓12-9
Комментарии33

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Software Architect
Lead
Git
SQL
Docker
Python
Django
RabbitMQ
Kubernetes
Database
Designing application architecture
Creating project architecture