komok
komok copied to clipboard
Архитектура приложения и выбор технологий
- Микросервисы или нет - если микросервисы - то одна база или несколько? В каких местах делить? Транзакции. CAP теорема.
- Как общаться между микросервисами - напрямую/через очередь? Протокол. Асинхронно или синхронно. Подумать о реальных юзкейзах и проблемах каждого подхода.
- Как должно происходить поднятие кластера? Зависимость между микросервисами.
- Сделать "базовый" микросерис-бойлерплейт?
- Service Discovery - что взять, проблемы разных решений.
- Configuration managment - готовые решения, надежность, CAP теорема.
- Cascade Failure Braker - готовые реализации
- Протокол общения с клиентами: REST, HATEOAS, GraphQL? Сравнить возможности и простоту работы.
- База данных: Postgres, RethinkDB...?
- ORM/Jooq?
- Деплой: docker? swarm/kubernetes?
- CI/CD. Как автоматически деплоить/передеплоивать отдельные сервисы?
- Тестирование. Unit тестирование, Тестирование одного микросервиса, тестирование всей системы (интеграционное). Моки.
- Логирование
- Мониторинг
https://github.com/cozy/cozy
Distributed:
- MediaGoblin
- StatusNet
- pump.io