Size: a a a

2020 June 16
2pegramming
Привет, я заболел, поэтому стрима завтра не будет. А так же не будет ссылок на этой неделе
источник
2020 June 26
2pegramming
md:true Пятничное чтиво

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

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

4 Types of NoSQL Databases

Сборная статья в которой описываются четыре вида noSQL баз данных (key-value, document oriented, column-base, graph-base).  Понравилось описание видов баз данных (не путать с названиями) с понятными картинками, для каждого вида баз приводятся конкретные примеры которые можно изучить. Не понравилось, что нет конкретных примеров использования, например, как использовать графовые базы в логистике. Хотелось бы видеть больше юзкейсов, почему лучше брать документо-ориентированную или графовую базу, а не использовать постгрес (об этом  написано в DDIA книге).

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

Why JWTs Suck as Session Tokens

Статья о jwt и почему подход не серебряная пуля. Понравилось описание jwt и как технология работает, а так же пример того как разработчики часто используют технологию не правильно. На примере указываются проблемы jwt. Из описанных проблем: размер токена по сравнению с id сессии, в любом случае придётся использовать базу данных, и сам формат строки.  Кроме минусов автор указывает чем можно заменить jwt, а так же делится видением как использовать технологию “правильно”.

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

Build Streaming ETL Solutions with Apache Kafka & Rail Data

Лонгрид из технического блога confluent (известны тем, что предоставляют kafka as a service и большим опытом). Робин описывает как из публичного фида UK’s Network Rail, в которой данные проходят через ActiveMQ, и REST API сделать ETL систему. Главная идея - взять источники данных, положить их в кафку, там же, посредством KSQL преобразовать данные в нужный формат и выгрузить куда надо + сделать сервис нотификаций, который будет слать телеграм сообщения, когда поезд задерживается. Решение из статьи сложно назвать серебряной пулей, скорее это пример того, как использовать кафку для стриминга данных из одного источника в другой.

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

- The Marketplace for Software Developers
источник
2020 July 01
2pegramming
Привет, к сожалению стрим не успею провести. Поэтому стримы уходят на летние каникулы. Вернусь в новом сезоне с новым микрофоном 🎉
источник
2020 July 03
2pegramming
Пятничное чтиво

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

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

Scalability concepts: zero-downtime deployments

Автор объясняет что и зачем нужен zero-downtime деплой.  Описываются основные блоки, без которых не получится построить zero-downtime: Graceful shutdown, Load balancing, dynamic routing и health checks. После этого описывается два варианта создания подобного деплоя (Blue/green deployments и rolling deployments). Понравились вручную нарисованные картинки, по ним намного проще понять что хочет сказать автор, а так же, в конце найдете ссылку на гитхаб, в котором будет пример деплойментов. Статья  entry point для того, чтобы разобраться в теме, но сложных проблем или примеров не найдете.

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

Microservices: Must-Have Communication Strategies - DZone Microservices

Коммуникации в сервисной архитектуре заставляют помнить о проблемах, которых нет в монолитных системах. В статье, за авторством DZone, авторы попробовали собрать список проблем, с которыми потенциально столкнется разработчик. Сам текст делится на 3 части: сложности, рекомендации или возможные решения и виды сбоев. Из проблем выделяются три: Latency, Transaction и Reliability. Статья напомнила подход из DDIA, где описываются что может произойти, но конкретных решений нет.

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

Architecture Characteristics Defined

Глава из книги “Fundamentals of Software Architecture”, в которой описываются основных характеристики, наблюдаемые в архитектуре. Из текста узнаете о трех критериях, которые входят в архитектурные характеристики (“Specifies a nondomain design consideration”, “Influences some structural aspect of the design” и “Is critical or important to application success”). А также список из характеристик, которые можно взять себе на вооружение. Если тема заинтересовала - советую первую (или вторую) главу из DDIA, там можно найти больше информации.

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

- A distributed database built on the same principles as Git;
- IBM Shows Instances of COBOL Running Natively on Kubernetes;
источник
2020 July 10
2pegramming
Пятничное чтиво

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

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

Data consistency in microservices

Одна из проблем сервисной архитектуры - консистентность данных в распределенных транзакциях. Автор описывает два варианта решения этой проблемы: two phase commit protocol и SAGA паттерн. При этом, SAGA паттерн разбивается на два подхода - синхронная оркестрация по командам и асинхронная хореография событий в транзакции. Если хотите разобраться в этих двух видах распределенных транзакций - начните со статьи.

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

5 Database Scaling Solutions You Need to Know

Понравился флоу статьи: цена скейлинга -> как искать ботлнек используя метрики -> хайлевел описание зачем скейлиться -> примеры пяти подходов. Описываемые подходы:

- Cache Database Queries
- Database Indexes
- Session Storage
- Slave Master Replication
- Database Sharding

Понравилось, что для каждого из подходов дается подробное описание, примеры использования и иногда картинки. А если хотите продолжить  - читайте DDIA, где подробнее описываются индексы, шардирование и репликация.

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

An Overview of Health Check Patterns

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

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

- Пост полугодичной давности от Кира о том, как начать контрибьютить в руби кор
источник
2020 July 17
2pegramming
Пятничное чтиво

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

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

Seven Microservices Anti-patterns

Статья из разряда “если у нет подходящего опыта и культуры - микросервисы усложнят жизнь”.  Ошибки, которые вынесли во время разработки
- Cohesion Chaos - когда в сервисы начинают пихать логику, которой не должно быть;
- Not taking Automation Seriously -  отсутствие автоматизации в деплое и сборе метрик;
- Layered Services Architecture - попытка сделать сервис для сохранения и сервис для отображения, а еще сервис для бизнес логики и так далее;
- Relying on Consumer Sign-off - я не понял посыл, но вроде похоже на то, что привязка к консьюмингу разных частей может привести к задержкам в производстве сервиса (поправьте пожалуйста, если ошибся);
- Manual Configurations Management - отказ использования сервиса с конфигурациями и ручная настройка конфигов каждого из сервисов;
- Versioning Avoidance - отсутствие версионирования для эндпоинтов и для событий;
- Building a gateway in every service - личный фаворит, прямой вызов каждого сервиса из клиентов, вместо использования единого gateway (иногда спасает gateway для конкретного консьюмера, Backends For Frontends)

Для каждого из пунктов найдете подробное описание и пару картинок для понимания о чем говорится.

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

Обзор архитектуры и сервисов Тинькофф-журнала

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


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

The Entity Service Antipattern

В первой статье говорилось о “Layered Services Architecture”, поэтому ссылки закрывает статья о “The Entity Service Antipattern”. Такой паттерн описывается в “Microsoft's .NET microservices architecture ebook” и туториалах к Spring. Главная идея - проектируем сервис для онлайн шоппинга, который обращается к 4 сервисам, предоставляющим CRUD интерфейс для данных: order, cart, product, accounts (пример из статьи). В этом случае можно написать еще один сервис, который будет обращаться к двум из них: product, accounts. При этом повторение кода в product и accounts не будет дублироваться, а основная работа с данными будет в этих entity services.

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

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

- solnic опубликовал новый Open Source Status Update
источник
2020 July 24
2pegramming
привет

я на этой неделе не смог найти интересных ссылок, поэтому следующие будут в пятницу
источник
2020 July 31
2pegramming
Пятничное чтиво

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

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

Overthinking

Не техническая статья в чтиве. Лонгрид (действительно много текста) о явлении оverthinking-а, что можно перевести как “перфекционизм”.

Для себя нашел три причины, почему стоит прочитать эту статью:
1. Прекрасный мем с Оккамом в самом начале;
2. В тексте описана одна единственная мысль - “не усложняй”. Что переплетается с термином MVP;
3. Много жизненных примеров. Зацепила история с написанием курса, так как испытывал похожие переживания;

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

Service mesh use cases

В ссылках уже появлялись статьи о service mesh. Сегодня статья, в которой приводится 16 примеров использования service mesh в проектах. Для каждого из примеров приводится краткое описание. Статья больше напоминает “что можно получить взяв service mesh” и  жаль, что нет примеров проблем, которые приходят с технологией.

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

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

Recent database technology that should be on your radar (part 1)

В серии статей автор рассматривает 6 технологий из мира баз данных, которые заинтересовали. В первой части рассматривается 2 базы данных (tiledb и materialize), а так же набор инструментов для абстрагирования базы данных Prisma.

- TileDB - узкоспециализированная БД вокруг многомерных массивов, заточенная  для работы с генетикой (genomics) и геопространственными данными.
- Materialize - потоковая SQL БД. Совместима с psql, но предоставляет materialized view с обновлением в реалтайм.
- Prisma - JS/TS библиотека, которая абстрагирует SQL базы данных в единый интерфейс. Похоже на AR паттерн из рельсы.

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

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

- Open Source Status Update от solnic;
- Больше документации по ruby ractor;
источник
2020 August 07
2pegramming
Пятничное чтиво

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

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

Microservice, Miniservice, and Macroservice
Походу шутка с наносервисами зашла слишком далеко, потому что сегодня статья, в которой описываются отличия между микросервисами, минисервисами (🤦‍♂️) и макросервисами (монолитами по простому). Для каждого определения рисуется картинка, дается определение, плюс описывается при каких условиях сервис становится определенного вида. От себя добавлю:  эта движуха с определением, что есть сервис, что есть микросервис, наносервис, минисервис, макросервис и так далее, выглядит как трата времени. Лучше разобраться с коммуникациями и изоляцией, чем тратить на это время. Но подобные статьи помогают понять, что заботит определенную группу лиц.

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

How do Ruby & Python profilers work?

Статья трехлетней давности о профайлерах в питоне и руби. Автор приводит две таблицы (для каждого из языков) в котором указывает существующие в экосистеме профайлеры, а также принцип их работы. Ну и как бонус, автор объясняет как работают tracing и sampling профайлеры, а также описывает недостатки имплементаций. Если хотите разобраться с профайлингом в динамических языках - статья хороший старт.

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

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

Hidden Gems: Event-Driven Change Notifications in Relational Databases

Автор задался вопросом, как автоматически генерировать события на изменение в сиквел базе. Автор рассматривает постгрес, оракл, H2 Database и MySQL/MariaDB и для каждой из БД рассказывает как подписаться на нотификации (в примерах java). В последнее время, приходится часто думать о том, как проще автоматически стримить состояние таблиц/агрегатов и статья может натолкнуть на варианты решения, если столкнулись с похожей задачей.

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

- Как оптимизировать расходы на Amazon AWS;
источник
2020 August 14
2pegramming
Пятничное чтиво

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

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

Блеск и нищета модели предметной области

Расшифровка доклада, с dotnet конференции, где сравнивается подход анемичной и богатой моделей. Об анемичной моделе уже писал в пятничных ссылках. Что понравилось: объясняются причины раскола на богатую и анемичную модели, вывод о том, когда ддд использовать, примеры из двух подходов для одной проблемы. Если хотите разобраться в различии моделей - однозначный мастрид.

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

What every developer should know about database consistency

Обзорная статья о том, что такое database consistency. Автор идет от ДБ запроса через Strong Consistency и Sequential Consistency к Eventual Consistency. Статья не претендует на подробное объяснение, но базовую концепцию из нее понять можно. Понравилось, что автор нарисовал графики, с помощью которых текст становится нагляднее. А если захотите разбираться в терминах дальше - Designing Data-Intensive Applications расскажет подробнее о консистентности в базах данных.

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

Why Write ADRs

Новый пост в блоге GitHub о том, для кого на самом деле пишут ADR (Architecture Decision Record). Если коротко, ADR это записи, в которых описываются принятые и не принятые технические решения, а также контекст, в котором принималось каждое решение, дата и кто принимал. Главное, что стоит знать и о чем говорит автор - ADR в первую очередь для коллег, будущих коллег, будущего тебя. И только после - для самого себя. Больше информации можно найти по ссылке Markdown Architectural Decision Records или в моем докладе из Твери, где рассказывалось о “ADR” в топтале.

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

- Как оптимизировать расходы на Amazon AWS;
источник
2020 August 21
2pegramming
Я опять приболел, поэтому ссылок на этой неделе не будет. До встречи в следующую пятницу!
источник
2020 August 25
2pegramming
Федя и Самат написали пост о диаграммах, в котором описали разные инструменты для работы с диаграммами. Я обожаю диаграммы и в качестве примера, найдете реальные примеры моей работы в igooods, где я помогаю ребятам спроектировать и сделать новый билинг для сотрудников.

https://vc.ru/services/151374-s-pomoshchyu-diagramm-mozhno-obyasnit-chto-ugodno-tem-bolee-chto-dlya-etogo-est-klassnye-instrumenty
источник
2020 August 28
2pegramming
Пятничное чтиво

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

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

Benchmarking Kafka vs. Pulsar vs. RabbitMQ: Which is Fastest?

Важно: стоит учитывать, что confluent предоставляет kafka as a service, поэтому стоит ожидать заинтересованность в победе кафки.

Confluent написали новый пост, в этот раз сравниваются популярные message brokers. Из статьи можно узнать о Apache Pulsar, методах сравнения брокеров, The OpenMessaging Benchmark Framework. Понравилось, что подробно описывается каждый из бенчмарков, но вопросы вызвал выбор брокеров на сравнение (ожидал увидеть еще nats).

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

Keyset Pagination
Keyset Pagination in Action
Pagination Tips

Тема пагинации не раскрыта, поэтому три статьи из одного блога, в из которых узнаете "все что можно" о пагинации в постгресе. В первой статье описывается базовая идея использования keyset пагинации и WITH page AS конструкции. Во второй статье приводится больше практических примеров с объяснением как это работает. А в последней статье приводится 5 видов пагинации и даются советы когда какую лучше использовать.

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

A simple IoT architecture to Ingestion and Reporting — Part I
A simple IoT architecture to Ingestion and Reporting — Part II
A simple IoT architecture to Ingestion and Reporting — Part III

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

Люблю такие статьи, так как можно посмотреть примеры систем  + почитать в чем оказались проблемы. Стоит учитывать, что статьи еще будут появляться и на данный момент описана только 3 атомарные части. Также, планировал на стримах делать подобные системы в учебных целях (пишите если интересно). Если на работе приходиться проектировать IoT системы или тема цепляет - маст хев.

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

- Матц принял ractor и готов его мержить;
источник
2020 September 04
2pegramming
Пятничное чтиво

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

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

Lessons I learned converting all my database IDs to UUIDs

В канале уже упоминались статьи связанные с использованием UUID как primary key в базе данных. В статье, автор описывает 5 ошибок, которые совершил мигрируясь на новые pk. Вот некоторые из описанных:

1. Эстимейт времени необходимый для выполнения миграции в базе данных;
2. special cases и случаи о которых никто не знал и не ожидал;
3. Не учтенные референсы, которые сломались;

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

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

Good Logging

Эссе на тему использования логгера в проектах. В самом тексте примеров нет, но описываются идеи и подходы, которые понравились. Вот некоторые из них:

- Логирование начала, конца и transitions для задачи (или куска кода), когда задача мелкая - стоит логировать только конец. Я бы еще добавил оборачивать логи в уникальный тег, для агрегации.
- Grep-able сообщения: писать логи так, чтобы их было легко найти поиском. В тексте можно найти дополнение о том, что если функция вызывается в 2+ местах - стоит добавлять место вызова для локализации проблемы.

От себя еще добавлю, что стараюсь оборачивать логи в теги (для реквестов, консьюмеров, воркеров и так далее). И что вместо логирования пару раз выручало складывать ответы от апи вызовов связанных с деньгами в базу данных.

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

Разбираемся с управлением памятью в современных языках программирования

Серия переведенных статей (на текущий момент 3 из 😍 об управлению памятью в языках (JVM, V8, go, rust, python, c++, c#). По ссылке будет введение, в котором найдете объяснение что такое stack и heap, как работают. Также затрагивается garbage collector. Если хотите разобраться как работают языки программирования на низком уровне - мастхев. Если русский перевод ждать лень - читайте оригинал. Для тех, кто хочет разобраться как в руби работает GC и управление памятью - читайте микроскоп.

Оригинальная серия

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

- Open Source Status Update за август от Петра (solnic);
- Open Source Status Update за август от Тима (timriley);
источник
2020 September 11
2pegramming
Пятничное чтиво

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

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

Distributed locks with Redis
How to do distributed locking

Распределенные блокировки сложная тема, в которой нужно учитывать множество нюансов. Я пытался написать redlock на стриме, но реализация оставляет желать лучшего. В статье-официальной документации описывается пример алгоритма redlock, который использует редис как стор для ключей. Во второй статье описывается почему redlock алгоритм “a poor choice” и что вообще делать в таких ситуациях (спойлер: Curator Recipes или zookeeper. Так же, советую 9 главу из Designing Distributed Systems Book в которой описывается Ownership Election и приводится пример распределенной блокировки ресурсов.

Русский перевод документации редиса

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

What to Make of SRE’s Golden Signals | VictorOps

Статья от разработчиков VictorOps (инструмент для incident management) с мыслями о том, что и как стоит собирать SRE команде для мониторинга системы. Сама статья не несет ценности, но описанные 4 «сигнала» для мониторинга, отправная точка для создания первых дашбордов. Эти сигналы: Latency, Traffic, Errors и Saturation. Если у вас мало опыта с обсервабилити и необходимо начать внедрять системные метрики - эти четыре пункта мастхев, а объяснение почему найдете в статье.

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

Real time communication using Web-sockets

Подробная статья о вебсокетах. В тексте найдёте описание работы протокола, пример клиентской части (для бэкенда автор взял уже готовый echo сервис) и некоторые мысли о безопасности. Статья поверхностна и не описывает мелочи, но для старта может подойти.
источник
2020 September 18
2pegramming
Пятничное чтиво

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

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

A plain English introduction to CAP theorem
Brewer’s CAP Theorem

CAP теорема необходима в распределенных системах, так как говорит что в подобных системах можно добиться двух из трех свойств: согласованности данных, доступности и partition tolerance. Понимание теоремы пригодиться при выборе оптимальной базы данных. А что бы разобраться с теоремой - две статьи.

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

Советую начать с первой, а потом уже читать вторую статью.

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

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

Where Is My Cache? Architectural Patterns for Caching Microservices

Кеширование - боль, а в (микро)сервисной архитектуре двойная боль. В статье описывается 4 паттерна (для некоторых из паттернов есть 2 варианта развития), которые помогут спроектировать кеширование в подобных архитектурах. Эти паттерны: Embedded Cache, Client-Server, Sidecar и Reverse Proxy. Для каждого паттерна дается описание, картинка и в самом конце proc&cons.

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

Фонтанный код

Я люблю космос и все что с ним связанно, поэтому блог Алексея отдушина для меня. В статье описывается алгоритм фонтанного кода. Такой алгоритм позволяет надежно передавать данные по каналу с потерями без обратной связи и с минимальными накладными расходами. Что может помочь в передачи данных между планетами, как пример. В тексте разбирается алгоритм и говорится о следующем шаге - Raptor code.
источник
2020 September 25
2pegramming
Пятничное чтиво

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

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

Redis: under the hood
More Redis internals: Tracing a GET & SET

Статья которую откладывал больше пяти лет. Автор описывает внутреннее устройство redis, а именно как работает startup сервера и реквест/респонс команд. В статье найдете вставки си кода и диаграммы, которые помогут разобраться в работе базы данных. Так же, дается ссылка на вторую часть, где описывается работа GET и SET команд.

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

Git from the inside out
A Hacker’s Guide to Git
Rebuilding Git in Ruby

Три статьи о низкоуровневой работе гита. В первой статье объясняется как работают самые популярные команды, что лежит в .git репозитории и как работают гит хеши. Во второй статье найдете подробное описание каждой из команд с информацией о внутреннем устройстве инструмента. Если и этого не хватит - можно прочитать главу из The Architecture of Open Source Applications (Volume 2).

А что бы закрепить - практика. Ребята из thoughtbot, четыре года назад, написали статью о том, как написать аналог гита на руби. Можно пройти шаги из статьи на стриме и посмотреть что получится. Если интересно - пишите в личку.

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

Тонкости авторизации: обзор технологии OAuth 2.0

Ребята из додо написали лонгрид о том, как работает OAuth 2.0. Изначально компания написала собственный сервис аутентификации для сервисной архитектуры, но теперь переписывают сервис на OAuth 2.0. Поэтому в статье найдете описание стандарта: что такое роли, как зарегистрировать клиента, как работают права доступа и что такое grant. А также приводятся примеры работы стандарта в sequence diagram. Если планируете писать собственный сервис аутентификации - однозначный мастрид. А так же, было бы интересно почитать опыт додо о собственном OAuth сервисе и как переходили с самописного решения.

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

- Kafka переходит на raft алгоритм вместо zookeeper
источник
2020 September 28
2pegramming
Привет!

Меня попросили сделать воркшоп и в качестве темы я хочу взять сервисную (микросервисную) архитектуру. Так как тема очень большая и в четыре часа ее не уместить - хочу понять самую популярную боль у разработчиков связанную с сервисами и сервисной архитектурой в частности.

Я сделал гугл форму на 2 вопроса и буду благодарен, если вы поможете и расскажете о своей боли или проблемах с которыми встречались в работе ❤️


https://forms.gle/6XVPFWQxH338X32GA
источник
2020 October 02
2pegramming
Пятничное чтиво

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

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

Thinking Like a Functional Programmer with Category Theory

Для меня теория категорий сродни монадам и функторам в социальном значении. Часто слышу термин, но до плейлиста от Bartosz Milewski руки не доходят. Поэтому сегодня короткая заметка с introduction в теорию категорий. В статье найдете определение категории, что такое объект, morphism и как это связано с графами. Также, дается определение magmas (бинарная операция). Ну и в конце разбирается что же такое монада и что означает фраза “моноид в категории эндофункторов”.

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

—————————————
How One Guy Ruined #Hacktoberfest2020

Первая драма на канале. Каждый год Hacktoberfest помогает разработчикам начать контрибьютить в опенсорс, а мейнтейнерам закрывать "скучные" баги, на которые не хватает сил и времени. К сожалению, с ростом популярности мероприятие превратилось в спам мейнтейнеров пул реквестами с добавлением “Awesome project” в readme файл или другими “быстрыми” способами получить футболку. Как выяснилось, началось все с ютубера, который записал короткое видео о том, как быстро получить футболку от DO. А в статье найдете больше примеров спам ПР-ов и реакцию сообщества и DO.

Если вы мейнтейнер проекта и вам шлют подобные ПР-ы, добавьте “invalid” или “spam” лейбл и тогда ПР-ы не будут учитываться.

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

Introducing Domain-Oriented Microservice Architecture

Статья инженеров убера о том, как компания с микросервисов перешла на “доменные” сервисы. Изначально у убера было два монолита, которые накладывали ограничения и создавали проблемы (список в статье), после чего компания перешла на микросервисы. Когда в системе стало 2000+ сервисов разработчики столкнулись с проблемой сложности анализа системы (например для поиска проблем). Поэтому появилась концепция DOMA, которая включает следующие правила: группировка сервисов по доменам, “шлюз” (гейтвей) как единственный публичный доступ к группе, слои для доменов и изоляция доменов. В статье найдете пример реализации и плюсы/минусы.

Русский перевод
источник
2pegramming
а так же, важный опрос. Добавлять коментарии и чат или нет?
Анонимный опрос
57%
Добавлять
43%
Забить
Проголосовало: 420
источник