Обновить
0
Сергей Жуков@devalineread⁠-⁠only

Программист

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

Jira, Golang и немного фантазии: строим конвейер для создания новых сервисов

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

Привет! Меня зовут Андрей, я Head of Platform в финансовом маркетплейсе Банки.ру. Со мной Борис Зырянов, go/php разработчик. Сегодня расскажем о том, как мы разработали и внедрили процесс создания сервисов одной кнопкой. 

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

В материале расскажем: 

– как работал старый подход и с чем были сложности; 
– какая схема пришла на замену и как все работает; 
– что планируем делать дальше.

Читать далее

Системный аналитик. Краткий гайд по профессии. Часть 1. Основы взаимодействия систем

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели194K

Системный аналитик. Краткий гайд по профессии. Часть 1.

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

Читать далее

Сколько нужно ядер cpu, чтобы выдержать 30k+ rps?

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели13K

Меня зовут Вадим Ивахин, я техлид в Vi.Tech — это IT-дочка ВсеИнструменты.ру.

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

Читать далее

Авакари — сервис для публикации и подписки на релевантные сообщения

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

В предыдущей статье "Дерево Киви для поиска шаблона по тексту" я рассказывал, как можно эффективно находить по входящему сообщению все удовлетворяющие "поисковые запросы", избегая их перебора "в лоб" и прямого сопоставления. Это можно применить реализации полноценной Pub/Sub-системы, дополняющей уже существующие, такие как Nats, Apache Kafka или AWS SNS новой возможностью поддерживать действительно масштабируемое число wildcard-подписок. В этой статье я расскажу о такой системе.

Читать далее

System Design. Общие принцип прохождения интервью по проектированию ИТ-систем

Время на прочтение9 мин
Охват и читатели64K
image Привет, Хаброжители! Мы весьма рады, что вы решили изучить особенности интервью по проектированию ИТ-систем вместе с нами. Из всех технических интервью именно на этом задают самые сложные вопросы. Претенденту предлагается спроектировать архитектуру программной системы: новостной ленты, поиска Google, системы мгновенных сообщений и т. д. Задачи такого рода наводят ужас, ведь у них нет единственно верных решений. Они обычно отличаются масштабностью и расплывчатостью. Допускаются свободные и неясные формулировки без стандартного или правильного ответа.

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

Способы запуска Telegram mini apps

Время на прочтение6 мин
Охват и читатели29K

Существует множество различных способов запуска Telegram Mini Apps, но я для себя выделил несколько наиболее удобных и простых методов.

Читать далее

Собеседование по System Design: как запроектировать и не потеряться

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

Привет! Меня зовут Дмитрий. Я архитектор решений в крупной российской компании, более 15 лет проектирую, пишу код и руковожу командами. Сотрудничаю с Практикумом как ревьюер курса по Java и как автор курса «Архитектура программного обеспечения» в Яндекс Практикуме.

Предположим, вы решили развлечься дизайном систем (System design), пусть даже и не добровольно, на собеседовании. Если компания поленилась поделиться рабочим контекстом, то задача может быть в формате «запроектируй Твиттер». Более кандидатоориентированная компания N может попросить «спроектируй поиск на сервисе N».

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

Читать далее

Любой может получить доступ к удалённым и приватным данным репозиториев GitHub

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели92K

Кто угодно может получать доступ к данным из удалённых форков, удалённых репозиториев и даже приватных репозиториев GitHub. И эти данные доступны всегда. Это известно разработчикам GitHub, и они намеренно спроектировали систему таким образом.

Это настолько огромный вектор атак для всех организаций, использующих GitHub, что мы решили ввести новый термин: Cross Fork Object Reference (CFOR). Уязвимость CFOR возникает, когда форк одного репозитория может получить доступ к требующим защиты данным из другого форка (в том числе и к данным из приватных и удалённых форков). Аналогично Insecure Direct Object Reference, при CFOR пользователи передают хэши коммитов, чтобы напрямую получать доступ к данным коммитов, которые иначе были бы для них невидимыми.

Давайте рассмотрим несколько примеров.
Читать дальше →

Как хакеры ломают облачную инфраструктуру хостинг-провайдера: кейс Standoff

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

В марте мы рассказывали, как хакеры ломают банки (за 48 часов!) и какие ИБ-продукты их защищают. Standoff 13 принес нам новые кейсы. Начнем с разбора взлома облачной инфраструктуры хостинг-провайдера Nodenest, который работал в вымышленном Государстве F. Вас ждет история о том, как продукт для защиты контейнерных сред PT Container Security (PT CS) поймал крайне интересный kill chain на уровне рантайма.

Погнали!

Как работает протокол HLS

Время на прочтение10 мин
Охват и читатели35K

Вот уже несколько недель я разрабатываю серверную поддержку коротких видео для компании Bluesky.

Основное назначение этой фичи – обеспечивать потоковый показ небольших (максимум 90 секунд) видеороликов. Показ должен быть бесплатным и при этом не слишком накладным для нас.

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

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

Читать далее

7 причин, по которым мы предпочли Apache Pulsar Apache Kafka

Время на прочтение6 мин
Охват и читатели4.2K

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

Когда вы собираетесь создать лучшую инфраструктуру службы обмена сообщениями, первым делом необходимо выбрать правильную базовую технологию обмена сообщениями. Существует множество вариантов: от различных проектов с открытым исходным кодом, таких как RabbitMQ, ActiveMQ и NATS, до проприетарных решений, таких как IBM MQ или Red Hat AMQ. И, конечно же, есть Apache Kafka, являющийся чуть ли не синонимом потоковой передачи. Но мы выбрали не Apache Kafka, мы выбрали Apache Pulsar.

Итак, почему же мы создали нашу службу обмена сообщениями с использованием Apache Pulsar? Вот семь основных причин, по которым мы выбрали Apache Pulsar вместо Apache Kafka.

Читать далее

Как использовать S3-хранилище в Kubernetes: руководство с примерами

Время на прочтение11 мин
Охват и читатели20K

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

Привет, Хабр! Меня зовут Филипп, я DevOps-инженер в Selectel. В своей обзорной статье хочу разобрать, какие есть решения для работы с объектным хранилищем из K8s. Соберу тестовый стенд из кластера Managed Kubernetes и покажу, как установить и настроить нужные компоненты через Terraform. Начинаем!
Читать дальше →

PostgreSQL 16. Страницы и версии строк. Часть 3

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели14K

Данная статья является продолжением: PostgreSQL 16. Изоляция транзакций. Часть 2.

В этой части мы рассмотрим, из каких частей состоит страница в PostgreSQL, как выполняются операции CRUD (создание, чтение, обновление, удаление) для строк с сохранением нескольких версий одной и той же строки в таблице и как на это влияют транзакции. Также рассмотрим вложенные транзакции.

Читать далее

Эффективность на максимум: как выбрать оптимальное сетевое хранилище (NAS) для корпоративной среды

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели17K

В современном мире, где объемы данных растут экспоненциально, а требования к их доступности и безопасности становятся все жестче, выбор оптимального сетевого хранилища (Network Attached Storage, NAS) становится критически важной задачей для профессионалов и продвинутых пользователей. Правильно подобранное NAS-решение может стать ключевым фактором эффективности IT-инфраструктуры, обеспечивая не только надежное хранение данных, но и повышая производительность всей системы в целом.

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

Читать далее

Хореография, оркестрация и Event Driven Orchestration

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели32K

Рассмотрим очередной популярный подход к проектированию систем для управления и координации выполнения бизнес-задач или процессов на основе событий. В общем случае это микс Хореографии и Оркестрации. Рассмотрим их подробнее.

Читать далее

ElasticSearch — поиск последовательности в тексте

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели8.3K

Привет! На связи Аркадий из Т-Банка, мы по прежнему делаем TQM, и в этой статье покажу, как мы решили задачу с поиском последовательностей в тексте коммуникаций. Это работает как на простых цепочках из словосочетаний по порядку, так и на сложных кейсах — со временем фразы, каналом «клиент — оператор». Мы по прежнему работаем с ElasticSearch, оставляя возможность “накрутить” на поиск по тексту такие вещи как RAG, LLM и другие модные технологии. 

Несколько ограничений для сегодняшней задачи:

- Нелинейное возрастание сложности запроса при увеличении количества фраз. Поэтому предел у нас 4.

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

А теперь к самому интересному. Добро пожаловать под кат!

Читать далее

Заставляем работать MinIO и Postgresql вместе

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

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

Читать далее

Как обеспечить масштабируемость проекта со старта и подстроить CI/CD под свои цели? Основано на реальных событиях

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

Привет, Хабр. На связи Михаил, я бэкенд-разработчик в Clevertec. Моя работа связана с проектом, который начинался с создания личного кабинета клиента и развился в экосистему, растущую вместе с бизнесом. На его примере я расскажу, как можно изменять подход к CI/CD, чтобы не тормозить рост проекта и оптимизировать работу команды.

Читать далее

Получаем белый IP с помощью VDS за копейки

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

Всем привет! В этой статье я расскажу, как получить белый IP-адрес без помощи провайдера и настройки вашего роутера, используя обычный VDS (виртуальный выделенный сервер), или как его ещё называют "Дедик". С помощью VDS вы сможете подключаться к вашему компьютеру по IP-адресу VDS с любого интернета и любой точки мира, размещать сайт на своём железе и использовать его IP-адрес.

Для чего это может быть нужно?

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

Читать далее

Представлена языковая модель Mistral Large 2 размером 123B. Как запускать. Локальный Сopilot. Открытый конкурент GPT-4o

Время на прочтение5 мин
Охват и читатели55K

MistralAI, вслед за LLaMA 3.1 405B, представила свою флагманскую модель с открытыми весами Mistral Large 2 (Mistral-Large-Instruct-2407). Mistral всегда отличалась очень качественными открытыми моделями, и, судя по всему, эта будет не исключением.

Веса открыты, размер контекста составляет 128k, размер модели 123B, модель была обучена на 80 языках программирования и десятках естественных языков, включая русский. Модель хорошо себя показывает как в рассуждениях, так и в математике и программировании.

Читать далее

Информация

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

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

Специалист
Средний
Python
Docker
Django
FastAPI
Blockchain
Solidity
JavaScript
Nuxt.js
Безопасность сетей