Системный Аналитик – Telegram
Системный Аналитик
18.6K subscribers
91 photos
4 videos
49 files
254 links
Канал для системных аналитиков и не только: подборки полезных материалов на все случаи жизни.

Реклама и сотрудничество @radale

https://gosuslugi.ru/snet/67b0613c6411ff785396754a
Download Telegram
📍
Бизнес-анализ и Системный анализ

Группа для профессионалов, начинающих специалистов, и всех, кому интересна тема бизнес-аналитики, системного анализа, проектирования систем и системной инженерии
🔥4
🔥 Большая подборка материалов по микросервисной архитектуре

Призываем активно делится материалами в комментариях, если у вас есть, что показать ☺️

📑 Статьи (теория)
1. Просто о микросервисах — Хабр, блог Райффайзен Банка
2. Простым языком о микросервисной архитектуре для начинающих — VK Cloud
3. Архитектура микросервисов
4. Шпаргалка по миграции монолита на микросервисы
5. Полный перечень паттернов проектирования MSA от Криса Ричардсона
6. 26 основных паттернов микросервисной разработки на русском
7. Какого размера должен быть микросервис
8. Целостность данных в микросервисной архитектуре — как её обеспечить без распределенных транзакций и жёсткой связности
9. Сравнение подходов к реализации распределенных транзакций для микросервисов

📝 Статьи (практика)
1. Микросервисы глазами аналитика
2. Микросервисы: опыт использования в нагруженном проекте
3. Не бойся микросервиса: Алексей Баитов об использовании микросервисной архитектуры на практике
4. Kafka и микросервисы: обзор
5. Путь IVI от монолита к микросервисам
6. Переход от монолита к микросервисам: история и практика Райффайзен Банка
7. Предметно-ориентированная микросервисная архитектура от Uber
8. Распределённая трассировка: мы всё делали не так

Видео и вебинары
1. Что такое Микросервисы || Объяснение от Мартина Фаулера (пересказ на русском)
2. Микросервисная архитектура, подходы и технологии — Кирилл Ветчинкин
3. Введение в архитектуру микросервисов — Дмитрий Голых
4. Микросервисы с нуля — Семен Катаев (Авито)
5. ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам — Андрей Половов (Флант)
6. Современная Микросервисная архитектура в банковской сфере — доклад Александр Соляра (Иннотех) на конференции Analyst Days-13
7. Аналитика микросервисов. Практический опыт аналитика в enterprise — доклад Валерия Разномазова на конференции Analyst Days-14
8. Проектируем приложение в микросервисной архитектуре. Разбор кейсов — доклад Максима Цепкова на конференции Analyst Days-12
9. Шаблоны проектирования микросервисов на примере Авито
10. Целостность данных в микросервисной архитектуре — Николай Голов (Avito)
11. Мастер-класс: использование брокеров сообщений в сервисной архитектуре — Андрей Бураков
12. Микросервисы vs монолит: разбираемся в архитектуре приложений — демо-занятия от Яндекс Практикум
13. Микросервисная архитектура, когда нужна, а когда нет — открытый вебинар курса «Microservice Architecture» от OTUS
14. Тестирование в микросервисной архитектуре — демо-занятие курса «Microservice Architecture»
15. Авторизация и аутентификация в микросервисной архитектуре — открытый вебинар курса «Microservice Architecture» от OTUS

Вот ссылка на плейлист в Ютубе, где собраны все видео выше + ещё несколько

📚 Книги
1. Крис Ричардсон. Микросервисы. Паттерны разработки и рефакторинга
2. Сэм Ньюмен. Создание микросервисов
3. Беллемар Адам. Создание событийно-управляемых микросервисов
4. Сэм Ньюмен. От монолита к микросервисам
5. Парминдер Кочер. Микросервисы и контейнеры Docker

⛔️ Про недостатки MSA
1. Хватит везде делать микросервисы
2. Остановитесь!!! Вам не нужны микросервисы
3. Микросервисы. Не всё то золото, что хайп
4. Видео Ах, как хочется вернуться, ворваться в монолит! — Павел Лакосников (Авито)
5. Верните мне мой монолит

#подборка #микросервисы #архитектура
🔥41👍94
Sozdanie_sobytiyno_upravlyaemykh_mikroservisov.pdf
7.6 MB
📖 Создание событийно-управляемых микросервисов

✍️ Автор: Беллемар Адам
📅 Год: 2022
🔤 Язык: русский

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

#микросервисы #архитектура
👍11👏5
🤣53😁236👏1
🆚 Микросервисы VS монолит: сравнение в карточках.

Судя по реакциям формат карточек вам понравился, поэтому будем стараться часть постов оформлять именно так.

Если нужно больше информации про микросервисы — смотрите два предыдущих поста: теория + подборка материалов про микросервисы

#сравнение #микросервисы #архитектура
🔥25👍174
Шпаргалка для тех, кто ещё не понял, что выбрать
😁95🤣56💩11🔥92😐1
Виды нереляционных БД. Какие бывают NoSQL базы данных

Ранее мы писали о реляционных БД, сравнивали их с нереляционными. Познакомимся с NoSQL подробнее. Все ссылки кликабельны, нажмите на название СУБД и откроется статья из Хабра.

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

1️⃣ Ключ-значение (Key-value)
Предназначены для быстрых, почти мгновенных запросов для таких задач как кэш, отображение баланса и т.д.. Высокая скорость осуществляется за счет хранения данных по принципу ключ-значение, и в большинстве случаев благодаря работе в оперативной памяти. Записи хранятся и извлекаются с использованием ключа, который однозначно идентифицирует запись и используется для быстрого поиска данных.
👉 Примеры СУБД: Redis, Memcached, Tarantool.

2️⃣ Документо-ориентированные БД
Могут быть полезны, если нужно хранить много файлов/документов и вы не хотите задумываться о структуре хранения, иерархии, связях. Такие БД имеют структуру дерева: начинаются с корневого узла и может содержать несколько внутренних и листовых узлов.

Листовые узлы содержат данные, которые при добавлении документа заносятся в индексы, это дает возможность даже при достаточно сложной структуре находить путь к искомых данных. В отличие от хранилищ типа ключ-значение, выборка по запросу к документному хранилищу может содержать части большого количества документов без полной загрузки этих документов в оперативную память.
👉 Примеры СУБД: MongoDB.

3️⃣ БД временных рядов (TSDB)
Подходят, если есть упорядоченные по времени данные с временными метками, такие как метрики от инфраструктуры или данные датчиков. Часто используются для осуществления мониторинга различных метрик (будь то загрузка CPU, или показатели работы какого-либо датчика).
👉 Примеры СУБД: Prometheus, InfluxDB, Graphite.

4️⃣ Графовые БД
Применяются, когда нужно анализировать отношения данных, их связи или просто упростить запросы с километровыми Join, имеет смысл использовать графовые базы данных. Данные и их связи представляются как вершины и ребра графа соответственно. Таким способом можно легко представить денежные переводы (для определения различных мошеннических схем), связи в социальной сети и граф общения между операторами сотовой сети.
👉 Примеры СУБД: Neo4J.

5️⃣ Поисковые БД (Search Engines)
Подходит, если вам необходимо осуществлять поиск по большим объемам данных, особенно неструктурированным, как пример поиск по нескольким терабайтами логов.

Поиск по текстам работает на основе индексирования. Каждому слову/лемме/n-грамме присваивается индекс. Затем формируется структура вроде таблицы, где строки являются документом, а столбцы индексами. Поиск по индексу существенно быстрее, чем по совпадению по словам в документах.
👉 Примеры СУБД: Elasticsearch.

6️⃣ Объектно-ориентированные БД
Здесь информация представлена в виде объектов, прямо как в ООП. Объектно-ориентированные базы данных появились как способ нативной коммуникации кода написанного с использованием объектно-ориентированных языков с базой данных.
👉 Примеры СУБД: Db4o.

7️⃣ Колоночные БД (column family store)
Колоночные NoSQL-базы хранят данные по столбцам, а не по строкам, как в реляционных БД. Это упрощает добавление и удаление свойств, а также позволяет работать с данными без жесткой схемы. Колоночные БД быстро и экономно обрабатывают большие объемы информации для анализа, так как выгружают только нужные значения из столбцов.
👉 Примеры СУБД: Cassandra, Clickhouse.

📎 Ещё полезные материалы
1. Виды баз данных. Большой обзор типов СУБД
2. Базы данных: большой обзор типов и подходов. Доклад Яндекса
3. Модели данных в NoSQL
4. Использование memcached и Redis в высоконагруженных проектах
5. Как базы данных «ключ-значение» обеспечивают производительность и масштабируемость без границ
6. SQL и NoSQL. Правда ли одно лучше другого?

#бд
18👍15🔥5
🏄🏻‍♂️ Балансировка нагрузки. Основные принципы

Балансировка нагрузки — это распределение трафика и задач между серверами. Сначала все компоненты веб-приложения могут быть на одном сервере, но потом его мощности может не хватить. Тогда можно улучшить сервер, добавить CPU/RAM (вертикальное масштабирование) или разделить задачи на несколько серверов (горизонтальное масштабирование).

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

Что даёт балансировка нагрузки

Отказоустойчивость. Если один сервер откажет, балансировщик распределит трафик между остальными элементами инфраструктуры.

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

Защита от DDoS-атак. Ее обеспечивает задержка ответа, когда фоновые серверы не видят клиента до подтверждения по TCP.

Три уровня распределения нагрузки

1️⃣ Сетевой. Балансировка осуществляется по следующему принципу: нужно сделать так, чтобы за один конкретный IP-адрес сервера отвечали разные физические машины. К сетевому уровню относятся решения, которые не терминируют на себе пользовательские сессии. Они просто перенаправляют трафик и не работают в проксирующем режиме. На сетевом уровне балансировщик просто решает, на какой сервер передавать пакеты. Сессию с клиентом осуществляет сервер.

2️⃣ Транспортный (L4). Клиент обращается к балансировщику, тот перенаправляет запрос одному из серверов, который и будет его обрабатывать. Выбор сервера, на котором будет обрабатываться запрос, может осуществляться в соответствии с самыми разными алгоритмами: путём простого кругового перебора, путём выбора наименее загруженного сервера из пула и т.п.

3️⃣ Прикладной (L7). В отличие от транспортного уровня, он анализирует клиентские запросы и перенаправляет их на разные серверы в зависимости от характера запрашиваемого контента. Примером L7-балансировщика является pgpool, который распределяет запросы к PostgreSQL по их содержанию: чтение — один сервер, запись — другой.

🆚 Балансировка или проксирование?

Балансировку нагрузки часто называют проксированием. Это не совсем так.
Всякий балансировщик – прокси-сервер, но не всякое проксирование является балансировкой
Прокси – посредник между клиентом и сервером. Принимает запрос от клиента и отправляет серверу, а затем получает ответ от сервера и передаёт клиенту
Прокси имеют другое назначение и функции: служат для повышения безопасности и производительности путем кэширования часто используемого контента и скрытия идентификации и местоположения серверов от клиентов.

Алгоритмы балансировки

🔹 Round Robin: запросы распределяются по кругу между всеми доступными серверами, без учета их загрузки или других параметров. Это самый простой и равномерный метод, но он не подходит для ситуаций, когда сервера имеют разную мощность или специализацию.

🔹Weighted Round Robin: запросы распределяются по кругу между всеми доступными серверами, но с учетом их веса, который отражает их мощность или приоритет. Это позволяет отправлять больше запросов на более производительные сервера.

🔹Least Connections: запросы направляются на тот сервер, который наименее загружен в данный момент. Это позволяет избегать перегрузки одного сервера.

🔹Least Response Time: запросы направляются на тот сервер, который имеет наименьшее суммарное время ответа. Это позволяет учитывать не только загрузку сервера, но и скорость сети.

🔹Sticky Sessions: запросы одного и того же клиента будет передаваться на один и тот же сервер. Если закреплённый за конкретным адресом сервер недоступен, запрос будет перенаправлен на другой сервер.

📎 Ссылки
1. Статья от Selectel
2. Видео
3. Алгоритмы балансировки нагрузок
4. Введение в современную сетевую балансировку и проксирование
5. Как Контур балансирует нагрузку в микросервисах
6. Балансировка нагрузки в Kubernetes

#инфраструктура
🔥11👍1041
Шпаргалка по выбору правильной СУБД в продолжение к посту про типы нереляционных БД.

Источник

#бд
👍22🔥13
Nyumen_S_-_Ot_monolita_k_mikroservisam_-_2021.pdf
28.4 MB
От монолита к микросервисам. Эволюционные шаблоны для трансформации монолитной системы

✍️ Автор: Сэм Ньюмен
📅 Год: 2021
🔤 Язык: русский

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

Обзор книги

#архитектура #микросервисы #проектирование
6👍4🔥3
😁32👍7🤣51
Памятка по SQL

💾 Сохраняйте, чтобы не потерять


📎 Памятка/шпаргалка по SQL на русском (статья на Хабре)

📝 От CREATE до JOIN: введение в SQL + шпаргалка

📄 SQL Basics Cheat Sheet — pdf-памятка на английском

📖 SQL. Быстрое погружение — книга на русском, 2022 год

🖇 Подборка полезных материалов по основам баз данных

#бд #sql
🔥38👍19102👎2