-
Notifications
You must be signed in to change notification settings - Fork 127
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
154 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
Это шаблон для решения **первой части** проектной работы. Структура этого файла повторяет структуру заданий. Заполняйте его по мере работы над решением. | ||
|
||
# Задание 1. Анализ и планирование | ||
|
||
Чтобы составить документ с описанием текущей архитектуры приложения, можно часть информации взять из описания компании условия задания. Это нормально. | ||
|
||
### 1. Описание функциональности монолитного приложения | ||
|
||
**Управление отоплением:** | ||
|
||
- Пользователи могут… | ||
- Система поддерживает… | ||
- … | ||
|
||
**Мониторинг температуры:** | ||
|
||
- Пользователи могут… | ||
- Система поддерживает… | ||
- … | ||
|
||
### 2. Анализ архитектуры монолитного приложения | ||
|
||
Перечислите здесь основные особенности текущего приложения: какой язык программирования используется, какая база данных, как организовано взаимодействие между компонентами и так далее. | ||
|
||
### 3. Определение доменов и границы контекстов | ||
|
||
Опишите здесь домены, которые вы выделили. | ||
|
||
### **4. Проблемы монолитного решения** | ||
|
||
- … | ||
- … | ||
- … | ||
|
||
Если вы считаете, что текущее решение не вызывает проблем, аргументируйте свою позицию. | ||
|
||
### 5. Визуализация контекста системы — диаграмма С4 | ||
|
||
Добавьте сюда диаграмму контекста в модели C4. | ||
|
||
Чтобы добавить ссылку в файл Readme.md, нужно использовать синтаксис Markdown. Это делают так: | ||
|
||
```markdown | ||
[Текст ссылки](URL) | ||
``` | ||
|
||
Замените `Текст ссылки` текстом, который хотите использовать для ссылки. Вместо `URL` вставьте адрес, на который должна вести ссылка. Например: | ||
|
||
```markdown | ||
[Посетите Яндекс](https://ya.ru/) | ||
``` | ||
|
||
# Задание 2. Проектирование микросервисной архитектуры | ||
|
||
В этом задании вам нужно предоставить только диаграммы в модели C4. Мы не просим вас отдельно описывать получившиеся микросервисы и то, как вы определили взаимодействия между компонентами To-Be системы. Если вы правильно подготовите диаграммы C4, они и так это покажут. | ||
|
||
**Диаграмма контейнеров (Containers)** | ||
|
||
Добавьте диаграмму. | ||
|
||
**Диаграмма компонентов (Components)** | ||
|
||
Добавьте диаграмму для каждого из выделенных микросервисов. | ||
|
||
**Диаграмма кода (Code)** | ||
|
||
Добавьте одну диаграмму или несколько. | ||
|
||
# Задание 3. Разработка ER-диаграммы | ||
|
||
Добавьте сюда ER-диаграмму. Она должна отражать ключевые сущности системы, их атрибуты и тип связей между ними. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
Это шаблон для решения **второй части** проектной работы. Структура этого файла повторяет структуру заданий. Заполняйте его по мере работы над решением. | ||
|
||
Все задания в этой части проектной работы — дополнительные. Их можно сделать по желанию. Чтобы ревьюер быстрее проверил ваше решение, укажите, какие задания вы сделали. Для этого оставьте нужный эмодзи около заголовка задания: | ||
|
||
✅ — вы выполнили это задание. | ||
|
||
❌ — вы пропустили задание. | ||
|
||
# Разработка MVP | ||
|
||
# ✅ ❌ Задание 1. Создание и документирование API | ||
|
||
### 1. Тип API | ||
|
||
Укажите, какой тип API вы будете использовать для взаимодействия микросервисов. Объясните своё решение. | ||
|
||
### 2. Документация API | ||
|
||
Здесь приложите ссылки на документацию API для микросервисов, которые вы спроектировали в первой части проектной работы. Для документирования используйте Swagger/OpenAPI или AsyncAPI. | ||
|
||
# ✅ ❌ Задание 2. Новые микросервисы и интеграция с монолитом | ||
|
||
### 1. Язык программирования | ||
|
||
Опишите, какой язык вы выбрали для реализации микросервисов и почему. | ||
|
||
### 2. Создание проекта | ||
|
||
Укажите здесь ссылки на проекты, которые вы создали для микросервисов: | ||
|
||
- Микросервис «Управление телеметрией» **[🔗 ссылка]** | ||
- Микросервис «Управление устройствами» **[🔗 ссылка]** | ||
|
||
### 4. Интеграция с монолитом | ||
|
||
Укажите, какой способ взаимодействия микросервисов с монолитом вы выбрали. Поясните, почему остановились именно на нём. | ||
|
||
### **5. Развёртывание в Minikube, либо Docker Compose** | ||
|
||
Опишите полную инструкцию для развёртывания с нуля вашего решения, а так же тестовые запросы — Swagger. | ||
|
||
## **Дополнительная часть** | ||
|
||
В ходе работы над заданием вы можете по желанию выполнить ряд условий. Оставьте рядом с описанием условий смайлик, который соответствует статусу решения, и своё пояснение: | ||
|
||
- ✅ ❌ Реализован паттерн Saga для управления распределенными транзакциями между микросервисами. | ||
- ✅ ❌ Разделены операции чтения и записи данных в микросервисах с помощью паттерна CQRS. | ||
- ✅ ❌ Применены дополнительные принципы 12-факторных приложений. | ||
- ✅ ❌ Использован Kafka кластер для обеспечения отказоустойчивости и масштабируемости. | ||
|
||
# ✅ ❌ Задание 3. Подготовка 3rd party сервисов для связи микросервисов | ||
|
||
1. ✅ ❌ **Развёрнут и настроен кластер Kafka.** | ||
Этот пункт задания выполнять необязательно. Это зависит от того, как вы реализовали своё решение. Оставьте рядом с пунктом тот смайлик, который отражает ваш выбор. Если используете кластер Kafka, добавьте сюда ссылку. | ||
2. **Развёрнут и настроен API Gateway** | ||
Поясните, какие технологии для API Gateway вы используете. Оставьте ссылку. | ||
3. **Тестирование** | ||
Поясните, какие команды нужно использовать для тестирования. | ||
|
||
# Автоматизация поставки | ||
|
||
# ✅ ❌ Задание 1. Контейнеризация микросервисов | ||
|
||
1. **Созданы Helm-чарты** | ||
2. **Docker-образы собраны и загружены в хранилище артефактов** | ||
Добавьте сюда ссылку на GitHub Container Registry. | ||
3. **Запуск сервисов** | ||
Напишите, какие команды нужно использовать для запуска сервисов с нуля. | ||
4. **Тестирование работы сервисов** | ||
Напишите, какие команды нужно использовать для тестирования. | ||
|
||
# ✅ ❌ Задание 2. Настройка CI/CD-пайплайнов **c помощью GitHub Actions** | ||
|
||
1. **Созданы CI/CD-пайплайны для каждого микросервиса** | ||
- Опишите шаги пайплайна GitHub Actions в ci.yaml и добавьте сюда ссылку на этот файл. | ||
- Опишите шаги, которые нужно пройти для сборки, тестирования, загрузки образов в хранилище артефактов и обновления Helm релиза в Minikube. | ||
2. **Настроены триггеры для запуска пайплайнов** | ||
|
||
Пайплайны настроены на запуск при каждом пуше кода в репозиторий. | ||
|
||
3. **Проверена работа пайплайнов** | ||
|
||
Пайплайн автоматически запускается и успешно выполняет все этапы: сборка, тестирование, развертывание. Добавьте сюда ссылку, по которой можно посмотреть выполнение пайплайнов. |