Pull to refresh
24
0
Антон Зубарев @aszubarev

User

Send message

Как в восемь раз уменьшить количество DNS-запросов в Go

Reading time6 min
Views13K

Привет, Хабр. Меня зовут Рустам. Я работаю в Ozon: админю Kubernetes и пишу на Go.

У нас очень много сервисов на Go — их количество исчисляется тысячами. Запускаются они внутри кластеров Kubernetes. А я плотно работаю с Kubernetes и заметил, что при запуске кода внутри Kubernetes для резолва одного адреса делается до десяти DNS-запросов. Это, конечно, влияет на производительность.

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

Узнать больше про Go+DNS
Total votes 75: ↑55 and ↓20+51
Comments9

Строим свой SSO. Часть 4: Vue.js, Регистрация, Сброс пароля

Level of difficultyMedium
Reading time44 min
Views9.9K

Всем привет!
Мы продолжаем строить собственный SSO Server. Сегодня мы детально разберем Vue.js приложение, а также спроектируем и реализуем долгожданные механизмы регистрации и сброса пароля. Как всегда, дополнительно мы разберём ряд интересных общесистемных решений, которые наверняка Вам пригодятся в дальнейшем.

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

Почему я больше не делаю важные дела: и еще 3 правила как не потерять себя к 40 годам

Level of difficultyEasy
Reading time8 min
Views136K

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

Читать далее
Total votes 154: ↑119 and ↓35+110
Comments237

Конрад Цузе — программист, обогнавший время

Level of difficultyEasy
Reading time13 min
Views44K


Сегодня исполняется 114 лет со дня рождения Конрада Цузе, пионера создания вычислительной техники, человека, которому сама судьба пыталась помешать двигать прогресс, но не помешала создать первый язык программирования высокого уровня, один из первых компьютеров и первую книгу по цифровой физике.
Читать дальше →
Total votes 87: ↑83 and ↓4+104
Comments29

Как настроить DNS балансировку с Consul

Reading time3 min
Views2.5K

Привет, Хабр!

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

Consul — это open-source инструмент от HashiCorp, который обеспечивает сервис-дискавери, проверку состояния сервисов, балансировку нагрузки и глобально распределенное хранилище ключ-значение.

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

Ускорение роутера в Django в 51 раз

Level of difficultyMedium
Reading time6 min
Views12K

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

Читать далее
Total votes 52: ↑51 and ↓1+58
Comments17

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

Level of difficultyMedium
Reading time8 min
Views8.3K

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

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

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

Level of difficultyMedium
Reading time7 min
Views3.9K

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

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

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

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

Level of difficultyEasy
Reading time8 min
Views28K
Стресс, связанный с переходом на менеджерскую роль, способен пошатнуть любые, даже самые крепкие нервы. А если ваше решение стать руководителем желанное и осознанное, то вы легко можете загнать себя в ловушку из двух стен: тревожности и перфекционизма.

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

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


Читать дальше →
Total votes 43: ↑42 and ↓1+51
Comments17

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

Level of difficultyMedium
Reading time5 min
Views3.8K

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

Читать далее
Total votes 8: ↑6 and ↓2+4
Comments9

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

Level of difficultyEasy
Reading time6 min
Views4.7K

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

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

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

Level of difficultyEasy
Reading time9 min
Views131K

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

Читать далее
Total votes 142: ↑119 and ↓23+128
Comments370

Postgresso #5 (66)

Reading time19 min
Views5.2K

PostgreSQL: PostgreSQL 17 Beta 1 Released!

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

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

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

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

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

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

Level of difficultyEasy
Reading time8 min
Views8.7K

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

Читать далее
Total votes 14: ↑12 and ↓2+12
Comments108

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

Level of difficultyEasy
Reading time3 min
Views1.5K

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

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

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

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

Level of difficultyMedium
Reading time23 min
Views4.6K

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


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


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

Читать дальше →
Total votes 24: ↑24 and ↓0+34
Comments6

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

Level of difficultyEasy
Reading time16 min
Views6.3K

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

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

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

Ну что ж, приступим
Total votes 23: ↑22 and ↓1+24
Comments12

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

Level of difficultyMedium
Reading time19 min
Views93K

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

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

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

Level of difficultyMedium
Reading time16 min
Views4.8K

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

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

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

Level of difficultyEasy
Reading time8 min
Views7.7K

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

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

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

Information

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

Specialization

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