Письма InfoQ для архитекторов за март, апрель, май 2021(letters #44, #45, #46)

Давно не писал про архитектурные письма от InfoQ и в этой статье решил это исправить, собрав воедино саммари по 3 письмам: мартовскому, апрельскому и майскому. Первое было посвящено теме облачных вычислений, а второе и третье — теме событийно ориентированной архитектуре. В этот раз я расскажу только про заинтересовавшие меня моменты.

Letter #44 — March 2021

Анонс интересного отчета про оркестрацию релизов в cloud native окружении от компании Vamp.io, которая является провайдером платформы для автоматизации релизов. Всего было 253 участника и 81% используют микросервисы в проде, а 72% использует K8s там же. В общем, отчет достаточно интересно полистать.

Интересная статья от Manuel Pais, который является автором нашумевшей книги Team Topologies, в которой он говорит, что K8s — это не платформа, а только основание экосистемы не только из инструментов и сервисов. В платформе должна быть реализована помощь как часть крутого внутреннего продукта. Платформенные команды должны предоставлять полезные абстракции поверх сложностей Kubernetes для уменьшения когнитивной сложно на бизнесовые команды (stream teams). Команда, которая занимается адаптацией K8s должна оценить когнитивную нагрузку и компромиссы, четко зафиксировать определения платформы и сервисов и определиться с командными взаимодействиями. Статья отличная, чтобы оценить семантику и риторику книги “Team Topologies”, в которой автор гораздо более развернуто обсуждает на эти же темы.

Понятные размышления Enrico Piccinin относительно того, что serverless functions хорошая модель деплоя микросервисов для начала, так как она обеспечивает

  • быстрый путь на продакшен
  • самую дешевую стоимость входа
  • высокую эластичность

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

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

Letter #45 — April 2021

Интересный отчет от InfoQ по проектированию и архитектуре ПО. Основная суть отчета такая:

  • в мире cloud native приложений архитектурные характеристики (-ilities) становятся более важными. Архитекторы проектируют решения с учетом свойств устойчивости, наблюдаемости (observability), портируемости (portability)
  • Два проекта от Microsoft OAM (Open Application Model) и Dapr (Distributed Application Runtime) для помощи в разработке распределенных приложений, интересно посмотреть как их будут принимать и адаптировать в будущем
  • Архитектура теперь вернулась к проверенным паттернам с high cohesion and low coupling вместо того, чтобы быть чисто микросервисной или полностью монолитной — нам важен баланс, а не догмы
  • В полностью распределенных командах (спасибо Covid-19) архитекторам пришлось научиться взаимодействовать с командой не у кофе-поинта для обмена информацией
  • GraphQL развивается и появляются штуки типа GraphQL Federation и GraphQL Microservices.

Хорошая статья Thomas Bush из Nordic APIs про бизнес преимущества EDA. Среди основных преимуществ выделены следующие:

  • Эффективная разработка — в плане скорости и стоимости. Тут имеется ввиду, что легко можно расширять функциональность приложения добавляя новые сервисы, которые могут читать нужные события из общей event bus или писать туда свои
  • Лучший UX — в современном мире люди привыкли к real-time поведению, основанному на событиях, поэтому проектируя изначально исходя из событий мы лучше понимаем user flow и можем проще его автоматизировать
  • Меньшая стоимость эксплуатации — когда мы строим EDA архитектуру мы может отказаться от постоянных опросов сервисов (polling), так как мы реагируем на события
  • Устойчивость (Resiliency)— возможность повторно прогнать поток событий, если сервис был не доступен. Также важно, что наши сервисы loosely coupled, что приводит к небольшому эффекту от отказа почти любого из сервисов

Forrester и Gartner недавно опубликовали свои отчеты, посвященные EDA. В своем посте в блоге VoltD Dheeraj Remella обобщает отчеты и приводит рекомендации:

  • move from event “awareness” to event-driven “action”
  • adopt a “low-latency first” EDA strategy
  • adopt real-time analytics at scale (and with speed).

Это перекликается с отчетом от InfoQ про Real-Time APIs.

Eran Stiller из InfoQ недавно написал статью, что Linux Foundation анонсировала что будет хостить AsyncAPI Initiative. И это хорошо:) Кстати, AsyncAPI — это открытая спецификация, которая предполагалась как индустриальный стандарт для определения асинхронных API. Она помогает унифицировано генерировать документацию и код, тестировать и мониторить асинхронные API. В общем, интересная штука, которая хорошо ложится в канву EDA.

Letter #46 — May 2021

Запись выступления Raghuram Onti Srinivasan с QCon Plus 2020, где он рассказывал про CDC из Cassandra в другие базы данных, Flink экосистему и использование Rocks DB.

Интересная статья Chris Latimer, VP of Product Management at DataStax, в которой рассказывается про “unified” event-driven architecture (EDA) pattern. Основные тезисы статьи:

  • Kafka — это система для стриминга и pub/sub модели, а не для messaging
  • а вот Apache Pulsar — это “cloud native distributed messaging and streaming platform”

Статья Derek Comartin, который утверждает, что термин “Event” is really overloaded. Этот термин используется для

  • Event Sourcing
  • Event Carried State Transfer
  • Event Notifications
  • и даже для Event Based Architecture

В своей статье автор пытается рассказать про разные значения и определить контекст их использования.

Yizhou Zhang, ассистент профессора в университете Waterloo, презентовал bidirectional algebraic effects, новую абстракцию в программировании, которая включает существующие паттерны для управления потоком выполнения программы (например, exceptions, promises, generators) одновременно поддерживая двухстороннее управление потоком. Новая абстракция гарантирует, что

all declared effects are handled, and no effects are accidentally handled (e.g., by the wrong handler).

Интересная новость для тех, кто интересуется языками программирования с точки зрения теории, а не практики их использования. Но я давно проходил ТРЯП (Теорию и реализацию языков программирования) и с тех пор как-то отошел от этой темы:)

Источники

  1. Letter #44 — March 2021
  2. Letter #45 — April 2021
  3. Letter #46 — May 2021

Director of digital ecosystem development department at Tinkoff. Bachelor at applied math, Master at system analysis, Postgraduate studies at economics.

Director of digital ecosystem development department at Tinkoff. Bachelor at applied math, Master at system analysis, Postgraduate studies at economics.