Swagger — набор инструментов для создания, документирования и тестирования RESTful API. Основой Swagger является формат OpenAPI, который позволяет описывать API на уровне спецификаций
Зачем нужен?
Возможности
Из чего состоит?
С чего начать работу со Swagger?
Подходы к созданию API
Спецификации API генерируются на основе кода
Используется:
Спецификации создаются до написания кода
Используется:
Примеры расширений и плагинов
Отличие от Postman
Swagger ориентирован на проектирование и документирование API
Postman — на тестирование и отладку
Swagger позволяет создавать спецификации и генерировать код
Postman фокусируется на тестировании, хранении запросов и автоматизации тестов
#api #инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥44👍18❤14⚡1
В колоночной БД данные хранятся и обрабатываются по столбцам, а не по строкам.
Все значения одного столбца хранятся вместе, отдельно от значений других столбцов.
В строковой БД данные хранятся построчно:
В колоночной — по столбцам:
Чтение: если нужно найти все цены, БД сразу читает столбец "Цена", не проходя по каждой строке.
Особенности
Когда лучше выбрать?
Некоторые БД (Apache Cassandra и HBase) спроектированы для работы в распределенной среде. Они легко масштабируются горизонтально, добавляя новые узлы в кластер
Это позволяет обрабатывать большие объемы и распределять нагрузку между серверами
Когда неэффективны
Примеры использования
Отличия колоночных SQL от NoSQL
SQL:
NoSQL:
Примеры БД
Когда лучше выбирать строковые БД
Сравнение Cassandra vs PostgreSQL на картинке поста
#бд
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👍21❤8🤔1
Производительность API: краткий обзор способов
1⃣ Кэширование
Временное хранение часто используемых ответов
💛 снижение время отклика, уменьшение нагрузки на сервер за счет повторного использования данных
💛 риск устаревания данных, сложность управления сроками жизни кеша
➡️ Применяется при частых запросах к неизменяемым или редко изменяемым данным
2⃣ Batch-запросы
Объединение нескольких запросов в один для сокращения количества обращений к серверу
💛 снижение количества сетевых вызовов;
💛 повышение производительности за счет групповой обработки запросов
💛 увеличение сложности обработки на сервере, что может вызвать задержки;
💛 может усложнится обработка ошибок, т.к. все запросы обрабатываются вместе
➡️ Когда клиенту нужно выполнить несколько связанных запросов одновременно.
3⃣ Chunked-запросы
Разделение большого запроса или ответа на более мелкие части (чанки), которые отправляются последовательно
💛 улучшение обработки больших объемов данных за счет поэтапной передачи
💛 снижение вероятности тайм-аутов при передаче больших файлов
💛 сложнее реализация и координация частей запроса, возможны задержки между частями
➡️ При работе с большими объемами данных, например, загрузка файлов
4⃣ Rate Limiting
Ограничение количества запросов за определенный промежуток времени
💛 защита сервера от перегрузок за счет контроля нагрузки
💛 исключение злоупотребления API
💛 может вызвать неудобства у пользователей при жестких ограничениях
требует мониторинга и настройки
➡️ Для защиты от DDoS-атак и управления ресурсами сервера
5⃣ Retry
Повторение неудавшихся запросов
💛 повышает надежность взаимодействия, снижает влияние временных ошибок
💛 увеличение нагрузки на сервер, риск дублирования операций
➡️ При временных сбоях в сети или сервере, для критичных операций, требующих гарантированной доставки
6⃣ Timeout
Установка максимального времени ожидания ответа
💛 предотвращение долгих ожиданий
💛 освобождение ресурсов
💛 обнаружение проблем с задержками
💛 возможны сбои при медленной работе сервера, требует точной настройки
💛 неправильно настроенные тайм-ауты могут привести к преждевременным отказам
➡️ Для предотвращения зависания запросов и оптимизации ресурсов
7⃣ Pagination
Разделение результатов на страницы
💛 снижение нагрузки на сервер за счет обработки небольших частей данных
💛 улучшение скорости обработки
💛 увеличение сложности навигации по данным
💛 усложнение реализации API
➡️ Для работы с большими объемами данных (списки, поисковые результаты)
8⃣ Compression
Сжатие данных перед передачей
💛 снижение объема данных, повышение скорости передачи
💛 требует дополнительноых и ресурсов на сжатие и разжатие данных
➡️ Для уменьшения трафика
Верхнеуровневые (архитектурные) способы
😈 Load Balancing
Распределение нагрузки между серверами
➕ улучшение масштабируемости и устойчивости за счет равномерного распределения запросов
➕ повышение доступности системы
➖ увеличение сложности настройки и управления
➖ требуется мониторинг и управление балансировщиками нагрузки
➡️ Для высоконагруженных систем
😈 CDN (Content Delivery Network)
Использование сети серверов для кэширования и доставки контента
➕ снижение времени отклика за счет храненич контента на серверах, расположенных ближе к пользователям
➕ снижение нагрузки на основной сервер за счет распределения на несколько серверов
➖ стоимость использования и сложность настройки
➖ зависимость от стороннего провайдера
➡️ Для ускорения доставки статического контента (изображения, видео и файлы)
😈 Асинхронное взаимодействие
Выполнение операций без ожидания завершения, позволяя другим процессам продолжать работу
➕ производительность за счет параллельной обработки задач
масштабируемость, т.к ресурсы не блокируются ожиданием завершения операций
➖ сложность разработки и отладки из-за необходимости обработки асинхронных событий
➖ сложность сложность управления состоянием и синхронизации данных
➡️ Для долгих операций (сетевые запросы, обработка больших объемов), без блокировки основного потока выполнения
⭐️ Подборки материалов по этой и другим темам доступны в базе знаний по системному анализу
#api
Временное хранение часто используемых ответов
Объединение нескольких запросов в один для сокращения количества обращений к серверу
Разделение большого запроса или ответа на более мелкие части (чанки), которые отправляются последовательно
Ограничение количества запросов за определенный промежуток времени
требует мониторинга и настройки
Повторение неудавшихся запросов
Установка максимального времени ожидания ответа
Разделение результатов на страницы
Сжатие данных перед передачей
Верхнеуровневые (архитектурные) способы
Распределение нагрузки между серверами
Использование сети серверов для кэширования и доставки контента
Выполнение операций без ожидания завершения, позволяя другим процессам продолжать работу
масштабируемость, т.к ресурсы не блокируются ожиданием завершения операций
#api
Please open Telegram to view this post
VIEW IN TELEGRAM
👍59🔥17❤12
Это способы доставки данных из источников в централизованную систему (хранилище)
Ключевое отличие: ГДЕ и КОГДА выполняются преобразование и загрузка данных:
Как работает по шагам:
Когда эффективны
Примеры применения
Минусы
— процесс может быть медленным из-за преобразования данных до загрузки
— нужно использовать выделенные ресурсы для трансформации данных
Как работает по шагам:
Когда эффективны
Для быстрой загрузки и обработки больших объемов данных, т.к. извлекает и загружает в целевую систему (например, облачное ХД) сырые данные.
А трансформация происходит после загрузки
Когда использовать
Примеры применения
Минусы
— целевая система должна быть достаточно мощной для выполнения трансформаций
— могут появится неконсистентные данные в целевой системе до выполнения всех трансформаций
#архитектура #проектирование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41❤10🔥6
🎙 Бесплатные выпуски подкаста «Аналитики у микрофона» для и про аналитиков
Ссылки на выпуски собрали в один пост:
1 сезон
👉 Удаленка
Делимся своим опытом, с чем столкнулись, какие трудности нас ждали в таком формате работы и как мы с ними справляемся или не справляемся.
👉 Дарья Перминова. Legal Tech, вопрос «зачем?» и динозаврики
Обсудили с гостем ее работу в продуктовой компании и историю ее карьерного пути. Даша также поделилась с нами своими методами найма аналитиков и размышлениями о смене работы. В выпуске поговорили о продуктовой разработке, о том, какие бывают аналитики в этой сфере, как важно уметь учиться, о материнстве и о многом другом!
👉 Алёна Ельцова. Из бухгалтера в аналитики 1С или В переговорку с самоваром
Алёна рассказала о своем карьерном пути, о том, как она пришла к ведению профессионального блога и к созданию авторского курса "Супер-ЗУПер", и о своих планах на будущее.
Поговорили о том, что ждёт бухгалтеров и кадровиков при переходе в новую профессию Аналитик 1С и нужно ли им это.
👉 Татьяна Паваляева. Коммуникации на удаленке: свет, камера, микрофон или как налаживать отношения
В выпуске поговорили про команду, про камеры, про то как НЕ читать между строк. Подняли тему семьи, детей и переработок. Обсудили даже здоровье.
Бонусные выпуски 1 сезон, интервью с теми, кто стоит рука об руку с аналитиками
👉 Евгений Жильцов про тестировщиков
Тестировщик- кто это? Чем занимается? Как может помочь аналитику?
👉 Марина Трушникова про руководителей проектов
Обсудили, чем занимается РП, как обучиться и попасть в эту сферу, где граница работы РП и аналитика, а также затронули тему коммуникаций и пофантазировали о том, что ждет эту роль с развитием технологий.
👉 Евгений Руднев про бизнес-аналитиков
Кто такой бизнес-аналитик и для чего он нужен бизнесу?
Что общего у бизнес-аналитика и следователя?
Какими качествами должен обладать бизнес-аналитик?
Почему коммуникации намного важнее знания нотаций?
Где учиться на бизнес-аналитика и как развиваться в профессиональном плане?
2 сезон
👉 Подкаст в подкасте
Зачем мы делаем подкасты? Зачем мы слушаем подкасты? Зачем мы участвуем в других подкастах? Вопрос «зачем?» прозвучал в выпуске очень много раз, как мы любим, постарались поделиться нашим мнением.
👉 Татьяна Макарова. В поисках идеальной работы
Обсудили важные моменты, на которые стоит обратить внимание на собеседовании, чтобы избежать неприятных ситуаций и не жалеть потом о своем выборе.
#подкасты
Ссылки на выпуски собрали в один пост:
1 сезон
👉 Удаленка
Делимся своим опытом, с чем столкнулись, какие трудности нас ждали в таком формате работы и как мы с ними справляемся или не справляемся.
👉 Дарья Перминова. Legal Tech, вопрос «зачем?» и динозаврики
Обсудили с гостем ее работу в продуктовой компании и историю ее карьерного пути. Даша также поделилась с нами своими методами найма аналитиков и размышлениями о смене работы. В выпуске поговорили о продуктовой разработке, о том, какие бывают аналитики в этой сфере, как важно уметь учиться, о материнстве и о многом другом!
👉 Алёна Ельцова. Из бухгалтера в аналитики 1С или В переговорку с самоваром
Алёна рассказала о своем карьерном пути, о том, как она пришла к ведению профессионального блога и к созданию авторского курса "Супер-ЗУПер", и о своих планах на будущее.
Поговорили о том, что ждёт бухгалтеров и кадровиков при переходе в новую профессию Аналитик 1С и нужно ли им это.
👉 Татьяна Паваляева. Коммуникации на удаленке: свет, камера, микрофон или как налаживать отношения
В выпуске поговорили про команду, про камеры, про то как НЕ читать между строк. Подняли тему семьи, детей и переработок. Обсудили даже здоровье.
Бонусные выпуски 1 сезон, интервью с теми, кто стоит рука об руку с аналитиками
👉 Евгений Жильцов про тестировщиков
Тестировщик- кто это? Чем занимается? Как может помочь аналитику?
👉 Марина Трушникова про руководителей проектов
Обсудили, чем занимается РП, как обучиться и попасть в эту сферу, где граница работы РП и аналитика, а также затронули тему коммуникаций и пофантазировали о том, что ждет эту роль с развитием технологий.
👉 Евгений Руднев про бизнес-аналитиков
Кто такой бизнес-аналитик и для чего он нужен бизнесу?
Что общего у бизнес-аналитика и следователя?
Какими качествами должен обладать бизнес-аналитик?
Почему коммуникации намного важнее знания нотаций?
Где учиться на бизнес-аналитика и как развиваться в профессиональном плане?
2 сезон
👉 Подкаст в подкасте
Зачем мы делаем подкасты? Зачем мы слушаем подкасты? Зачем мы участвуем в других подкастах? Вопрос «зачем?» прозвучал в выпуске очень много раз, как мы любим, постарались поделиться нашим мнением.
👉 Татьяна Макарова. В поисках идеальной работы
Обсудили важные моменты, на которые стоит обратить внимание на собеседовании, чтобы избежать неприятных ситуаций и не жалеть потом о своем выборе.
#подкасты
👍14🔥9❤4
SQA (Software Quality Assurance) — процесс для обеспечения соответствия ПО установленным стандартам и требованиям.
Это система подходов, которая интегрирована в процесс разработки, чтобы гарантировать качество на всех этапах.
Почему важно SQA?
Основные аспекты SQA
Примеры применения
Примеры атрибутов качества
Внешние
Внутренние
операционной среде)
Инструменты и методы
Отличие от нефункциональных требований
#требования
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12⚡8👍4🔥4
Изолированность транзакций в БД гарантирует, что параллельные транзакции не влияют друг на друга. Предотвращает видимость промежуточных результатов транзакции для других до её завершения, сохраняя целостность данных
Это одно из свойств ACID
Как обеспечить изолированность
MVCC
Принцип работы
Во время транзакции создается копия данных, в которой происходят изменения
Пример
Два пользователя одновременно меняют карточку товара
Блокировки
Примеры видов блокировок
Приложение-координатор дает доступ к БД или отклоняет запрос, если БД занята.
Алгоритмы выбора координатора
Каждый процесс отправляет запросы на доступ к ресурсу всем другим (и себе)
Действия получателя:
сравнивает время запроса со времени своего запроса
— ОК: если у входящего сообщения время меньше
— В очередь: если время больше
После отправки запросов приложение останавливается, ждет подтверждения от остальных.
Далее отправляет OK всем в своей очереди и чистит ее
доступ к ресурсу
Минимизация блокировок за счет работы с копиями данных.
— если не обнаружено, изменения транзакции применяются к основной БД
— если обнаружено (например, другой транзакцией изменены те же данные), текущая транзакция откатывается и, возможно, повторяется
Пример блокировки в БД
Две транзакции (T1 и T2) работают с таблицей accounts (информация о балансах пользователей)
Что выбрать для обеспечения изолированности?
#бд
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤9👍9⚡4
Grafana — инструмент для визуализации и анализа данных.
Позволяет создавать интерактивные графики, диаграммы и дашборды на основе различных источников данных.
Возможности
Подключение к различным источникам данных
Создание интерактивных дашбордов
Алертинг
Управление пользователями и ролями
Плагины и расширения
Основные термины
Может быть написан на языках запросов, поддерживаемых источником данных (SQL для БД)
Примеры применения
Недостатки
Экосистема Grafana
#инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤9🔥8
NTP (Network Time Protocol) — протокол для синхронизации времени между компьютерами в сети.
Позволяет устанавливать точное время на устройствах, синхронизируя их часы с часами специальных серверов времени (NTP-серверами)
Как работает по шагам
отправления (T1)
временем отправления (T3) и временем получения (T2)
задержку и смещение во времени своих часов для их корректировки.
Для чего нужен
Согласованность временных меток
* Распределённая система —группа независимых компьютеров, которые работают вместе и обмениваются данными по сети для выполнения общих задач.
Обеспечение безопасности
Координация действий между системами
Работа распределённых БД
Для правильного воспроизведения мультимедиа
За счет чего достигается высокая точность
UTC (всемирное координированное время) обеспечивает единый стандарт времени для всего мира.
Время с атомных часов и серверов UTC распространяется через сеть
Где применяется
Кейсы использования
У пользователя украли данные карты и хотят снять деньги
Компилятор при пересборке проверяет время изменения файла
Классы точности NTP-серверов
Цифра - уровень по отношению к UTC
Это устройства не подключены напрямую к сети, служат основным источником
времени для серверов Stratum 1
Самые точные серверы, могут учитывать время с точностью в одну триллионную долю секунды.
Они используют сложное и дорогое оборудование и обычно
не отвечают на запросы конечных пользователей, обслуживают только серверы более
низкого уровня.
#инфраструктура
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥9❤4
Уровни изоляции в БД управляют тем, как изменения одной транзакции видны другим транзакциям
Изоляция является одним из ключевых компонентов ACID
Напомним, транзакция в БД — последовательность операций, выполняемых как единое целое.
Должны быть либо полностью выполнены, либо полностью отменены.
Это обеспечивает целостность данных.
Где применяются уровни изоляции
Основные механизмы
В основном реализуется через механизмы СУБД:
Иные:
Аномалии при параллельной обработке транзакций
Уровни изоляции
Самый низкий уровень изоляции: транзакции могут читать изменения, которые не были зафиксированы другими транзакциями.
Механизм: отсутствие блокировок на чтение и запись
Транзакции могут читать только те изменения, которые были зафиксированы
Механизм: блокировка строк на запись до завершения транзакции
Транзакция A читает данные, они блокируются для изменения другими транзакциями.
Транзакция B не может изменять эти данные, пока транзакция A не завершится, но может добавлять новые строки.
Транзакция A повторно читает те же данные, но не видит новых строк.
Механизм: блокировка всех прочитанных строк до завершения транзакции
Обеспечивает полную изоляцию транзакций, делая их последовательными, как если бы они выполнялись по очереди.
Механизм: блокировка на чтение и запись
Как выбрать уровень изоляции
Чем выше уровень изоляции, тем:
#бд
Please open Telegram to view this post
VIEW IN TELEGRAM
👍38🔥11❤8💩1
Системный Аналитик
Основы Kafka – что нужно знать аналитику Неделей ранее мы рассматривали основные понятия очередей сообщений. Пришло время копнуть чуть глубже и познакомиться с Кафкой. Apache Kafka – популярный брокер сообщений с открытым исходным кодом. Применяется в …
Apache Kafka
Apache Kafka – распределённая система для обработки данных в режиме реального времени.
Работает как почта — одни сервисы передают туда сообщения, а другие — получают.
Называют брокером сообщений, так как выступает в качестве посредника
Компоненты
🟣 Продюсеры — приложения, которые публикуют данные
🟣 Консьюмеры — приложения, которые читают
⚪️ Топики – каналы, куда продюсеры публикуют сообщения. Могут иметь множество подписчиков (консьюмеров)
⚪️ Партиции – части топиков для параллельной обработки данных.
Сообщения в партиции хранятся в строгом порядке
🟣 Брокеры — серверы, которые принимают, хранят и передают сообщения.
В кластере их может быть несколько для отказоустойчивости и масштабируемости
🟣 Зукипер — сервис для координации. Управляет конфигурацией кластера, отслеживает состояние брокеров, топиков и партиций
Принцип работы
*️⃣ Публикация: продюсер отправляет данные в топик, выбирает партицию для записи (с помощью ключа сообщения, по алгоритму round-robin)
*️⃣ Хранение: сообщение записывается в выбранную партицию на одном из брокеров.
Происходит репликация (об этом далее)
*️⃣ Чтение: консьюмер запрашивает данные из топика, Kafka направляет консьюмера к соответствующей партиции.
Читает, начиная с последнего прочитанного сообщения (офсета).
*️⃣ Обновление офсетов: консьюмер периодически обновляет свой текущий офсет (в Zookeeper / в самом Kafka, зависит от настройки)
Это позволяет возобновить чтение с правильного места в случае сбоя.
Репликация данных
✨ Реплика в Kafka – копия партиции топика, хранится на другом брокере для обеспечения надежности и отказоустойчивости.
✨ Лидер — основная копия партиции, которая обрабатывает все операции записи и чтения.
Фолловеры — дополнительные копии, которые синхронизируются с лидером.
Как работает?
➖ Сообщения записываются в лидера и затем копируются на фолловеров
➖ Фолловеры следят за лидером и обновляются в реальном времени
➖ Если лидер выходит из строя, один из фолловеров становится новым лидером для непрерывности работы
✨ Replication factor — количество реплик для каждой партиции. Например, фактор репликации 3 означает 1 основную копию и 2 резервные.
Типы доставки сообщений
🟠 At most once: сообщение может быть доставлено максимум один раз, возможны потери
🟠 At least once — как минимум один раз, возможны дублирования
🟠 Exactly once — ровно один раз, без потерь и дублирования
Надежность доставки
Продюсеры могут настроить количество подтверждений (acks) от брокеров
😀 acks=0: Без подтверждений, низкая надежность.
😀 acks=1: Подтверждение от лидера, средняя надежность.
😀 acks=all: Подтверждение от всех реплик, высокая надежность.
Способы Интеграции с Kafka
*️⃣ Прямое подключение: через стандартные клиенты (Java, Python, Go и др.)
*️⃣ Коннекторы Kafka Connect: для интеграции с БД, хранилищами и др.
*️⃣ Потоковые платформы: Apache Flink, Apache Spark и др
Примеры
Синхронная работа
⏺ Синхронная передача: приложения отправляют данные и ожидают подтверждения от Kafka
☺️ параметр acks=all у продюсера, чтобы дождаться подтверждения от всех реплик перед продолжением
⏺ Запрос-ответ: консьюмер отправляет запрос и ожидает ответа в другом топике.
☺️ уникальные ключи для корреляции запросов и ответов
Асинхронная
⏺ Логирование и мониторинг: отправка логов без ожидания подтверждения
☺️ параметр acks=1 или acks=0 для продюсеров, чтобы минимизировать задержку
⏺ Обработка событий
☺️ группа консьюмеров параллельно обрабатывает события
⏺ ETL-процессы: загрузка в хранилища через Kafka
☺️ Kafka Connect для интеграции с источниками и приемниками
Kafka как хранилище данных
😀 Можно настраивать время хранения сообщений от минут до нескольких лет
😀 Сообщения хранятся в сегментах и индексируются ✨ эффективное управление большими объемами данных
😀 Высокая скорость записи и чтения данных
Ограничения
😀 Нет сложных запросов и транзакционной поддержки
😀 Старые данные автоматически удаляются по истечению срока
😀 Иногда нужна интеграция с др системами (HDFS, S3, реляционные БД)
📎 Подборка материалов в этом посте
#интеграции
Apache Kafka – распределённая система для обработки данных в режиме реального времени.
Работает как почта — одни сервисы передают туда сообщения, а другие — получают.
Называют брокером сообщений, так как выступает в качестве посредника
Компоненты
Сообщения в партиции хранятся в строгом порядке
В кластере их может быть несколько для отказоустойчивости и масштабируемости
Принцип работы
Происходит репликация (об этом далее)
Читает, начиная с последнего прочитанного сообщения (офсета).
Это позволяет возобновить чтение с правильного места в случае сбоя.
Репликация данных
Фолловеры — дополнительные копии, которые синхронизируются с лидером.
Как работает?
Типы доставки сообщений
Надежность доставки
Продюсеры могут настроить количество подтверждений (acks) от брокеров
Способы Интеграции с Kafka
Примеры
Синхронная работа
Асинхронная
Kafka как хранилище данных
Ограничения
📎 Подборка материалов в этом посте
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
👍68❤26🔥9⚡2👎1
Системный Аналитик
Типы интеграции систем. Преимущества и недостатки Выделяют 4 основных типа интеграции: 1. Файловая интеграция 2. Общая база данных 3. Удалённый вызов процедур 4. Обмен сообщениями 1️⃣ Файловая интеграция. Cистема А передает файл системе Б в определенном…
Интеграция через файловый обмен — один из 4-х главных методов интеграции систем. Системы обмениваются между собой обычными файликами в стандартных форматах, например, CSV, XML или JSON.
Особенности
Где используется?
Способы
Принцип работы FTP, FTPS, SFTP
FTP
FTPS
SFTP
Пример использования
В ETL процессе:
Обмен данными между отделом логистики и складом
Как обеспечить безопасность
Сервисы и приложения
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👍15❤12🤡1
Виды
Внедрение вредоносного скрипта на веб-страницу, для браузера пользователя
Атака через ввод данных в формы на сайте или URL-адреса.
Скрипт выполняется в контексте сайта.
Может красть данные, перенаправлять пользователя или выполнять другие вредоносные действия
Обман пользователя, чтобы он кликнул на что-то отличное от того, что он видит
Веб-страница размещает невидимый фрейм над кнопками или ссылками, чтобы пользователи выполняли нежелательные действия
Внедрение вредоносного SQL-кода в запросы к БД
Атака через формы ввода данных, URL-адреса или параметры HTTP-запросов.
Вредоносный SQL-код может извлекать, изменять или удалять данные в БД
Для получения конфиденциальной информации
Атака через поддельные веб-сайты, электронные письма или сообщения
Перегрузка серверов, сайтов или сетей с целью сделать их недоступными.
Атака происходит через множество скоординированных запросов с различных устройств, часто зараженных вредоносным ПО.
Перехват коммуникаций между двумя сторонами с целью кражи или изменения данных.
Подбор паролей методом перебора возможных комбинаций
Способы защиты от кибератак
Для чего знать аналитику?
#безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥16❤7
Веб-приложение работает в веб-браузере. В отличие от сайта — интерактивное и может выполнять задачи как десктопные приложения
SPA (Single Page Application)
SPA — одностраничное веб-приложение, где основное взаимодействие с пользователем происходит на одной странице.
Контент обновляется динамически, без полной перезагрузки страницы
1. загрузка начальной HTML-страницы
2. загрузка CSS и JavaScript файлов
3. инициализация фреймворка/библиотеки
4. запросы к API для получения данных
5. динамическое обновление DOM с использованием данных из API
6. обновление URL и состояния приложения без перезагрузки страницы
MPA (Multi Page Application)
MPA — многосерийное веб-приложение, где каждая страница загружается отдельно с сервера
1. пользователь переходит по URL
2. сервер обрабатывает запрос и возвращает HTML-страницу
3. браузер загружает ее отображает
4. при переходе на другую страницу процесс повторяется
5. доп. данные могут загружаться через AJAX-запросы
PWA (Progressive Web Application)
PWA — сочетает возможности веб-приложений и нативных мобильных приложений.
Работает офлайн, отправляет push-уведомления и может устанавливаться на устройствах.
1. пользователь открывает PWA в браузере
2. устанавливаются Service Workers
3. контент кэшируется для офлайн-доступа
4. пользователь может установить PWA на устройство
установки на устройства
#развитие #веб
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥10❤9
1. Web-приложение: понятие, компоненты и принципы работы
2. Веб-программа: описание и особенности
3. Следующий этап развития Веба
4. Веб-приложение и веб-сайт: в чем разница?
5. Влияние service worker'ов на web-приложения
6. Архитектура веб приложения: компоненты, слои и типы
7. JAMstack — зачем, почему и за что
8. Flutter for Web: гайд для начинающих
9. Что нужно для создания веб-приложений
10. Сравнительный анализ сайта, веб-приложения, SPA и PWA
11. Мобильное приложение или веб?
12. Пишем правильный манифест для сайта
13. Как создать Web App Manifest PWA
14. Service Workers. Инструкция по применению
SPA и MPA
15. Single Page Application: как работает сайт-приложение
16. Что такое SPA, и нужно ли оно вашему проекту?
17. Single Page Application
18. Технология SPA: почему вместо обычных сайтов нужно делать веб-приложения
19. Одностраничные (spa) и многостраничные веб-приложения
20. SPA и (MPA): преимущества и недостатки
21. О SPA и MPA
PWA
22. PWA — это просто
23. Всё, что нужно знать о Progressive Web App (PWA)
24. Зачем нужны PWA-приложения: примеры успешного использования
25. PWA vs Native: чек-лист, который поможет выбрать
26. Как запустить мобильное приложение за две недели с помощью PWA
27. PWA: не Chrome'ом единым?
28. PWA не для всех
29. Как сделать Progressive Web Apps: руководство новичка
Секреты Progressive Web Apps: часть 1 | часть 2
30. Одно PWA, чтоб править всеми
31. Как тестировать PWA?
32. Когда проснулся и узнал, что существуют PWA
🎓 AnalystDays: Применение веб-аналитики для улучшения UX
🎓 Code Fest: PWA vs. нативные приложения: когда и как выбрать?
1. Как работает веб? MPA, SPA
2. Знакомство с MPA/SPA, SSR/CSR - отличия, недостатки, примеры реализации
3. Роутинг на React. SPA и MPA на примерах
4. Веб-приложение и веб-сайт: разница за 8 минут
5. Чем веб-приложения отличаются от веб-сайтов
6. Как работают SPA (Single Page Application) страницы сайтов в браузерах
7. Всё, что нужно знать о сайтах-одностраничниках (SPA)
8. Веб-приложение (PWA) I Достойная замена мобильному приложению
9. PWA: что такое прогрессивное веб-приложение?
10. PWA – технология будущего? Создание PWA проекта на практике
11. Как работают веб приложения. Что происходит, когда вы вводите адрес в браузере
12. Архитектура современных WEB приложений. Эволюция от А до Я
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25❤6👏5👍4
Forwarded from Библиотека Системного Аналитика
Архитектура_программного_обеспечения_на_практике.pdf
9.7 MB
Архитектура программного обеспечения на практике
✍️ Авторы: Л. Басс, П. Клементс, Р. Кацман
🗓 Год издания: 2006 (2-е издание)
🔤 Язык: русский
📚 Объём: 575 стр.
О чём книга:
Это классическое руководство по архитектуре программного обеспечения, которое за три издания стало обязательным для всех, кто занимается проектированием сложных систем. В новой версии учтены современные тенденции, такие как безопасность, тестируемость и расширяемость ПО. Книга помогает изучить ключевые архитектурные аспекты, от основ до применения в бизнес-приложениях, с учётом реального контекста проектирования крупных систем.
Что внутри:
💩 Основы архитектуры ПО и ключевые атрибуты качества (готовность, производительность, модифицируемость).
💩 Безопасность: подходы к защите данных и инфраструктуры.
💩 Тестирование и расширяемость архитектурных решений.
💩 Приёмы документирования архитектуры, полезные всем участникам проекта.
💩 Методика ATAM (анализ компромиссных архитектурных решений) для выбора оптимальных решений.
💩 Реальные примеры успешных архитектур, включая организационные и технические аспекты.
Почему стоит читать системным аналитикам:
✔️ Помогает глубже понять архитектуру ПО и её влияние на бизнес-требования.
✔️ Даёт инструменты для оценки и документирования архитектурных решений, что делает работу с разработчиками эффективнее.
✔️ Учит учитывать не только технические, но и коммерческие аспекты проектирования систем.
Отзыв на книгу от системного аналитика
#архитектура
✍️ Авторы: Л. Басс, П. Клементс, Р. Кацман
🗓 Год издания: 2006 (2-е издание)
🔤 Язык: русский
📚 Объём: 575 стр.
О чём книга:
Это классическое руководство по архитектуре программного обеспечения, которое за три издания стало обязательным для всех, кто занимается проектированием сложных систем. В новой версии учтены современные тенденции, такие как безопасность, тестируемость и расширяемость ПО. Книга помогает изучить ключевые архитектурные аспекты, от основ до применения в бизнес-приложениях, с учётом реального контекста проектирования крупных систем.
Что внутри:
Почему стоит читать системным аналитикам:
Отзыв на книгу от системного аналитика
#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34👍12❤6😱1
Паттерны асинхрона: Request-Reply, Publish-Subscribe, Point-to-Point
Архитектурные паттерны Request-Reply, Publish-Subscribe, Point-to-Point используются для взаимодействия между компонентами системы.
Например, в распределенных системах и микросервисных архитектурах
🔘 Request-Reply
Request-Reply — паттерн, в котором клиент отправляет запрос и получает ответ от сервера через очереди сообщений.
Как работает
🔘 клиент отправляет запрос в очередь сообщений
🔘 сервер извлекает запрос из очереди и обрабатывает его
🔘 cервер отправляет промежуточный ответ клиенту (опционально)
🔘 сервер помещает ответ в очередь ответов
🔘 клиент извлекает ответ
Зачем нужно
Для реализации асинхронного взаимодействия, когда требуется ответ на запрос.
➖ подходит для микросервисов и систем, где требуется подтверждение выполнения задач
➖ архитектурно можно реализовать через REST API
Плюсы и минусы
➕ уменьшает нагрузку на клиентские и серверные ресурсы за счет асинхронной обработки
➕ обеспечивает четкую последовательность действий благодаря использованию очередей
♥️ задержка при больших объемах данных
♥️ сложность реализации для управления состоянием запросов и ответов
👍 Пример: асинхронные веб-сервисы, обработка задач в распределенных системах., запросы к БД
💙 Publish-Subscribe
Publish-Subscribe -- паттерн, в котором публикатор отправляет сообщения множеству подписчиков через брокера сообщений (например, Kafka, RabbitMQ)
Как работает
💙 публикатор отправляет сообщение в канал (топик)
💙 подписчики этого канала получают сообщение
Зачем нужно
Для рассылки сообщений множеству получателей одновременно.
К примеру, уведомлений или обновлений
API паттерны: подписка на события через WebSockets или другие механизмы push-уведомлений
Плюсы и минусы
💙 высокая масштабируемость (можно добавлять новых подписчиков без изменения кода отправителя)
💙 нет прямой зависимости между отправителем и получателями
💙 можно рассылать одно сообщение многим подписчикам.
♥️ нужно управлять подписками и качеством обслуживания
♥️ непредсказуемая задержка доставки из-за обработки сообщений подписчиками
💙 Примеры: системы уведомлений, новостные рассылки, обновления в реальном времени, интернет вещей (IoT)
🟣 Point-to-Point
Point-to-Point -- паттерн, в котором один отправитель передает сообщение одному получателю через очередь сообщений.
Работает также как Publish-Subscribe, только тут 1 получатель
Зачем нужно
Для гарантированной доставки сообщений одному получателю. Обеспечивает строгую очередность и порядок обработки.
⏩ может быть реализовано с помощью систем управления очередями (например, JMS, RabbitMQ)
⏩ API паттерны: с помощью REST API, работающих с брокерами сообщений
Плюсы и минусы
➕ гарантированная доставка сообщений (надежное хранение сообщений в очереди)
➕ последовательный порядок обработки сообщений в очереди
➕ независимая работа отправителя и получателя
♥️ ограничение на одного получателя
♥️ потенциальная задержка из-за обработки очереди
➡️ Пример: очереди задач, системы обработки заказов, логирование, финансовые транзакции
#проектирование #архитектура
Архитектурные паттерны Request-Reply, Publish-Subscribe, Point-to-Point используются для взаимодействия между компонентами системы.
Например, в распределенных системах и микросервисных архитектурах
Request-Reply — паттерн, в котором клиент отправляет запрос и получает ответ от сервера через очереди сообщений.
Как работает
Зачем нужно
Для реализации асинхронного взаимодействия, когда требуется ответ на запрос.
Плюсы и минусы
Publish-Subscribe -- паттерн, в котором публикатор отправляет сообщения множеству подписчиков через брокера сообщений (например, Kafka, RabbitMQ)
Как работает
Зачем нужно
Для рассылки сообщений множеству получателей одновременно.
К примеру, уведомлений или обновлений
API паттерны: подписка на события через WebSockets или другие механизмы push-уведомлений
Плюсы и минусы
Point-to-Point -- паттерн, в котором один отправитель передает сообщение одному получателю через очередь сообщений.
Работает также как Publish-Subscribe, только тут 1 получатель
Зачем нужно
Для гарантированной доставки сообщений одному получателю. Обеспечивает строгую очередность и порядок обработки.
Плюсы и минусы
#проектирование #архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25❤12👍11
Camunda
Camunda — платформа для моделирования и автоматизации бизнес-процессов
Основана на открытых стандартах, предоставляет инструменты для создания, исполнения, мониторинга бизнес-процессов
Для чего нужна
🤤 для моделирования и автоматизации бизнес-процессов. Сначала создаются модели процессов в BPMN 2.0, а затем Camunda исполняет эти модели, управляет порядком выполнения задач и взаимодействует с другими системами
🤤 для поддержки гибких процессов, которые изменяются в зависимости от ситуации, с помощью CMMN
🤤 для создания и выполнения моделей принятия решений с использованием DMN
🤤 для отслеживания процессов в реальном времени, анализа производительности
*DMN (Decision Model and Notation): используется для описания бизнес-правил и логики принятия решений
*CMMN (Case Management Model and Notation): для моделирования и управления неструктурированными, гибкими процессами, которые зависят от событий и контекста
Компоненты
🍃 Camunda BPM Engine: ядро платформы, исполняет процессы, смоделированные в BPMN, CMMN, и DMN
🍃 Camunda Modeler: десктопное приложение для создания / редактирования моделей
🍃 Tasklist: веб-интерфейс для управления и выполнения пользовательских задач, назначенных в рамках процесса
🍃 Cockpit: веб-интерфейс для мониторинга и управления запущенными процессами, анализа их выполнения, и устранения проблем
🍃 Admin: веб-интерфейс для администрирования платформы, управления пользователями, авторизациями и развертыванием процессов
Примеры применения
Сценарий: Оркестрация процесса обработки заказа
🍃 клиент отправляет заказ через веб-приложение
он поступает в Camunda, которая запускает процесс обработки
🍃 Camunda вызывает микросервис для валидации данных заказа (например, проверка наличия товаров на складе)
🍃 расчет стоимости: Camunda вызывает другой микросервис для расчета итоговой стоимости
🍃 платеж и подтверждение: Camunda направляет запрос на внешний платежный сервис для списания средств.
🍃 оповещение склада: Camunda отправляет уведомление на склад для сборки заказа.
🍃 Camunda отправляет уведомление клиенту о статусе заказа
Способы интеграции с платформой
😮💨 REST API: передача данные о клиентах из CRM-системы в процесс Camunda для авоматического выполнения задач
😮💨 Java API: интеграция Camunda в Java-приложение для управления внутренними процессами компании
😮💨 Message Queues: обработка событий онлайн и передача их в процессы Camunda
😮💨 Connector Framework: для быстрой интеграции с облачными сервисами
Материалы👇
➿ ➿ ➿ ➿ ➿ ➿ ➿ ➿
🧑🎓 Больше полезного в базе знаний по системному анализу
Camunda — платформа для моделирования и автоматизации бизнес-процессов
Основана на открытых стандартах, предоставляет инструменты для создания, исполнения, мониторинга бизнес-процессов
Для чего нужна
*DMN (Decision Model and Notation): используется для описания бизнес-правил и логики принятия решений
*CMMN (Case Management Model and Notation): для моделирования и управления неструктурированными, гибкими процессами, которые зависят от событий и контекста
Компоненты
Примеры применения
Сценарий: Оркестрация процесса обработки заказа
он поступает в Camunda, которая запускает процесс обработки
Способы интеграции с платформой
Материалы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥13❤4
1. Camunda — что это такое?
2. Camunda: тестируем модели процессов
3. Пошаговая инструкция: делаем свой первый проект на Camunda и Kotlin
4. Автоматизируем бизнес-процессы с Camunda и Spring Boot: отказоустойчивая реализация BPM-схем
5. Camunda modeler инструкция на русском
📚 Книги
Моделирование бизнес-процессов в нотации BPMN 2.0 — И.Г. Фёдоров
#инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍6❤5😱1
Интернет — это глобальная сеть систем, которые связаны друг с другом для хранения и передачи данных.
Структура интернета
172.217.18.0), которые используются для маршрутизации данных в интернетеИнтернет работает на базе набора протоколов TCP/IP, которые реализовывают 3, 4 и 7 уровни модели OSI:
Подробнее про OSI — в наших постах (ссылки в материалах)
Доменная система имен (DNS). Включает:
Пример: Один из корневых серверов — A.ROOT-SERVERS.NET, управляемый организацией VeriSign.
Пример: Для домена .com существует множество TLD серверов, например, a.gtld-servers.net.
Пример: Если запрос касается домена example.com, авторитетный сервер для google.com может быть ns1.google.com.
Интернет централизован?
Нет. Интернет состоит из множества автономных систем и сетей, которые управляются разными организациями и компаниями по всему миру. Поэтому интернет работает даже при сбоях в отдельных сегментах, так как нет центральной точки отказа.
Однако существует координационный орган — ICANN (Internet Corporation for Assigned Names and Numbers). ICANN отвечает за распределение IP-адресов, управление доменными зонами и поддержание стабильности работы сети.
ICANN координирует распределение IP-адресов и доменных зон верхнего уровня (.com, .org и т.д.), т.е. обеспечивает работу корневых DNS-серверов. ICANN не управляет содержимым сайтов и интернет-провайдерами, а лишь поддерживает техническую инфраструктуру. Хотя ICANN не может физически отключить интернет в стране, но может прекратить обслуживание доменных зон.
Что происходит, когда мы вводим в браузере google.com?
#сети
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32❤14🔥6⚡2