Pull to refresh
0
0
Игорь Николаев @savares

User

Send message

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

Reading time 15 min
Views 66K


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


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

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

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

Level of difficulty Medium
Reading time 19 min
Views 68K

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

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

Как использовать ресурсы Kubernetes по максимуму для работы с Go-приложениями

Reading time 12 min
Views 7.2K

Привет! Меня зовут Антон Жуков, я руковожу группой разработки в Сбермаркете. В профессии я уже более 12 лет, с Golang работаю с 2016 года, а с Kubernetes — с 2018 года.

В этой статье расскажу об основах Kubernetes, возможных проблемах и решениях, а также о том, как грамотно использовать ресурсы этой платформы, чтобы выжать максимум из Go-приложений. Кроме того, в конце статьи я опишу кейс настройки GOMAXPROCS на примере нашего приложения и расскажу, как нам удалось повысить его производительность на 20-50%.

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

Мапы в Go: уровень Pro

Reading time 16 min
Views 20K

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

Читать далее
Total votes 19: ↑17 and ↓2 +15
Comments 9

Go's Garbage Collection: как работает и почему это важно знать

Reading time 7 min
Views 23K

В статье посмотрим на Go Garbage Collector — механизм автоматического освобождения невостребованной памяти приложения в Go. Разберём его устройство и принципы работы.

Читать далее
Total votes 25: ↑21 and ↓4 +17
Comments 13

Открываем курс по Kubernetes и рассказываем, зачем разработчику знать DevOps

Level of difficulty Easy
Reading time 3 min
Views 11K

Два года назад мы запустили в школе Metaclass курс «Деплой приложений в Kubernetes». С сегодняшнего дня мы делаем его бесплатным и приглашаем пройти всех, кто хочет прокачаться и попасть на стажировку к нам в команду.

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

Читать далее
Total votes 30: ↑29 and ↓1 +28
Comments 8

Практическая магия Istio при построении архитектуры крупных микросервисных систем. Часть 1 — функциональная

Level of difficulty Medium
Reading time 25 min
Views 14K

Под Новый Год мы с женой пересматриваем одну популярную магическую сагу — хочется знаете ли в жизни волшебства. В IT волшебства тоже хватает — от танцев с бубнами до самых современных технологий, принцип работы которых проще объяснить тёмной магией. Так, например, бытует мнение, что настройка service mesh — это магия, подвластная лишь волшебникам DevOps. Но у нас в Альфа-Банке разработчики исторически не маглы, а, как минимум, полукровки, поэтому имеют право приобщиться к волшебному миру.

В этой серии статей я хочу поделиться опытом изучения технологии service mesh, а именно Istio, на примере практической задачи, возникшей какое то время назад в одной из систем Альфа Банка, системным архитектором которой я являюсь.

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

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

Читать далее
Total votes 28: ↑28 and ↓0 +28
Comments 8

Это база: нюансы работы с Redis. Часть 1

Level of difficulty Medium
Reading time 15 min
Views 31K

Привет! Меня зовут Петр и мы в компании Nixys очень любим Redis. Эта база используется, если не на каждом нашем проекте, то на подавляющем большинстве. Мы работали как с разными инсталляциями Redis, так и с разными версиями, вплоть до самых дремучих, вроде 2.2. Несмотря на то, что в Интернете очень много статей и докладов по этой БД, мы в своей практике достаточно часто встречаемся с непониманием некоторых основных концепций Redis и со стороны разработчиков, и со стороны системных администраторов.

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

Читать далее
Total votes 79: ↑79 and ↓0 +79
Comments 5

System Design 101

Level of difficulty Medium
Reading time 42 min
Views 66K



О сложных системах простыми словами.


В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.


Выражаю благодарность Анне Неустроевой за помощь в редактировании материала.


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


System Design (сборник на английском языке).

Читать дальше →
Total votes 79: ↑79 and ↓0 +79
Comments 17

Введение в Чистую архитектуру через 6 кругов рефакторинга

Level of difficulty Medium
Reading time 15 min
Views 42K

Разделяй и влавствуй, или как провести клининг легаси-кода GoLang.

Этот пост является частью большого цикла статей, в которых мы демонстрируем, как создавать приложения на Go, которые легко разрабатывать, поддерживать и с которыми приятно работать в долгосрочной перспективе. Мы делаем это, делясь проверенными методами, основанными на множестве экспериментов с командами, которыми мы руководили, и научных исследованиях («при съёмках фильма ни одно животное не пострадало»).

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

Что касается подхода к «чистой» архитектуре, описываемого далее, то это симбиоз двух идей: разделение Ports и Adapters, а также контроль за тем, как пакеты ссылаются друг на друга...

Оставь надежду, всяк сюда входящий
Total votes 19: ↑15 and ↓4 +11
Comments 4

Kafka, go и параллельные очереди

Level of difficulty Easy
Reading time 10 min
Views 11K

В этой статье я расскажу о паре способов увеличить пропускную способность системы с помощью партиций kafka и каналов go. В качестве библиотеки-клиента kafka буду использовать segmentio/kafka-go. Статья будет полезна начинающим go-разработчикам, которые уже знакомы с основными концепциями Apache Kafka (producer, consumer, consumer group, offset, топик, партиция), но еще не задумывались о масштабировании. Все рассуждения будут опираться на игрушечный пример, который, я надеюсь, хотя бы немного напоминает реальные системы.

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

Проектирование архитектуры для микросервисов с использованием gRPC

Level of difficulty Easy
Reading time 9 min
Views 16K

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

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

gRPC – высокопроизводительный и мощный инструмент для построения микросервисных систем.

Читать далее
Total votes 15: ↑11 and ↓4 +7
Comments 10

PaaS два года спустя. Обзор инструментов и какие задачи они решают

Level of difficulty Medium
Reading time 9 min
Views 3.6K

Друзья, привет! Если у вас так же много разработчиков как у нас, то и им, возможно,  стало тесно стоять в очереди на deploy в монолите. А значит, вы можете решить перейти на микросервисную архитектуру и дать каждому игроку свой мяч каждой команде свой микросервис. 

Меня зовут Дмитрий Лукиянчук, и я руковожу отделом в IT-платформе СберМаркета. В этой статье я сделаю обзор инструментов, которые у нас есть сейчас, спустя 2,5 года, и какие задачи эти инструменты решают. Вы узнаете, что вам нужно будет сделать, если вы сами решите взяться за построение платформы, а если у вас уже есть своя платформа, то вам будет интересно найти 10 отличий в своей и нашей реализации.

Читать далее
Total votes 15: ↑15 and ↓0 +15
Comments 8

Как работать в удовольствие: 6 практик, которые поднимают настроение команде

Level of difficulty Easy
Reading time 7 min
Views 15K

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

Внедрением практик для мотивации команды я занимаюсь более 6 лет, сначала в n1.ru, а теперь в Lamoda Tech. Сегодня хочу поделиться самыми простыми из них. Это быстрые рецепты, которыми мы пользуемся, чтобы поддержать живую, драйвовую атмосферу внутри команды, даже когда все работают в разных концах земного шара и не хотят включать камеру на созвонах.

Читать далее
Total votes 38: ↑34 and ↓4 +30
Comments 29

Как приручить облачного зверя: раскрываем тему FinOps

Reading time 10 min
Views 1.8K

Закупать серверы или использовать «облако»? Какие риски есть в каждом из этих подходов? Как помирить тех, кто платит по счетам в компании и тех, кто может запустить дорогой ИИ-сервис на десять минут, забыть про него и обеспечить к концу месяца непредвиденные расходы организации? 

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

В статье разберём:

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

Как FinOps помогает оптимизировать использование облачных сервисов.

Как избежать типичных ошибок и рисков при внедрении этой практики.

Читать далее
Total votes 15: ↑13 and ↓2 +11
Comments 4

Разворачиваем веб-приложение в Kubernetes с нуля

Level of difficulty Easy
Reading time 31 min
Views 32K

Современные веб-приложения, даже простые на вид, часто подразумевают нетривиальную архитектуру, состоящую из многих компонент. В статье «Делаем современное веб-приложение с нуля» я рассказал, как она может выглядеть, и собрал для демонстрации простейшую реализацию на стеке из нескольких популярных технологий. В неё вошёл бэкенд, фронтенд, воркер для асинхронных задач и аж два хранилища данных — MongoDB как основная база и Redis как очередь задач. В «Делаем поиск в веб-приложении с нуля» я показал, как можно добавить полнотекстовый поиск, и подключил третье хранилище — Elasticsearch.

Всё это время для простоты разработки и отладки компоненты приложения запускались локально через Docker Compose. Но как развернуть такое приложение в настоящем продакшн-окружении? Как обеспечить горизонтальное масштабирование? Как раскатывать новые релизы без простоя? 

В этой статье мы разберёмся, как разворачивать многокомпонентное веб-приложение в кластере Kubernetes на примере его локальной реализации — minikube. Мы поднимем виртуальный кластер прямо на рабочем ноутбуке, разберёмся с основными сущностями Kubernetes, запустим и соединим между собой компоненты демо-приложения и обсудим, какие ещё возможности Kubernetes пригодятся нам в суровом энтерпрайзе. Если вы занимаетесь разработкой и слышали о Kubernetes, но ещё не имели возможности пощупать его руками — добро пожаловать под кат!

Скорее к YAML-инженерии
Total votes 38: ↑38 and ↓0 +38
Comments 10

Как построить систему, способную выдерживать нагрузку в 5 млн rps

Level of difficulty Medium
Reading time 12 min
Views 45K

Всем привет! 

Меня зовут Владимир Олохтонов, я руковожу командой разработки в отделе Message Bus, который является частью платформы Ozon. Мы занимаемся разработкой самых разных систем вокруг Kafka, etcd и Vault. В этой статье я расскажу о том, как мы строили линейно масштабируемую gRPC-прокси перед Kafka, способную обслуживать миллионы запросов в секунду, используя Go.

Читать далее
Total votes 114: ↑111 and ↓3 +108
Comments 58

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Level of difficulty Easy
Reading time 8 min
Views 180K

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

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

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

Читать далее
Total votes 191: ↑184 and ↓7 +177
Comments 177

Почему гибридная архитектура – это будущее?

Reading time 6 min
Views 21K

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

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

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

Читать далее
Total votes 23: ↑19 and ↓4 +15
Comments 8

Ультимативный гайд по HTTP. Структура запроса и ответа

Level of difficulty Easy
Reading time 9 min
Views 59K

Привет! Меня зовут Ивасюта Алексей, я техлид команды Bricks в Авито в кластере Architecture. Я решил написать цикл статей об истории и развитии HTTP, рассмотреть каждую из его версий и проблемы, которые они решали и решают сейчас. 

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

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

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity