АР checklist
TODO
- компромисс ар
- +- вариантов ар
- аргументы swot
- Новая ис
- Владелец бизнес, ит
- набор действии crud̆ с каждой сущностью и возможные ошибочные ситуации
- Изменения сущностей рост бд, прогноз роста: тип, строк/День
- объемы данных, которые нам нужны для хранения
- Сквозная функциональность
- посчитать начальную нагрузку на наш абстрактный сервис и скорость ее роста
- жизненный цикл и набор состояний каждой сущности
- согласовать
- Иб: прокси, dlp, доступы, внешние апи
- Инфраструктура
- Эксплуатация: новая ис
- ОР
- Раскрыть схемы инфпотоков до сущностей+, атрибутов+ связей+, бд+, компонентов ис+, процессов+
- Архитектура ИС, компонентов, бд, инфраструктура
Ключевые вопросы
Аутентификация и авторизация
Как хранить идентификационные данные зарегистрированных пользователей? Как аутентифицировать запросы? Как авторизовывать запросы? Как передавать идентификационные данные пользователей между слоями приложения?
Кэширование и состояние
Как выбрать эффективную стратегию кэширования? Как увеличить производительность с помощью кэширования? Как улучшить безопасность с помощью кэширования? Как улучшить стабильность с помощью кэширования? Как поддерживать кэш в актуальном состоянии? Как определить когда и каким образом использовать специализированный кэш? Как определить какие данные кэшировать? Как определить куда кэшировать данные? Как определить правила удаления данных из кэша из-за устаревания или переполнения? Как загружать данные кэша? Как следить за кэшем? Как синхронизовать между собой множественные кэши? Как определить какой способ кэширования даёт наибольшую производительность и масштабируемость для определённого сценария и конфигурации. Как определить какая технология кэшировния удовлетворяет требованиям приложения насчёт безопасности, лёгкости управления и мониторинга.
Взаимодействие
Как передавать информацию между слоями приложения? Как совершать асинхронные операции? Как передавать секретные данные?
Композиция
Как спроектировать структуру приложения? Как спроектировать слабую связанность между модулями? Как работать с зависимостями в слабосвязанном режиме?
Параллельные вычисления и транзакции
Управление конфигурацией
Как определить какая информация подлежит конфигурированию? Как определить где и каким образом сохранять конфигурационную информацию? Как работать с секретной информацией? Как работать с конфигурационной информацией в кластере?
Связанность и сцепление
Как разделить функцональности? Как структурировать приложение? Как выбрать подходящее разбиение на слои? Как задать границы между частями системы?
Доступ к данным
Как управлять соединениями БД? Как управлять исключениями? Как улучшить производительность? Как улучшить управляемость? Как работать с бинарными данными (BLOBs)? Как использовать пейджинг (paging) для записей? Как управлять транзакциями?
Работа с исключениями
Как обрабатывать исключения? Как сохранять информацию об исключениях?
Ведение логов и мониторинг
Как определить какую информацию писать в лог? Как сделать запись в лог настраиваемой?
Взаимодействие с пользователем
Как повысить эффективность выполнения задач? Как улучшить отзывчивость интерфейса? Как улучшить возможности приложения для пользователя? Как улучшить внешний вид приложения?
Проверка данных
Как определить где и когда проводить валидацию данных? Как проверять длину, диапазон, формат и тип данных? Как ограничить вводимые данные и сообщать о неправильных значениях? Как обезопасить (sanitize) выводимые данные?
Поток операций
Как решать проблемы параллельных вычислений в потоке операций? Как обрабатывать ошибки в потоке операций? Как координировать процессы в потоке операций?