TGViewer
Channel Public Channel
ИТ-архитектура

ИТ-архитектура

@itarchitecture

Полезные ссылки и материалы по архитектуре предприятия, решений, данных, системной архитектуре, system design, archops. Администратор канала @itarchitect_kz https://www.linkedin.com/in/itarchitectkz www: https://itarchitect.kz
Subscribers
558
Photos
69
Videos
10
Links
208

Showing posts older than #245 · Back to latest

Older Posts 20 shown
Post #244 687

Forwarded from VM

Монолит vs Микросервисы

Я тут пока рассказывал ребятам про pet-проекты крутые, то столкнулся с популярным вопросом на тему того, как мне лучше сделать: все фичи в одном проекте или разбивать на микросервисы? Дескать микросервисы – это хайповая тема, которую хотят в вашем CV все рекрутеры и прочее

В общем когда вы делаете именно pet-проект, то все зависит от вас в общем-то: что вы там хотите изучить, что хотите показать другим людям. Но я бы сказал, что если вы стартанете свой стартап или в принципе какой-то проект с нуля, который будете делать “для себя”, то начинайте лучше с монолита.

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

- Как грамотно разбить вашу логику на отдельные компоненты?
- Какой способ коммуникации между ними использовать?
- Нужно реализовывать механизм retry между сервисами при прерывании коммуникации
- Где хранить данные? У каждого отдельная БД? А куда тогда выносить общие сущности, типа дто, чтобы не дублировать код? Делать библиотеку на artifactory своем? Ух…

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

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

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

Например, вы, вероятно, слышали про Amazon Prime Video. Ну там сериальчики можно посмотреть, все дела. Так вот они недавно имели архитектуру, которая работала на AWS Lambda и была разбита на атомарные компоненты. В какой-то момент они подумали и решили: “А давай-ка на монолит все перетащим”.

Результат: они урезали стоимость работы сервиса на 90% благодаря этому. Просто представьте, что вы каждый месяц тратите миллионы долларов на это. А тут бац – и в 10 раз меньше!

Посмотреть поподробнее про это можно здесь, например. Очень хороший канал, кстати, рекомендую. Таких мало. Его сделали авторы книжки “System Design Interview”, по которой можно готовиться к собесам, разумеется.

Короче, не торопитесь рисовать микросервисы. Лучше стартаните с одного проекта и заставьте его работать. А потом, если захотите потренироваться, упражняйтесь в разбиении на микросервисы.
  • 👍 7
Post #241 592
Post #239 634
Post #235 673
Обновление Archi до версии 5.0

Как-то пропустил выход новой версии любимого архитектурного инструмента Archi.
Из самого главного разработчиками добавлена поддержка Archimate 3.2.
Подробности: https://www.archimatetool.com/version-history
  • 👍 1
Post #234 727
Post #233 818
Что такое 𝗝𝗪𝗧 (JSON Web Token)?

Защита API — одна из самых важных вещей, которую нужно сделать для предотвращения злоупотребления им.

Такая защита реализуется с помощью процесса аутентификации и авторизации и наиболее часто используется механизм на основе токенов JWT.

JSON Web Token — это стандарт, который используется для обмена информацией между клиентом и сервером в виде объекта JSON.

Он представлен в виде строки, состоящей из 3 частей:

I. Header (заголовок):
Он состоит из типа токена (typ) и используемого алгоритма подписи (alg). Тип всегда будет JWT, а алгоритмом подписи может быть HMAC, SHA256 или RSA.
   
II. Payload (полезная нагрузка):
Эта часть содержит соответствующие данные (в основном для пользователей), известные как claims (утверждения).
Существует три типа утверждений:
1. 𝗥𝗲𝗴𝗶𝘀𝘁𝗲𝗿𝗲𝗱 — утверждения, которые рекомендуется использовать для интероперабельности, такие как издатель (iss), тема (sub), срок действия (exp) и т. д.
2. 𝗣𝘂𝗯𝗹𝗶𝗰 — содержит общую информацию, такую как адрес электронной почты, имя или роль. Рекомендуется использовать устойчивые к коллизиям имена, чтобы избежать конфликтов с частными утверждениями.
3. 𝗣𝗿𝗶𝘃𝗮𝘁𝗲 - пользовательские утверждения.

III. Signature (подпись):

Эта часть гарантирует, что токен не был изменен.
JWT подписан алгоритмом из заголовка, а подпись состоит из закодированного заголовка и полезной нагрузки, а также секрета.

Строка всегда кодируется как строка Base64, где каждая часть разделена точками, и таким образом легко передается через заголовки HTTP.

https://t.me/itarchitecture
  • 🔥 6
  • 👍 2
Post #230 657
Post #228 558
Популярные архитектурные стили API

На диаграмме ниже показаны распространенные архитектурные стили API на одном рисунке.

🔹 1. REST
Предложенный в 2000 году, REST является наиболее используемым стилем. Он часто используется между клиентскими и серверными сервисами. Он соответствует 6 архитектурным ограничениям. Формат payload (полезной нагрузки) может быть JSON, XML, HTML или обычный текст.

🔹 2. GraphQL
GraphQL был предложен компанией Meta в 2015 году. Он предоставляет схему и систему типов, подходящую для сложных систем, в которых отношения между объектами подобны графу. Например, на диаграмме ниже GraphQL может получить информацию о пользователе и заказе за один вызов, тогда как в REST для этого требуется несколько вызовов.

GraphQL не является заменой REST. Его можно построить на основе существующих сервисов REST.

🔹 3. Websocket
Веб-сокет — это протокол, обеспечивающий полнодуплексную связь по протоколу TCP. Клиенты устанавливают веб-сокеты для получения обновлений в реальном времени от серверных служб. В отличие от REST, который всегда «извлекает» данные, веб-сокет позволяет «проталкивать» данные.

🔹 4. Webhook
Веб-хуки обычно используются сторонними асинхронными вызовами API. Например, на приведенной ниже диаграмме мы используем Stripe или Paypal для платежных каналов и регистрируем веб-хук для получения результатов оплаты. Когда сторонняя платежная служба завершена, она уведомляет платежную службу, если платеж был успешным или неудачным. Вызовы веб-хуков обычно являются частью конечного автомата системы.

🔹 5. gRPC
Выпущенный в 2016 году gRPC используется для связи между микросервисами. Библиотека gRPC обрабатывает кодирование/декодирование и передачу данных.

🔹 6. SOAP
SOAP означает простой протокол доступа к объектам. Его payload является только XML, подходящий для связи между внутренними системами.

https://t.me/itarchitecture
  • 🔥 6
  • 👍 4
Post #227 464

Forwarded from Конференция ArchDays (legacy channel)

Состязания по ИТ-архитектуре. Как меняется описание архитектуры решений

Более 15 лет Максим работает ИТ-архитектором и сталкивается с описанием архитектуры решения. В ряде компаний это до сих пор документ, включающий, преимущественно, набор UML-диаграмм. Но у большинства формат и содержание описания архитектуры изменились.

В основном изменения стали следствием OReilly Architectural Katas — международного состязания ИТ-архитекторов. Десятки команд из разных стран собираются дважды в год, чтоб предложить свой вариант решения той или иной часто реальной задачи, сформулированной непосредственно заказчиком. Подобные соревнования в силу своей изначальной открытости, возможности сравнить варианты реализации, различающиеся как по форме, так и по содержанию, формируют де-факто стандарт описания архитектуры ИТ-решения.

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

https://youtu.be/QldYzcvmUFM
  • 🔥 5
  • 👏 2
Post #226 489
grep, DataDog, стек ELK, Splunk и другие знакомые слова в интересном подкасте о логировании и observability

В общем слушаем в машине, на прогулке.

#podcast

https://pca.st/episode/35631d88-1227-4a48-b939-80d441573acc
Pocket Casts Podlodka #306 – Observability и логирование - Podlodka Podcast Так вышло, что за 300+ выпусков мы ни разу не обс…
  • 👍 1
Post #225 611
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →