Skip to content

Commit

Permalink
Updated the course description by changing labs 1, 2 and 3
Browse files Browse the repository at this point in the history
  • Loading branch information
Vlad-laptop committed Jan 26, 2025
1 parent 3073e10 commit e5d889a
Show file tree
Hide file tree
Showing 11 changed files with 94 additions and 27 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# chappel

Курс лабораторных работ по дисциплине "Архитектура высоконагруженных систем".
Курс лабораторных работ по дисциплине "Архитектура высоконагруженных приложений".

## Local deployment

Expand Down
5 changes: 3 additions & 2 deletions docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export default defineUserConfig({
alias: {
'@source': 'docs/.vuepress'
},
title: 'Архитектура высоконагруженных систем',
title: 'Архитектура высоконагруженных приложений',
base: "/chappel/",

head: [
Expand Down Expand Up @@ -47,14 +47,14 @@ export default defineUserConfig({
}
]
},
// logo: '/logo.png',
repo: 'https://github.com/MANASLU8/chappel-source',
lastUpdated: false,
contributors: false,
selectLanguageName: true,
editLink: false,
docsDir: 'docs',


navbar: [
{
text: 'Задания',
Expand All @@ -78,6 +78,7 @@ export default defineUserConfig({
}
]
},

plugins: [
'@vuepress/plugin-search',
]
Expand Down
16 changes: 16 additions & 0 deletions docs/.vuepress/styles/index.sass
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
.home .hero img {
max-width: 450px !important;
}

.sidebar-group .collapsable {
color: #2c3e50;
}

.sidebar-group.is-sub-group > .sidebar-heading {
opacity: 1 !important;
cursor: pointer !important;
}

.vp-hero-action-button {
background: linear-gradient(0.15turn, #b607b6, #3cc);
}
2 changes: 1 addition & 1 deletion docs/.vuepress/styles/index.styl
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@
opacity: 1 !important
cursor: pointer!important

.action-button
.vp-hero-action-button
background: linear-gradient(0.15turn, #b607b6, #3cc)
17 changes: 17 additions & 0 deletions docs/.vuepress/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { defineConfig } from 'vite';
import path from 'path';

export default defineConfig({
css: {
preprocessorOptions: {
sass: {
additionalData: `@import "@/styles/index.sass";`,
},
},
},
resolve: {
alias: {
'@': path.resolve(__dirname, './'),
},
},
});
10 changes: 7 additions & 3 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
---
home: true
heroText: Архитектура высоконагруженных систем
heroImage: /logo.jpg
heroText: Архитектура высоконагруженных приложений
heroImage: /logo.png
tagline: Лабораторные работы
actionLink: /task/
# footer: Made by MANASLU8 with ❤️
actions:
- link: /task/
text: Начать →
type: primary
footer: Made by MANASLU8 with ❤️
copyright: Customized copyright text
---
7 changes: 7 additions & 0 deletions docs/project/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Авторы

Следующая таблица содержит данные об авторах проектов:

| Проект | Автор(ы) |
| --- | --- |
| | |
21 changes: 10 additions & 11 deletions docs/task/1.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@

::: important Важно
Заранее продумайте функциональность проекта, так как к концу курса он должен включать следующие элементы:
- **API**, реализованный в микросервисной архитектуре.
- **База данных**
- **Балансировщик нагрузки**
- **Брокер сообщений**
- **Кэш**
- **ELK-стек** для сбора и анализа логов.
- **Мониторинг**
- **API** - реализованный в микросервисной архитектуре.
- **База данных** - на выбор студентов.
- **Балансировщик нагрузки** - Nginx.
- **Брокер сообщений** - на выбор студентов.
- **Кэш** - на выбор студентов.
- **ELK-стек** Elasticsearch, Logstash и Kibana, для сбора и анализа логов.
- **Мониторинг** Grafana и Prometheus.
:::

### Формирование требований
Expand Down Expand Up @@ -53,12 +53,11 @@

### Диаграмма прецедентов

Необходимо разработать [Диаграмму прецедентов](https://creately.com/blog/ru/%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0/%D1%83%D1%87%D0%B5%D0%B1%D0%BD%D0%BE%D0%B5-%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%B8%D0%B5-%D0%BF%D0%BE-%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0-%D0%BF%D1%80%D0%B5%D1%86%D0%B5%D0%B4%D0%B5/) в UML нотации, которая наглядно иллюстрирует взаимодействие пользователей с вашим приложением.
Необходимо разработать [Диаграмму прецедентов](https://drive.google.com/file/d/1qoTxBFyAIKRhoO7N9tBUer_Oz8oX1hlz/view?usp=drive_link) в UML нотации, которая наглядно иллюстрирует взаимодействие пользователей с вашим приложением.

Диаграмма должна включать:
- **Актеров** (пользователей или системы, взаимодействующих с приложением).
- **Сценарии использования** (основные действия и взаимодействия с системой).
- **Основные процессы** в приложении, отражающие логику работы системы с пользователем.
- **Actor** пользователей или системы, взаимодействующих с приложением.
- **Use case** основные действия и взаимодействия с системой.


### Инициализация проекта
Expand Down
6 changes: 4 additions & 2 deletions docs/task/2.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@
Основным элементом отчета по результатам выполнения данной лабораторной работы является описание архитектуры системы, которое рекомендуется выполнять в виде одной или нескольких диаграмм, соответствующих нотации UML. Так, допускается использовать следующие типы диаграмм (в порядке увеличения степени детализации, сложности выполнения и количества баллов, которые можно получить по результатам выполнения данной лабораторной работы):

1. Диаграмма, не соответствующая нотации UML.
1. [Диаграмма компонентов](https://creately.com/blog/ru/uncategorized-ru/%D1%83%D1%87%D0%B5%D0%B1%D0%BD%D0%BE%D0%B5-%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%B8%D0%B5-%D0%BF%D0%BE-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BD%D0%BE%D0%B9-%D0%B4%D0%B8%D0%B0%D0%B3/).
1. [Диаграмма развертывания](https://creately.com/blog/ru/uncategorized-ru/%D1%83%D1%87%D0%B5%D0%B1%D0%BD%D0%BE%D0%B5-%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%B8%D0%B5-%D0%BF%D0%BE-%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B5-%D1%80%D0%B0%D0%B7%D0%B2%D1%91%D1%80%D1%82/#:~:text=%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%20%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%E2%80%93%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B8%D0%BF%20UML,%D0%BF%D1%80%D0%BE%D0%BC%D0%B5%D0%B6%D1%83%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5%20%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%2C%20%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D1%8F%D1%8E%D1%89%D0%B5%D0%B5%20%D0%B8%D1%85.).
1. [Диаграмма компонентов](https://drive.google.com/file/d/1qoTxBFyAIKRhoO7N9tBUer_Oz8oX1hlz/view?usp=drive_link).

1. [Диаграмма развертывания](https://drive.google.com/file/d/1qoTxBFyAIKRhoO7N9tBUer_Oz8oX1hlz/view?usp=drive_link).


::: tip Рекомендация
При создании детализированных диаграмм полезно разбить их на несколько частей. Используйте однообразность стиля при создании диаграммы, которая не соответствует UML нотации ([Пример диаграмм, не соответствующие натации UML](https://github.com/donnemartin/system-design-primer?tab=readme-ov-file))
Expand Down
31 changes: 26 additions & 5 deletions docs/task/3.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,44 @@

Данная лабораторная работа направлена на освоение навыков контейнеризации, настройки CI/CD и настройки мониторинга для отслеживания состояния системы.


## Задание

### Контейнеризация сервисов

Для выполнения лабораторной работы необходимо провести контейнеризацию всех разработанных сервисов с использованием Docker и подготовить файл `docker-compose.yml` для их совместного развертывания.
Для выполнения лабораторной работы необходимо провести контейнеризацию всех разработанных сервисов с использованием Docker и подготовить `docker-compose.yml` файл для их совместного развертывания.

### Добавление мониторинга

Добавьте мониторинг для отслеживания состояния системы с помощью инструментов, таких как Prometheus и Grafana, и настройте базовые алерты для контроля стабильности проекта.
Добавьте мониторинг для отслеживания состояния системы, для этого выполните следующие пункты:
- Установите и настройте **Prometheus** для сбора метрик со всех сервисов.
- Подключите **Grafana** для визуализации данных.
- Настройте следующие базовые алерты в Prometheus:
- Использование процессора превышает 80%.
- Объем оперативной памяти превышает 75%.
- Сервисы недоступны более 30 секунд.

### Добавление автотестов
Реализуйте автоматическое тестирование системы, включив автотесты, которые проверяют ключевые аспекты работы приложения.

Реализуйте автоматическое тестирование системы, охватывающее ключевые аспекты работы приложения. Для этого напишите следующие виды тестирования:
- **Unit Tests**: Проверяйте отдельные модули или функции приложения, чтобы убедиться, что они работают корректно в изоляции.
- **Integration Tests**: Убедитесь, что различные компоненты системы взаимодействуют друг с другом без ошибок.


### Настройка CI/CD
Настройте CI/CD пайплайн в GitLab для автоматизированной сборки, тестирования и развертывания проекта на предоставленных серверах. Убедитесь в корректной интеграции всех элементов системы.
Настройте CI/CD пайплайн в GitLab для автоматизированной сборки, тестирования и развертывания проекта на предоставленных серверах в соответствии со следующими этапами:

1. Этап сборки:
- Сборка Docker-образов для всех сервисов.
2. Этап тестирования:
- Запуск автотестов на собранных образах.
- Генерация отчета о тестах.
3. Этап развертывания:
- Деплой сервисов на выделенный сервер с использованием `docker-compose`.


::: important Важно
Убедитесь, что ваши CI/CD конфигурации безопасны. Скройте секреты (например, ключи и пароли) через переменные среды GitLab.
:::

## Критерии оценки

Expand Down
4 changes: 2 additions & 2 deletions docs/task/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
### Информация о курсе

- **Формат выполнения**
Лабораторные работы можно выполнять как в группах по 2–3 человека, так и индивидуально. Групповое выполнение лабораторных работ предполагает повышенные требования к качеству реализации и защите лабораторной работы.
Лабораторные работы можно выполнять как в группах по 2 человека, так и индивидуально. Групповое выполнение лабораторных работ предполагает повышенные требования к качеству реализации и защите лабораторной работы.

- **Использование готового проекта**
Допускается использование уже готового проекта по курсу IoT при индивидуальном прохождении курса, но в этом случае нельзя будет получить автомат по окончании курса.
Допускается использование уже готового проекта по курсу IoT при индивидуальном прохождении курса, но в этом случае тяжелее будет получить дополнительные быллы для автомата по окончанию курса.

- **Формат проведения практик**
Все занятия по данному курсу будут проходить в онлайн режиме, ссылка для подключения будет доступна в личном кабинете ИСУ.

0 comments on commit e5d889a

Please sign in to comment.