Skip to content

Commit

Permalink
Add template for sprint 3
Browse files Browse the repository at this point in the history
  • Loading branch information
shestera committed Nov 29, 2024
1 parent e34c1a4 commit 3f6ecc6
Show file tree
Hide file tree
Showing 2 changed files with 154 additions and 0 deletions.
71 changes: 71 additions & 0 deletions Project_template_part_1.md
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-диаграмму. Она должна отражать ключевые сущности системы, их атрибуты и тип связей между ними.
83 changes: 83 additions & 0 deletions Project_template_part_2.md
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. **Проверена работа пайплайнов**

Пайплайн автоматически запускается и успешно выполняет все этапы: сборка, тестирование, развертывание. Добавьте сюда ссылку, по которой можно посмотреть выполнение пайплайнов.

0 comments on commit 3f6ecc6

Please sign in to comment.