Получи случайную криптовалюту за регистрацию!

2pegramming

Логотип телеграм канала @pepegramming — 2pegramming 2
Логотип телеграм канала @pepegramming — 2pegramming
Адрес канала: @pepegramming
Категории: Технологии
Язык: Русский
Количество подписчиков: 3.25K
Описание канала:

Грустно об архитектуре и программировании.
https://pepegramming.site

Рейтинги и Отзывы

4.33

3 отзыва

Оценить канал pepegramming и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

2

3 звезд

0

2 звезд

0

1 звезд

0


Последние сообщения 10

2021-03-05 13:31:00 Пятничное чтиво

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

—————————————

Code review checklist for distributed systems

Люблю идею чек листов для рутинных действий. Ревью кода я воспринимаю одно из таких действий. А если говорить о сервисах, то количество тем, которые надо помнить возрастает по сравнению с монолитами. Поэтому статья со списком тем/вопросов/проблем, о которых стоит помнить во время написания или ревью кода. Из тем: отказы, медленность работы, идемпотентность API, обсервабилити и так далее. Статья не выглядит как полноценный чеклист, но можно использовать текст как основу для созданию персонального чеклиста в компании.

Русский перевод

—————————————

EventStorming Glossary & Cheat sheet

Если вы захотите провести event storming сессию в первый раз - cheat sheet с терминами перед глазами поможет не тратить время на поиски определений или избежать ситуаций, когда что-то забылось. Ребята из Domain-Driven Design Crew (советую посмотреть репозитории) решили облегчить жизнь и сделали список терминов, описание процесса и советы, которые могут помочь во время event storming сессии.

—————————————

Tackling Complexity in CQRS

О CQRS в этом канале говорилось (была мастхев статья + стрим где делали блог платформу с CQRS на тему). Сегодня статья - описание ловушек, в которые можно попасть используя паттерн. Ловушки:
- One-Way Commands, or Overzealous Segregation
- Event sourcing
- Too Much of a Good Thing

Для каждой ловушки описывается возможное решение, а последняя - персональный фаворит. Понравилось, что в конце дается лаконичная диаграмма того, как автор видит CQRS.
994 views10:31
Открыть/Комментировать
2021-03-02 14:24:01
1.1K views11:24
Открыть/Комментировать
2021-03-02 14:24:01 Сегодня начинается курс, которым занимаюсь фултайм последние 2 месяца, из них последние 2 недели без выходных.

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

Мне повезло, потому что курсом занимаюсь не один, а с Федей, Марьяной и Ваней. Изначально, я думал, что сложнее всего будет сделать контент. Но больше боли принес обострившийся синдром самозванца (ну и вырезать все эканья из видео). Ребята забрали самое сложное: поддержку (и меня в том числе), маркетинг, вычитку и проверку контента на понятность человеку вне контекста.

После курса, хочу написать пост с опытом и внутренней кухней (расскажу как монтировал, собирал контент, что сделал бы иначе и как уплотнил ран примерно в два раза). TLDR что произошло за последние месяцы:

- попробовал себя в монтаже видео, оказалось это сложнее чем ожидалось (зато понял, что стоит переходить с iMovie на профессиональный софт);
- факап с коммуникациями, который пока не понятно как решить, но гипотезы уже проверяем;
- внезапные задачи, которых оказалось в разы больше, чем я мог представить;
- цепочка каждого урока из "сделать скрипт → записать → добавить доп материалы" превратилась в цепочку из 9 пунктов. При этом, только моя работа, занимает от 15 часов на урок;

Кроме проблем - получил фидбэк от ребят:

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

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

P.S.: бонусом - артефакт в виде нарезки, которую делал на память, видео идеально отражает состояние последних двух недель (осторожно, присутствует ненормативная лексика).
1.0K views11:24
Открыть/Комментировать
2021-02-26 13:31:00 Пятничное чтиво

Анонсы:
На следующей неделе стартует курс по асинхронным системам, жду и переживаю. Старые записи стримов можно найти на ютубе. Так же буду рад предложениям, вопросам и идеям. Можно написать в личку, а можно в анонимную форму.

—————————————

Patterns for Microservices — Sync vs. Async

Самое подробное описание синхронных и асинхронных коммуникаций в системах на моей памяти. В статье найдете: по три вариации на каждый из видов коммуникации, а также список трейд оффов, с которыми столкнетесь . Важно отметить, что в качестве sync оркестратора может выступать BFF или API Gateway, sync оркестратора с async вызовами - GQL gateway, а CQRS может работать с тем же сервисом, где реализована read model.

—————————————

Real-time monitoring of Formula 1 telemetry data on Kubernetes with Grafana, Apache Kafka, and Strimzi

Я не фанат формулы один, но фанат статей, в которых описывается, как инженеры реализуют сумасшедшие вещи. Сегодня статья с описанием того, как перегнать телеметрию гоночного болида из F1 2020 (игра такая) в InfluxDB и Grafana. Понравилось, что в статье описываются, как может использоваться Apache Camel для трансфера данных из телеметрии в кафку и из кафки в InfluxDB (давно смотрю на него).

—————————————

Saga Orchestration for Microservices Using the Outbox Pattern

Must read статья выпуска.

Transactional outbox pattern позволяет автоматически продьюсить нужный агрегат через outbox таблицу в message broker. Sagas pattern - пример реализации распределенной транзакции.

Авторы задаются вопросом: что произойдет, если совместить оба паттерна в одной системе используя kafka (на самом деле - любой message broker) и Debezium в качестве реализации outbox pattern из коробки. В статье найдете код реализации, описание failure случаев, а также, бонусом, мысли о трассировке.

Особое внимание советую уделить Figure 4 (sequence diagram), в которой показывается как данные будут ходить между тремя сервисами в такой системе.

——— одной строкой ———

- Upgrow - попытка от Shopify сделать собственный hanami из рельсы;
768 views10:31
Открыть/Комментировать
2021-02-19 13:31:00 Пятничное чтиво

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

—————————————

Google Translate: Analyzing Clubhouse for fun and profit

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

- API
- Agora.io как реалтайм войс и видео платформа (Китай и Калифорния)
- PubNub как реалтайм чат

Также, автор описывает три возможные секьюрити проблемы.

API клиент на питоне
Оригинал на корейском

—————————————

Zero Downtime API Gateway cloud migration

Дано: компания с 500+ микро сервисами, часть из сервисов вне клауда. Необходимо: перевести API на один домен, а сервисы в клауд без даунтаймов. С таким контекстом начинается статья, в которой инженеры из bukalapak описывают опыт использования API gateway для миграции системы в клауд. описываются две проблемы, с которыми столкнулись инженеры и решения, которые были выбраны. Опыт оказался успешным, а размышления можете прочитать в конце статьи.

—————————————

Kafka for Engineers. Here are things about Kafka that you…

Лонгрид о том, что такое кафка описанный инженерным языком, а не языком инфраструктуры. Понравилось, что в статье объясняется как появилась технология, в чем отличие message queues и кафки. Благодаря объяснению отличия между distributed queue и distributed log автор предполагает, почему инженеры используют кафку как очередь и для чего действительно использовать (спойлер - стримить данные между Bounded Contexts). Ну а дальше описываются концепции из которых состоит технология (топики, партишены, консьюмер группы и так далее). Однозначный мастрид недели.
1.2K views10:31
Открыть/Комментировать
2021-02-12 13:31:00 Пятничное чтиво

Анонсы:
- Две недели до начала курса и закрытия продаж;
- Ребята из RubyRussia ищут спикеров на митап;
- Ребята из @saintprug проведут оффлайн/онлайн митап 25 февраля;

Выложил запись стрима по neo4j. Старые записи стримов можно найти на ютубе. Так же буду рад предложениям, вопросам и идеям. Можно написать в личку, а можно в анонимную форму.

—————————————

Fixing Your Microservices Architecture Using Graph Analysis

На прошлой неделе сливал заметки в neo4j. Сегодня статья о том, как neo4j может помочь в анализе сервисной архитектуры. В статье, автор переносит мета информацию из java приложения в neo4j. После этого можно узнать HTTP вызовы, cross-service dependencies, определить распределенный монолит или нет. А после - сделать экспорт в GraphML. Идея выглядит как перспективный PoC и хочется сделать похожее для других языков и экосистем.

—————————————

Exceptions and Retry Policy in Kafka

Мир приходит к распределенным системам, но базовые концепции все еще с нами. Одна из таких концепций - эксепшены, а попытка использования в распределенной системе - та еще боль. Поэтому сегодня - лонгрид о том, как работать с ретраями и эксепшенами в кафке. Автор делит эксепшены на 2 класса (stateless & stateful), а так же на 4 типа (retryable/blocking). Ну а дальше, приводится примеры того, как работать с каждым из эксепшенов. Примеры заточены под джаву, хотя концепции должны работать во всех экосистемах.

—————————————

4 Microservices Caching Patterns at Wix

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

- Locally Persisted (or S3 backed) Configuration Data Cache
- Kafka topic based 0-latency Cache
- (Dynamo)DB+CDC based Cache
- HTTP Reverse Proxy Caching (Varnish cache)

Для каждого из паттернов приводится краткое описание, размер и тип кеша, а также где стоит использовать и где паттерн не подойдет. В конце найдете flowchart по выбору стратегии кэширования.
2.2K views10:31
Открыть/Комментировать
2021-02-05 13:31:00 В среду был стрим, был занят, поэтому выложу его на выходных. Старые записи стримов можно найти на ютубе. Так же буду рад предложениям, вопросам и идеям. Можно написать в личку, а можно в анонимную форму.

—————————————

Introducing the Polyglot Code Explorer

Лонгрид в котором автор рассказывает о собственном проекте - OSS инструменте для визуализации сложных кодовых баз. При этом, инструмент работает с различными языками. Изначально, инструмент родился как ответ на вопрос «как можно визуализировать кодовую базу без сложных парсеров для конкретного языка?». Состоит эта штука из трёх вещей: сканера кода в json, добавления layouts, визуализатора. В статье найдете как пользоваться инструментом, скриншоты UI и виды слоев, которые предоставляет проект. В моей голове крутилась похожая идея, сделать систему слоев для dry-system-dependency_graph, хотя дальше головы идея не ушла.

—————————————

The Story of a Microservice Transformation in Hepsiburada

Ещё одна статья о том, как компания распилила монолит сервисы. В этом случае выносилась checkout система и вышло 40 сервисов. Статья разбивается на три части. Личную ценность принесла первая часть, в которой определяются проблемы и решения проблем. Из решений:
- DDD, как способ разделения доменов и понимания бизнеса
- CQRS как способ справиться с нагрузкой

Вторая и третья часть говорят о выборе технологий, что специфично.

—————————————

Kafka as a storage system

Я плохо отношусь к идее хранить данные в кафке как в базе данных. При этом, каждый раз интересно читать обратный опыт. Сегодня статья из инженерного блога твиттера, в которой рассказывается о том, как компания хранит информацию в кафке для Account Activity API. Важно отметить, что хранится ограниченное количество информации (до пяти дней). В статье найдете детальный технический обзор того, как это сделано. Например как выбирались партишены и при чем тут snappy.

Русский перевод

——— одной строкой ———

- GitHub - One-way pipe rack application builder - идея заменить концепцию rack middleware на чейн operations. Как концепция - хочу дальше следить за проектом.
2.6K views10:31
Открыть/Комментировать
2021-02-03 21:29:43 Продолжаем стрим

https://www.twitch.tv/davydovanton
2.0K views18:29
Открыть/Комментировать
2021-02-03 20:52:33 У меня начала слишком быстро садиться батарея, поэтому придется сделать 40 минутный перерыв. Продолжим в 21:30 (я все отпишу)
1.9K views17:52
Открыть/Комментировать
2021-02-03 19:57:33 Начинаем стрим

https://www.twitch.tv/davydovanton

донаты - https://www.donationalerts.com/r/davydovanton
1.9K views16:57
Открыть/Комментировать