Кэширование — временное сохранение данных, чтобы ускорить их повторное использование и уменьшить нагрузку на системы.
Подробнее читать тут
Уровни кэширования — места в цепочке передачи данных, где может происходить кэширование
Клиентский кэш
Хранение данных на устройстве пользователя (например, в браузере) для ускорения доступа к часто запрашиваемым ресурсам
Тип данных: статические (изображения, 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
Forwarded from Библиотека Системного Аналитика
Please open Telegram to view this post
VIEW IN TELEGRAM
Прокси-сервер – промежуточный сервер между клиентом (пользователем / приложением) и сервером
Отличие от балансировщика и VPN
Для чего нужен?
Анонимность и скрытие IP-адреса
Кеширование
(!) Кэш может быть не только в прокси. Важно учитывать последствия кэширования на разных уровнях
Контроль и фильтрация трафика
Балансировка нагрузки и защита серверов
схоже с балансировщиком, но цель другая - доп безопасность, а не отказоустойчивость
Пример работы
Прямой и обратный прокси
Прямой
Клиент
Обратный (реверсивный)
Клиент
Примеры интеграции
Интеграция с CDN
Интеграция с WAF (Web Application Firewall)
В микросервисной архитектуре
пример: сервис-меш с прокси для маршрутизации API-запросов между микросервисами
Пример архитектуры с прокси
[ Клиенты ] → [ Reverse Proxy ] → [ Балансировщик ] → [ Серверы приложений ] → [ БД ]1. Прокси
2. Что такое прокси-сервер и как его настроить
3. Прокси-сервер: что это такое и нужен ли он вам?
4. Что такое прокси? Для самых маленьких
5. Что такое прямой прокси и обратный прокси
6. Разница между обратным и прямым прокси
7. Разница между прямым прокси, обратным прокси и балансировщиком нагрузки
8. Типы Прокси HTTP, HTTPS, Socks
9. VPN или прокси-сервер: что лучше и в чем разница?
📚Книги
Безопасность веб-приложений. Разведка, защита, нападение. — Хоффман Эндрю
#проектирование #инфраструктура
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Системный Аналитик
Кэширование — разбор по полочкам
🔹Кэширование – способ способов оптимизации приложений, при котором результаты выполнения операций сохраняются на некоторое время
🔹Кэширование позволяет ускорить время отклика системы и повысить устойчивость к увеличению…
🔹Кэширование – способ способов оптимизации приложений, при котором результаты выполнения операций сохраняются на некоторое время
🔹Кэширование позволяет ускорить время отклика системы и повысить устойчивость к увеличению…
👍27❤9🔥8👏1
Термины
Рассмотрим обобщенно: как происходит платеж с момента поднесения карты к терминалу эквайринга до списания средств со счета
Карту подносят к терминалу. Начинается процесс авторизации платежа
Терминал может быть:
Платежная система (например, «Мир») определяет стандарты передачи данных (например, MIR Accept) и их безопасность
Карта успешно считана, терминал передает платежные данные (номер карты, срок действия, CVV, сумму транзакции) в ПЦ эквайера через защищенное соединение
ПЦ эквайера принимает платежный запрос, проверяет его корректность и передает в платежную систему (например, «Мир»)
Платежная система маршрутизирует платеж:
Банк-эмитент проверяет:
Если все ок, банк-эмитент выдает авторизацию и передает ответ (одобрение/отказ в проведении транзакции) платежной системе
Платежная система передает его в ПЦ эквайера - > эквайрер передает результат на терминал
После авторизации банк-эмитент резервирует сумму на счете покупателя
ПЦ передает подтверждение эквайеру
Эквайер передает его продавцу -> продавец получает платеж, транзакция завершается
Платежная система участвует в клиринге* и окончательных расчетах между банком-эквайером и банком-эмитентом
* клиринг — процесс взаимных расчетов между банками, выполняется платежной системой
Примеры технологий на каждом этапе
1. Поднесение карты к терминалу эквайринга
2. Передача данных с терминала эквайринга
3. Передача данных в ПЦ и платежную систему
4. Проверка данных и авторизация в банке-эмитенте
5. Завершение транзакции и списание средств
1. Платежные системы простыми словами. Как устроены и зачем нужны Mastercard, Visa, МИР и прочие
2. Интернет-эквайринг «для чайников»
3. Интернет-эквайринг в картинках
4. Как работает интернет-эквайринг
5. Платёжный сервис в банке, часть первая
6. Как мы переезжали на новый платежный сервис
7. Путешествие финансовой транзакции
8. Платёжные системы
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤47🔥35👍14💩1
Шаблонизаторы — инструменты для автоматической генерации текстовых данных на основе шаблонов и входных данных.
Используются в:
Примеры
Шаблон описывает процесс оформления заказа, но меняются условия для разных ролей:
Вместо 3-х сценариев используется шаблон с переменными
{role}, {action}, {notification}. Например, с помощью Jinja2, Mustache
Форматы сообщений генерируются из шаблонов (например, FreeMarker или Jinja2):
payment_template.xmlemail_template.jsonorders_template.csvЕсли банк меняет XML-структуру, достаточно обновить шаблон, а не переделывать всю интеграцию
Примеры шаблонизаторов
Разработка микросервисного API для обработки заказов
Проблемы:
Пример решения:
Используется для генерации текстовых выходных данных (HTML, конфигурационные файлы, исходный код)
Разработка веб-приложения
1. Динамическая генерация страниц (баланс, последние транзакции) с неизменной версткой
Контроллер Spring Boot передаёт в шаблон FreeMarker объект пользователя с балансом и историей операций.
FreeMarker подставляет данные в HTML и формирует готовую страницу
2. Персонализация контента: разные предложения для пользователей
В шаблоне используются условия
<#if> — если клиент VIP, добавляется блок с индивидуальными предложениями. Контент обновляется без изменения логики бэкенда
3. Повторное использование компонентов (хедер, меню, подвал) без копирования вручную
Общие шаблоны (layouts) с подключением через
includeЕсли нужно изменить меню — правится один файл
-- все страницы используют один
header.ftl* с логотипом и навигацией-- в
footer.ftl хранится контактная информация-- основной шаблон (
base.ftl) объединяет их в одну структуру*FreeMarker Template Language (FTL)
1. Что такое и зачем нужны шаблонизаторы HTML
2. Текстовые шаблонизаторы и их реализация
3. Три неочевидных примера использования шаблонизаторов в backend-е
4. Шаблонизаторы HTML: что это и стоит ли их использовать в разработке
5. 15 шаблонизаторов для фронтенд-разработки
6. 6 лучших шаблонизаторов на PHP
7. 5 популярных PHP-шаблонизаторов
8. ТОП-10 шаблонизаторов HTML для web-разработки
#инфраструктура
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍14❤10
Может, познакомимся?
🔹 Канал активно ведётся уже почти 2 года, появилось 17+ тысяч подписчиков, а мы до сих пор не знакомы друг с другом. Надо исправляться.
Есть идея создать на базе нашего канала группу-комьюнити системных аналитиков, чтобы:
1. Обмениваться опытом друг с другом
2. Узнавать, как там работается в других местах
3. Что там по ЗП
4. Ну и просто болтать
Естественно, модерация и все дела.
💡 Есть также идея проводить митапы пару раз в месяц на определённые темы, за которые будут голосовать люди. Но нужны энтузиасты, которые готовы выступать НА ПУБЛИКУ 😱
💬 Пишите в комментариях всё, что думаете по этому поводу.
Ну а ниже предлагаем ответить на несколько вопросов и чуть-чуть узнать друг о друге.
Есть идея создать на базе нашего канала группу-комьюнити системных аналитиков, чтобы:
1. Обмениваться опытом друг с другом
2. Узнавать, как там работается в других местах
3. Что там по ЗП
4. Ну и просто болтать
Естественно, модерация и все дела.
💬 Пишите в комментариях всё, что думаете по этому поводу.
Ну а ниже предлагаем ответить на несколько вопросов и чуть-чуть узнать друг о друге.
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥51👍22❤11
Ваш грейд (только для СА/БА)
Anonymous Poll
6%
Стажёр
17%
Junior
28%
Middle
18%
Middle+
14%
Senior
7%
Lead
11%
Я не СА и не БА