Сравнение способов асинхронного взаимодействия API
🧑🎓 Описание каждого метода и материалы можно найти в базе знаний по системному анализу
#интеграции #async
#интеграции #async
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥48👍16❤11
MOM/MQ — не шины данных, но могут быть частью решения, основанного на шине
ESB (Enterprise Service Bus)
Как работает
1. приложение отправляет данные на ESB через адаптер (например, для БД или веб-сервиса)
2. ESB преобразует формат данных, если требуется
3. шина маршрутизирует сообщение в нужное приложение
4. получатель получает сообщение и обрабатывает его
Шина данных считается устаревшим видом интеграции:
Пример: Apache Camel, MuleSoft
MOM (Message-Oriented Middleware)
Как работает
1. приложение отправляет сообщение посреднику (MOM)
2. посредник сохраняет сообщение в буфере до тех пор, пока приложение-получатель не будет готово его принять
3. получатель обрабатывает сообщение, когда готов
4. MOM удаляет сообщение из буфера только после его успешной доставки
Пример: ActiveMQ, RabbitMQ - поддерживают и очереди, и другие модели, такие как Pub/Sub
MQ (Message Queue)
Пример: IBM MQ
1. От хаоса к порядку: как легко интегрировать сервисы с помощью Enterprise Service Bus
2. Шины данных (ESB): зачем компаниям использовать этот инструмент
3. Почему технари против шин данных: middleware, ESB, брокеров сообщений?
4. Как я 10 лет строю интеграцию в банке: от ESB-монолита к целой линейке систем
5. Уже поменяли шину? Наш опыт «переобувания» и разработки интеграционной платформы
6. ESB интеграция: объяснение и цель
7. Что такое MQ? Основные понятия
8. Интеграция на основе сообщений. Преимущества и отличия от других подходов
9. Кафка это шина? API, MQ, шины/ESB. Неочевидные минусы подходов и их плюсы
#проектирование #архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤11🔥6🤣3
Media is too big
VIEW IN TELEGRAM
Все посты из канала за всё время разложены по полочкам в едином месте — базе знаний 🤓
Наша цель — сделать кладезь знаний системного аналитика 🧠
Какие плюшки вас ждут:
🗂 Все знания в едином месте: кратко, ёмко, без воды и с подборками полезных материалов 🔥
📝 Контент на заказ бесплатно: хотите материал на конкретную тему? Любой покупатель может оставить запрос, и мы сделаем обзор с исчерпывающей подборкой материалов абсолютно бесплатно!
На analitik.me можно узнать про Базу знаний больше.
P.S. Если нет карты РФ и по любым другим вопросам можно писать сюда: @radale
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32❤12⚡5😁5👍4
Архитектурные паттерны — шаблоны для высокоуровневой организации системы.
Определяют основные компоненты системы, их взаимосвязи и взаимодействия
Паттерны MV(X) используются в
MV(X) — семейство паттернов со схожей структурой
Разделяют приложения на основные компоненты:
тем проще управлять проектом, добавлять и тестировать компоненты
Рассмотрим некоторые из них:
MVC (Model-View-Controller)
Controller: логика, которая связывает model и view
Подходит для небольших / средних приложений
Чем проще Controller, тем лучше
Пример
В веб-приложении для управления библиотекой:
Недостатки
MVP (Model-View-Presenter)
Presenter: полностью управляет логикой view
Отличие от MVC: связь view и model идет через presenter, а не напрямую
Эффективен в приложениях с высокой нагрузкой на UI,
и где необходимы модульные тесты, т.к. Presenter можно тестировать
Пример
В Android-приложении для управления задачами:
Недостатки
MVVM (Model-View-ViewModel)
View взаимодействует с ViewModel через привязку данных
ViewModel
Эффективен для приложений со сложными структурой данных и интерфейсом
Пример
В WPF-приложении для управления контактами:
Недостатки
1. MVC
2. Достоинства использования MVC архитектуры в разработке клиент-серверного интернет-магазина
3. Что такое MVP архитектура
4. Реализация MVC паттерна на примере создания сайта-визитки на PHP
4. MVC против MVVM — разница между ними
5. Понимание различий: MVC и MVVM
6. Шпаргалка по MV-паттернам для проектирования веб-приложений
7. Архитектурные шаблоны: объяснение MVC, MVP и MVVM
8. Паттерны для новичков: MVC vs MVP vs MVVM
#архитектура #проектирование
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤8👍6⚡1
Kafka поддерживает транзакции, чтобы гарантировать выполнение операций по принципу «всё или ничего»
Такая гарантия доставки называется exactly-once
Подробнее о других типах гарантии доставки тут
Когда применяется
Как работают транзакции в Kafka
transactional.id. Это идентификатор, который отличает записи транзакцийКоммит фиксирует сообщения, и они становятся видимы потребителям, в противном случае -- откатываются
ACID в Kafka
read_committed (на стороне консьюмера) потребители могут видеть только зафиксированные данные, пока транзакция не завершенаПлюсы и минусы
Пример транзакции в Kafka
Система обработки заказов. Нужно записать информацию сразу в несколько топиков для сгласованности данных
Есть два топика в Kafka:
— orders: хранит общую информацию о заказе
— inventory: содержит информацию об изменении запасов после заказа
Шаги для транзакции:
Результат: транзакция гарантирует, что потребители прочтут согласованные данные
1. Изоляция транзакций в Apache Kafka при потреблении сообщений
2. Семантика exactly-once в Apache Kafka
3. Транзакции в Apache Kafka: атомарность публикации сообщений
4. Что такое гарантия доставки сообщений или как избавиться от дублей и потерь в Apache Kafka и других Big Data брокерах
📚 Книги
1. Kafka в действии -- Дилан Скотт, Виктор Гамов и Дейв Клейн
2. Apache Kafka. Потоковая обработка и анализ данных -- Гвен Шапира, Тодд Палино, Раджини Сиварам, Крит Петти
3. Effective Kafka: A Hands-On Guide to Building Robust and Scalable Event-Driven Applications with Code Examples in Java -- Emil Koutanov (англ)
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍14❤10⚡3😁2
CDN (Сеть доставки контента) — сеть серверов, которые
Основная задача: быстро и надёжно доставлять статические и медиа-данные (изображения, видео, стили, скрипты) независимо от местоположения пользователя
Применение
Когда важно быстро и стабильно доставлять контент:
Примеры: Selectel , CDNCloud, CDN от Яндекса, CloudFront
Основные понятия
Виды контента
Уникален для каждого пользователя, его нельзя кэшировать. Но CDN позволяет ускорять его передачу за счет:
Пример работы CDN
Кэширование в CDN
Связь с бэкэнд и фронтенд кэшем:
Синхронизация: по правилам инвалидации и версиями URL для одновременного обновления всех уровней кэша — от бэка до фронта через CDN
Балансировка нагрузки
Распределяет трафик между PoP-узлами и серверами внутри них
Для направления запросов к ближайшему PoP-узлу используются способы:
Внутри PoP-узлов: локальный балансировщик распределяет трафик между серверами в узле, учитывает их загрузку и задержки
1. CDN
2. CDN: что такое и как работает технология
3. Что такое CDN: смотрим на примерах
4. Что такое CDN и как это работает?
5. 10 интересных фактов про CDN и скорость сайтов
6. Разбираемся в статусах кеша CDN
7. CDN или Кэширование?
#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤6🔥3
Кэширование — временное сохранение данных, чтобы ускорить их повторное использование и уменьшить нагрузку на системы.
Подробнее читать тут
Уровни кэширования — места в цепочке передачи данных, где может происходить кэширование
Клиентский кэш
Хранение данных на устройстве пользователя (например, в браузере) для ускорения доступа к часто запрашиваемым ресурсам
Тип данных: статические (изображения, CSS, JavaScript)
Проблемы и решения
Сетевой кэш
Кэш на промежуточных узлах сети (например, CDN)
Используется для уменьшения задержек и нагрузки на сервер
Тип данных: статические (медиафайлы, страницы) и динамические (обработанные данные с учетом TTL)
Проблемы и решения
Стратегия «push» обновлений помогает предотвратить "протухания"
Серверный кэш
Кэширование данных на сервере (например, в памяти или на диске) для ускорения обработки запросов
Тип данных: динамические (результаты запросов, промежуточные вычисления)
Проблемы и решения
Уровень приложения (кэш приложения)
Кэширование на уровне бизнес-логики приложения, где данные обрабатываются и сохраняются в памяти / специализированных хранилищах
Тип данных: динамические (сессии, промежуточные результаты)
Проблемы и примеры решения
1. Что такое кэширование сайта и почему это важно
2. Кэш
3. Чем полезно кэширование сайта и как его настроить
4. Браузерное и серверное кэширование
5. Проектирование эффективной системы кэширования
6. Обзор использования клиентского кэша с распределенным кэшированием
7. Основы клиентского кэширования понятными словами и на примерах. Last-modified, Etag, Expires, Cache-control: max-age и другие заголовки
8. Кеширование. Настроить и проверить параметры кеширования на CDN-серверах
9. Клиентский кэш данных
#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥9❤7
Data Lake — метод хранения данных системой или репозиторием в сыром (неструктурированном) или частично обработанном виде
Как хранятся данные
Сырой (Raw) слой
Обработанный (Processed) слой
Аналитический (Curated) слой
Форматы хранения
Данные сохраняются как есть, структура определяется во время анализа.
Где используется Data Lake?
Виды интеграций с Data Lake
Пример работы
Сбор данных о продажах из онлайн-магазина (CSV-файлы), отзывы клиентов (текст), логи веб-сервера (JSON) и записи звонков в службу поддержки (аудио)
Чем отличается от СУБД и DWH
Плюсы и минусы
данные требуют дополнительных шагов для анализа (ETL/ELT)
1. Data Lake
2. Хранилище данных vs. Data Lake. Или почему важно научиться ходить перед тем, как начать бегать
3. Чем озеро данных отличается от базы и зачем оно нужно аналитикам
4. Что такое озеро данных?
5. Распределенное хранилище данных в концепции Data Lake: с чего начать
6. Как мы организовали высокоэффективное и недорогое DataLake и почему именно так
7. Data Lake – от теории к практике. Сказ про то, как мы строим ETL на Hadoop
8. Что в глубинах Data Lake? Строим архитектуру, укладываем слои, распределяем ответственность
9. Озера данных vs обычные БД
#инфраструктура
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍8❤7
Это различные модели облачных услуг от провайдеров
Предоставляют ИТ-ресурсы через интернет
Для чего нужны?
— нет расходов на оборудование, центры обработки данных, их обслуживание
— оплата только за используемые ресурсы
— быстрое добавление/уменьшение ресурсов под нагрузку
— универсальные платформы и инструменты для разработки и управления приложениями
Кратко
SaaS
Применение
Пример
для ведения учета продаж можно:
PaaS
Применение
Пример
чтобы разработать приложение для управления задачами, можно
IaaS
Применение
Пример
для развертывания интернет-магазина можно:
CaaS
Применение
Пример
для развертывания микросервисов можно:
FaaS
Применение
Пример
для обработки изображений можно:
1. В чем разница между IaaS, PaaS, SaaS, FaaS и CaaS
2. X-as-a-services: как не погрязнуть в аббревиатурах облачных услуг
3. Что такое IaaS, PaaS и SaaS: объясняем простыми словами
4. Разница между IaaS, PaaS и SaaS: самая понятная статья об облаках в интернете
5. В чем разница между PaaS, SaaS и IaaS?
6. SaaS, PaaS, IaaS: в чем разница
7. Введение в модели облачных сервисов - PaaS, SaaS, IaaS, FaaS и другие
#инфраструктура
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27👍14❤6😁2👎1
Модель зрелости REST API Леонарда Ричардсона — концепция, которая оценивает уровень соответствия API принципам REST
Применяется:
URL (Uniform Resource Locator): указывает, где находится ресурс, и как к нему обратиться (например, протокол + адрес)
URN (Uniform Resource Name): уникальное имя ресурса, независимое от его местоположения.
URI (Uniform Resource Identifier): общий термин, включающий как URL, так и URN, т.е. идентификатор ресурса в сети
Уровни зрелости модели
Иногда называется "болото оспы" (The Swamp of POX (Plain Old XML)
API — точка входа, которая принимает параметры и возвращает результат (единственный endpoint).
Действует как обёртка для удалённых процедур, не использует RESTful принципы
Запросы обрабатываются как действия, а не как операции с ресурсами
POST /createUser для получения спискапользователей, POST /getUsers для создания.GET, POST, PUT, DELETE200 OK, 404 Not Found). Это делает интерфейс более понятнымGET /users/123 → возвращает пользователяDELETE /users/123 → удаляет пользователяСамый высокий уровень зрелости REST API
HATEOAS (Hypermedia as the Engine of Application State) — характеристика веб-сервиса возвращать действия, которые могут быть выполнены с ресурсом, в виде URL
Дает возможность менять URI независимо от клиентов
Есть API для управления задачами в приложении
Сервер может вернуть ответ на запрос списка задач, в том числе гиперссылки
Клиент может следовать ссылкам, но не знать заранее URL-структуры API
{
"tasks": [
{
"id": 1,
"noscript": "Buy groceries",
"status": "pending",
"_links": {
"self": "/tasks/1",
"update": "/tasks/1/update",
"delete": "/tasks/1/delete"
}
},1. А ваша служба является RESTful? Все что необходимо/обязательно знать про веб службы и REST
2. Richardson Maturity Model – RESTful API (en)
3. REST API — Что такое HATEOAS?
4. REST, что же ты такое?
#api
Please open Telegram to view this post
VIEW IN TELEGRAM
❤26🔥15👍13
Forwarded from Задачи для Системных Аналитиков
Системный_анализ_IT's_Tinkoff_Solution_Cup.pdf
625 KB
Please open Telegram to view this post
VIEW IN TELEGRAM
❤38🔥22⚡12😱9
Фреймворк — готовая программная структура (каркас) для разработки ПО, которая
У каждого фреймворка свой набор инструментов и свой функционал
Зачем нужен
Виды фреймворков
примеры: React (JavaScript), Angular (JavaScript), Vue.js (JavaScript)
примеры: Django (Python), Spring Boot (java), Express.js (JavaScript)
примеры: Flutter (Dart), Xamarin (C#), React Native (JavaScript)
Фреймворк vs библиотека
При использовании библиотеки контроль - у разработчика
Пример фреймворка Django
Django — фреймворк для разработки веб-приложений на Python
Состоит из:
Используется встроенный ORM для работы с записями, подключаются шаблоны для отображения страниц и настраивается маршрутизация для обработки URL
Минусы фреймворков
Как аналитик может использовать фреймворки
поможет учитывать их ограничения в согласовании требования с разработчиками
С помощью фронтенд-фреймворков (React или Angular) можно создать прототип пользовательского интерфейса
Заказчик сможет протестировать функционал на раннем этапе
В ТЗ можно указать, что бизнес-логика реализуется с использованием Django
Предложить выбор подходящего фреймворка
1. Фреймворк
2. Что такое фреймворк: виды, задачи, правила выбора
3. Фреймворк: особенности, преимущества, архитектура
4. Что такое фреймворк и чем отличается от библиотеки, простое объяснение
5. Для чего нужен фреймворк и как его выбрать
6. Фреймворк: как выбрать подходящий для фронтэнда и бэкэнда
7. Фреймворки в веб-разработке — что это, какие существуют и для чего нужны
8. Как выбрать фреймворк для бэкенда: мнения разработчиков
9. Фреймворки — больше минусов чем плюсов
10. 5 полезных фреймворков и библиотек для начинающего фронтенд-разработчика на конец 2024 года
#инфраструктура
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤8🔥4⚡3
1. Мок-интервью Бизнес Системного Аналитика на уровень Senior
2. Тестовое собеседование на позицию сеньора аналитика. Решение задач
3. Топ-10 вопросов по Системному анализу / Собеседование с разбором ответов и материалами
4. Техническое собеседование системного аналитика
5. Тестовое собеседование на позицию Middle аналитика
6. Моковое собеседование на Middle системного аналитика | Solvery & На собесе как на танцполе
7. Тестовое собеседование на младшего системного аналитика
P.S. по ссылкам выше видео с ютуба
Бонус:
1. Топ-100 вопросов на собеседовании по системному анализу
2. 120 вопросов
#собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40👍12❤5👏2
System Design (системный дизайн) — процесс проектирования архитектуры системы
Уровни системного дизайна
Основные принципы
Проектировать системы так, чтобы могли выдерживать рост нагрузки
Минимизировать влияние отказов компонентов на всю систему
Оптимизация времени отклика и обработки данных
Деление системы на независимые части для упрощения разработки и поддержки
Распределение входящего трафика между несколькими серверами
Защита данных и ресурсов системы
Система должна предоставлять метрики для отслеживания проблем
Системный дизайн VS архитектура
Краткий пример системного дизайна
Задача: создать масштабируемую систему для загрузки и хранения изображений
Сбор требований:
Решение
1. Что такое System design?
2. Что такое System Design. Пример System Design для онлайн-магазина, для мобильного приложения
3. System Design для начинающих: всё, что вам нужно
4. System design. Реальный проект vs Интервью
5. System Design. Общие принцип прохождения интервью по проектированию ИТ-систем
📚 Книги
1. System Design. Подготовка к сложному интервью
2. Разработка высоконагруженных систем — очень полезная брошюра по материалам конференции HighLoad++
#архитектура #проектирование #развитие
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍14❤6😁1🤔1
Forwarded from Библиотека Системного Аналитика
Микросервисы_От_архитектуры_до_релиза_Митра_Р_Надареишвили_И.pdf
6.2 MB
Микросервисы. От архитектуры до релиза
✍️ Автор: Ронни Митра, Иракли Надареишвили
🗓 Год издания: 2023
🔤 Язык: русский
📚 Объём: 336 стр.
Книга - практическое руководство по разработке микросервисной архитектуры. Авторы на основе своего опыта и кейсов из индустрии, предлагают системный подход к проектированию, организации команд, созданию инфраструктуры и развертыванию микросервисов.
Основное внимание уделяется практическому проектированию и разработке, затрагиваются ключевые принципы и модели микросервисных систем.
Предназначена для архитекторов и инженеров, работающих с микросервисами, но также будет полезна тем, кто хочет глубже разобраться в их реализации.
Обзор книги на Хабр
Микросервисная архитектура: основные понятия
#микросервисы #архитектура
✍️ Автор: Ронни Митра, Иракли Надареишвили
🗓 Год издания: 2023
🔤 Язык: русский
📚 Объём: 336 стр.
Книга - практическое руководство по разработке микросервисной архитектуры. Авторы на основе своего опыта и кейсов из индустрии, предлагают системный подход к проектированию, организации команд, созданию инфраструктуры и развертыванию микросервисов.
Основное внимание уделяется практическому проектированию и разработке, затрагиваются ключевые принципы и модели микросервисных систем.
Предназначена для архитекторов и инженеров, работающих с микросервисами, но также будет полезна тем, кто хочет глубже разобраться в их реализации.
Обзор книги на Хабр
Микросервисная архитектура: основные понятия
#микросервисы #архитектура
👍27❤11🔥2🤔1
Карта навыков BA/SA
Очередная карта навыков, найденная здесь.
Ранее мы делали собственную очень объёмную карту навыков системного аналитика.
Ну а разложить теорию в голове по полочкам и намаппить на карту навыков поможет база знаний.
Картинка без сжатия в комментариях
Очередная карта навыков, найденная здесь.
Ранее мы делали собственную очень объёмную карту навыков системного аналитика.
Ну а разложить теорию в голове по полочкам и намаппить на карту навыков поможет база знаний.
Картинка без сжатия в комментариях
❤54🔥25👍19⚡3😁1
Ранее писали про балансировку нагрузки
Напомним, балансировка — механизм распределения входящих запросов между серверами
Уровни балансировки в модели OSI
Типы балансировщиков
Аппаратные (Hardware Load Balancer, HLB)
- физические устройства с сетевыми процессорами (ASIC), которые обрабатывают пакеты быстрее, чем программные решения
- часто используются в крупных дата-центрах
Как работают
Программные (Software Load Balancer, SLB)
- ПО на сервере, которое выполняет функции балансировки
- гибкое, дешевле аппаратных решений, но требует мощностей сервера
Как работают
Виртуальные (Virtual Load Balancer, VLB)
- программные балансировщики, работают в виртуальных средах или в облаке
- поддерживают авто-масштабирование (динамическое изменение кол-ва серверов)
Как работают
* инстанс (instance) – виртуальная / физическая машина, которая обрабатывает запросы
Методы балансировки
DNS-сервер возвращает разные IP-адреса на один DNS-запрос
— не учитывает загрузку серверов и может кэшироваться клиентами (возможны задержки в обновлении маршрутов)
— например, api.example.com может вести на разные серверы
запросы поступают на прокси → он анализирует содержимое и перенаправляет на нужные серверы
изменяет MAC-адреса пакетов, направляет их напрямую на backend-серверы
изменяет IP-адреса и порты пакетов, направляет трафик на разные серверы онлайн
Примеры методов для разных типов нагрузки
Пользователь запрашивает изображение с сайта
REST API с /auth и /data:
/auth — на серверы аутентификации
/data — на серверы обработки данных
L7-балансировщик (F5 BIG-IP) с алгоритмом Sticky Sessions определяет пользователя по cookie и направляет его запросы на один сервер. Данные сессии (корзина, авторизация) не потеряются
Кластер PostgreSQL с мастером и 3 репликами
1. Балансировка нагрузки: основные алгоритмы и методы
2. Load Balancer и Reverse Proxy в микросервисной архитектуре
3. Load Balancers для систем оркестрации
4. Балансировка нагрузки в Облаках
5. Сетевой балансировщик нагрузки
6. DNS Балансировка нагрузки: что это такое
7. Как работает L3 балансировщик нагрузки
8. Балансировка нагрузки на L3, L4 и L7
9. Что такое Envoy, зачем он нужен и как работает
#проектирование #инфраструктура
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥6🤔3❤2😁2