Обновить

Бэкенд

Сначала показывать
Порог рейтинга
Уровень сложности

Идеи потерявшие смысл: Scrum и ООП

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

Когда хорошая идея становится популярной - все начинают пересказывать её "как поняли". В итоге в информационном поле от изначальной идеи остаётся настолько мало, что её перестают воспринимать всерьёз. В этой статье я хочу рассказать о двух таких идеях: Scrum и ООП

Читать далее

Kubernetes networking или «сеть в кубернетесе»

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


Привет, Хабр! На связи Георг Гаал, основатель и CTO AEnix, идеолог cozystack.io, член программного комитета конференций DevOpsConf и ведущий разнообразных образовательных проектов. В этой статье я хочу поговорить про сетевую подсистему Kubernetes и разобраться, какой CNI-плагин выбрать для production-кластера. 

Читать далее

Продолжаем вкатываться в Go — таблица компетенций. Что ты должен знать на джуна/мидла?

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

Всем привет!

Не так давно я выкладывал RoadMap для самостоятельного изучения Go. Но во время обучения всегда встаёт важный вопрос: «А что учить дальше и на каком я уровне?».

Чтобы закрыть и его, я подготовил логичное продолжение — таблицу с вопросами и темами для самопроверки по грейдам (Junior, Middle, Senior).

Читать далее

Мастерски снижаем затраты на токены LLM

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

Статья про неконтролируемый рост сжигания токенов и как это угрожает юнит-экономике вашего стартапа. Делюсь ключевыми уроками, позволившими мне сократить расходы. Эти шаги стали критически важны при масштабировании до 30 000 пользователей.

Читать далее

Проверь себя: 10 практических задач на Python для новичков. Часть 1

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

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

Читать далее

Импорт, преобразование и оптимизация — одним конвейером SQL

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

Импорт терабайтов из S3 одним SQL: INSERT FROM FILES и PIPE. Партиционирование через date_trunc(), RANDOM‑бакетизация, трансформации с JOIN/UNNEST и гибкий ALTER TABLE.

Читать далее

Разбор системы: Доставка котировок

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

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

Читать далее

ActiveMQ Artemis vs Apache Kafka

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

Добрый день. Сегодня мы поговорим о двух мощных технологиях для асинхронного обмена данными — ActiveMQ Artemis и Apache Kafka. Мы разберемся, что они из себя представляют, как устроены под капотом, и главное — в каких ситуациях стоит выбрать одну, а в каких другую.


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

Читать далее

Kafka для начинающих: работа с брокером сообщений на практике

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

Как работать с Kafka на практике, используя Spring Boot?
Разбираем базовые практические моменты на примере интернет-магазина.

Простым языком и с примерами кода о настройке Kafka-кластера, об основных аннотациях и методах Spring Boot для работы с Kafka.

Читать далее

Переплачиваете за хостинг Cron Jobs? Тогда мы идём к вам

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

Не всегда код должен работать непрерывно. И обидно арендовать целый сервер, когда скрипт работает 10 минут в день. Особенно сервер с большим количеством ОЗУ и CPU.

В этой статье мы расскажем, как запускать скрипты экономически эффективнее, чем на VDS, и как настроить работу кода по расписанию.

Читать далее

Полнотекстовый поиск на Rust с помощью библиотеки Tantivy

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

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

Cегодня я хочу поделиться с вами опытом работы с библиотекой Tantivy — это полнотекстовый поисковый движок, написанный на Rust. Если вы когда‑либо задумывались о том, чтобы встроить поиск в свое приложение на Rust (вместо того чтобы поднимать отдельный ElasticSearch или Solr), то Tantivy неплохой такой кандидат. Библиотека вдохновлена Lucene (тем самым движком, на котором работают Solr и ElasticSearch) и дает схожие возможности: индексирование текста, быстрый поиск по ключевым словам, поддержку сложных запросов.

Смотреть пример

Dumper: единый инструмент для резервного копирования баз данных

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

Когда в инфраструктуре десятки сервисов и баз данных разных типов, ручное резервное копирование превращается в кошмар.

Один сервер использует PostgreSQL, другой — MySQL, третий — MongoDB, и для каждого нужны свои команды (pg_dump, mysqldump, mongodump) и свои скрипты.

Проект Dumper решает эту проблему он объединяет все типы баз в один универсальный инструмент.

Dumper написан на Go и работает через CLI, конфигурация задаётся в YAML — поэтому его легко встроить в cron, CI/CD pipelines, GitHub Actions или Docker-окружение.

Читать далее

Больше чем просто данные в S3. Iceberg как основа архитектуры Next-Gen КХД

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

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

Привет, Хабр. Меня зовут Алексей Белозерский. Я руководитель профессионального сервиса VK Data Platform, VK Tech. В этой статье я расскажу, что стало предпосылкой появления нового формата данных и что скрывает Iceberg «под толщей воды».

Читать далее

Ближайшие события

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

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

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

Читать далее

Как устроен финтех изнутри

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

Однажды на собеседование на enterprise архитектора мне дали тестовое задание - нарисовать верхнеуровнево как я вижу банк и как общаются компоненты внутри него. Я соорудил нечто странное. Работу я, конечно же, не получил. Схема непонятна, элементы названы не по общепринятым наименованиям, а как я их видел и в целом получилось перегружено. Эта статья призвана выполнить это тестовое задание на текущем уровне моего развития как архитектора. 

Читать далее

Отсекая лишнее: как сократить бинарный код программы на C++ и не потерять нужную функциональность

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

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

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

Меня зовут Максим Гончаров, и я расскажу, как мы оптимизировали кодовую базу на C++ по размеру конечного образа, чтобы новые фичи были доступны на всех уже работающих у заказчиков серверах.

Читать далее

Единый SSL, или Автоматизация Let's Encrypt на HAProxy

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

Привет, Хабр! На связи Алексей Холодаев из Cloud4Y. Наверняка вам знакома типичная архитектура — несколько бэкенд-серверов, один HAProxy на входе и куча поддоменов — app.example.com, api.example.com, admin.example.com. Классический подход к SSL заставляет вас либо покупать дорогой Wildcard-сертификат, либо мучительно поддерживать отдельные сертификаты для каждого поддомена на каждом бэкенде…

А что, если я покажу вам способ получше?

Давайте настроим получение и, что критично, полностью автоматическое продление одного SSL-сертификата от Let's Encrypt прямо на HAProxy. Этот единственный сертификат будет защищать все ваши поддомены сразу. Больше не нужно возиться с SSL на каждом бэкенде — весь трафик шифруется и расшифровывается на балансировщике, а до бэкендов идёт уже по защищённому внутреннему каналу.

Читать далее

Enterprise мониторинг с нуля: Prometheus + Grafana для FastAPI приложения

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

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

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

Читать далее

Cloud Castle HTTP Router: Быстрый и гибкий роутер для PHP-приложений

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

Привет, Хабр! В мире PHP-разработки роутинг — это основа любого веб-приложения. От простых API до сложных микросервисов, правильный роутер может стать ключом к производительности и масштабируемости. Сегодня я хочу представить вам Cloud Castle HTTP Router — мою библиотеку, которая сочетает скорость, простоту и мощь. Это не просто инструмент, а решение для разработчиков, которые хотят оставить позади громоздкие фреймворки и сосредоточиться на коде. Давайте разберем ее по полочкам: технические фичи, маркетинговый потенциал и архитектурные преимущества. А в конце — сравнение с конкурентами и реальные тесты из документации.

Читать далее

Как я распознавание лиц к Yandex Disk-у прикручивал

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

«Крошка сын к отцу пришел и спросила крошка...»

Ну не сын на самом деле, а дочка, но пришла и спросила: «Паааап, у подруги тут ДР, вытащи мне из фотоархива все фото где мы с ней вместе». Да легко!

Читать далее