Compare commits
2 Commits
dunaev-oi-
...
dunaev-oi-
| Author | SHA1 | Date | |
|---|---|---|---|
| e5ef711b41 | |||
| 54fe7275d7 |
20
tasks/dunaev-oi/lab8/README.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Отчет по лабораторной работе №8
|
||||||
|
|
||||||
|
Выполнил студент гр. ИСЭбд-41 Дунаев О.И.
|
||||||
|
|
||||||
|
## Задачи
|
||||||
|
|
||||||
|
Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка:
|
||||||
|
1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
|
||||||
|
2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
|
||||||
|
3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
|
||||||
|
4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
|
||||||
|
5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
|
||||||
|
|
||||||
|
## Эссе
|
||||||
|
|
||||||
|
1.Каждое приложение функционально выполняет ограниченный спектр задач, что позволяет системе быть модульной и легко адаптируемой к изменениям в требованиях или технологиях. Это также снижает общую сложность системы, поскольку отдельные компоненты могут быть разработаны, протестированы и развернуты независимо друг от друга.
|
||||||
|
2.Системы оркестрации приложений были созданы для упрощения управления и координации распределенных систем. Они позволяют автоматизировать развертывание, масштабирование и мониторинг приложений, а также обеспечивают интеграцию различных сервисов и компонентов. В то же время, их использование может усложнить разработку и поддержку распределенных систем для менее опытных разработчиков, поскольку требует понимания и применения определенных инструментов и подходов.
|
||||||
|
3.Очереди обработки сообщений нужны для асинхронной коммуникации между компонентами распределенных систем и обеспечения их стабильной работы. Сообщениями могут быть любые данные, которые требуют обработки или передачи между различными частями приложения.
|
||||||
|
4.Распределенные приложения имеют преимущества, такие как масштабируемость, надежность и гибкость. Однако они также имеют и недостатки, такие как сложность в управлении и сопровождении, проблемы с согласованностью данных и необходимость в более сложной инфраструктуре.
|
||||||
|
5.Внедрение параллельных вычислений в сложную распределенную систему может быть целесообразным, если система должна обрабатывать большое количество данных или выполнять множество операций одновременно. Это может ускорить процесс обработки и повысить производительность. Однако это также может увеличить сложность системы и потребовать дополнительных усилий для обеспечения ее стабильности и согласованности. Примеры, когда параллельные вычисления действительно нужны, включают обработку больших объемов данных, анализ в реальном времени и игры с интенсивной графикой. В то время как для систем, которые выполняют менее сложные и ресурсоемкие операции, параллельные вычисления могут не потребоваться.
|
||||||
@@ -1,139 +0,0 @@
|
|||||||
# Отчёт по лабораторной работе №1
|
|
||||||
|
|
||||||
Выполнил: студент гр. ИСЭбд-41, Дунаев О.И.
|
|
||||||
|
|
||||||
## Разворачивание сервиса Gitea
|
|
||||||
|
|
||||||
Содержимое файла `docker-compose.yml` в папке Gitea:
|
|
||||||
```yaml
|
|
||||||
version: "3"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
gitea:
|
|
||||||
external: false
|
|
||||||
# Контейнер Gitea
|
|
||||||
services: # Описание служб
|
|
||||||
server:
|
|
||||||
image: gitea/gitea:1.20.4 # Образ gitea
|
|
||||||
container_name: gitea # Наименование контейнера
|
|
||||||
environment: # Наши параметры
|
|
||||||
- USER_UID=1000
|
|
||||||
- USER_GID=1000
|
|
||||||
- GITEA__database__DB_TYPE=mysql
|
|
||||||
- GITEA__database__HOST=db:3306
|
|
||||||
- GITEA__database__NAME=gitea
|
|
||||||
- GITEA__database__USER=gitea
|
|
||||||
- GITEA__database__PASSWD=gitea
|
|
||||||
restart: always
|
|
||||||
networks: # Параметры сети
|
|
||||||
- gitea
|
|
||||||
volumes: # Каталоги для хранения данных контейнера
|
|
||||||
- ./gitea:/data
|
|
||||||
- /etc/timezone:/etc/timezone:ro
|
|
||||||
- /etc/localtime:/etc/localtime:ro
|
|
||||||
ports: # Порт локальный и внутри сети
|
|
||||||
- "3000:3000"
|
|
||||||
- "222:22"
|
|
||||||
depends_on:
|
|
||||||
- db
|
|
||||||
# База данных
|
|
||||||
db:
|
|
||||||
image: mysql:8 # Образ БД и версия
|
|
||||||
restart: always # Параметр перезапуска
|
|
||||||
environment: # Подключаем каталог с базой данных
|
|
||||||
- MYSQL_ROOT_PASSWORD=gitea
|
|
||||||
- MYSQL_USER=gitea
|
|
||||||
- MYSQL_PASSWORD=gitea
|
|
||||||
- MYSQL_DATABASE=gitea
|
|
||||||
networks: # Параметры сети
|
|
||||||
- gitea
|
|
||||||
volumes: # Том для хранения данных БД
|
|
||||||
- ./mysql:/var/lib/mysql
|
|
||||||
```
|
|
||||||
Далее в командной строке разворачиваем сервис командой `docker-compose up -d`:
|
|
||||||

|
|
||||||
|
|
||||||
Переходим на http://localhost:222:
|
|
||||||

|
|
||||||
|
|
||||||
Регистрируемся и автоматически входим в учетную запись:
|
|
||||||

|
|
||||||
|
|
||||||
## Разворачивание сервиса Wordpress
|
|
||||||
|
|
||||||
Также в файл `docker-compose.yml` в папке Wordpress прописываем следующий код:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
version: '3.1'
|
|
||||||
|
|
||||||
services:
|
|
||||||
# Контейнер Wordpress
|
|
||||||
wordpress:
|
|
||||||
image: wordpress # Образ
|
|
||||||
restart: always # Параметр перезапуска
|
|
||||||
ports: # На каком порте запускаем
|
|
||||||
- 7071:80
|
|
||||||
environment: # Настройки БД WordPress для подключения
|
|
||||||
WORDPRESS_DB_HOST: database # Имя хоста БД MySQL
|
|
||||||
WORDPRESS_DB_USER: user # Имя пользователя БД
|
|
||||||
WORDPRESS_DB_PASSWORD: password # Пароль пользователя БД
|
|
||||||
WORDPRESS_DB_NAME: name_database # Имя БД
|
|
||||||
volumes: # Каталог хранения файлов WordPress
|
|
||||||
- wordpress:/var/www/html
|
|
||||||
# Контейнер MySQL
|
|
||||||
database:
|
|
||||||
image: mysql:5.7 # Образ и его версия
|
|
||||||
restart: always # Параметр перезапуска
|
|
||||||
environment: # Настройки БД для подключения
|
|
||||||
MYSQL_DATABASE: name_database
|
|
||||||
MYSQL_USER: user
|
|
||||||
MYSQL_PASSWORD: password
|
|
||||||
MYSQL_RANDOM_ROOT_PASSWORD: '12345'
|
|
||||||
volumes: # Каталог хранения данных БД
|
|
||||||
- database:/var/lib/mysql
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
wordpress:
|
|
||||||
database:
|
|
||||||
```
|
|
||||||
Далее в командной строке разворачиваем сервис командой `docker-compose up -d`:
|
|
||||||

|
|
||||||
|
|
||||||
Открываем Docker Desktop и проверяем, что контейнер сервера БД и Wordpress созданы и запущены:
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
## Разворачивание сервиса Redmine
|
|
||||||
|
|
||||||
Также в файл `docker-compose.yml` в папке Redmine прописываем код:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
version: '3.1'
|
|
||||||
|
|
||||||
services:
|
|
||||||
# Контейнер Redmine
|
|
||||||
redmine:
|
|
||||||
image: redmine # Образ контейнера
|
|
||||||
restart: always
|
|
||||||
ports: # На какой порт запускать
|
|
||||||
- 8080:3000
|
|
||||||
environment:
|
|
||||||
REDMINE_DB_MYSQL: db
|
|
||||||
REDMINE_DB_PASSWORD: example
|
|
||||||
REDMINE_SECRET_KEY_BASE: supersecretkey
|
|
||||||
# Контейнер БД MySQL
|
|
||||||
db:
|
|
||||||
image: mysql:5.7 # Образ БД и ее версия
|
|
||||||
restart: always
|
|
||||||
environment: # Название и пароль админа БД
|
|
||||||
MYSQL_ROOT_PASSWORD: example
|
|
||||||
MYSQL_DATABASE: redmine
|
|
||||||
```
|
|
||||||
Далее в командной строке разворачиваем сервис командой `docker-compose up -d`:
|
|
||||||

|
|
||||||
|
|
||||||
Переходим на http://localhost:8080:
|
|
||||||

|
|
||||||
|
|
||||||
Регистрируемся и проверяем, что все работает:
|
|
||||||

|
|
||||||
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 153 KiB |