1 Commits

Author SHA1 Message Date
65f495ef9b lab8 2024-01-07 00:21:53 +04:00
11 changed files with 33 additions and 145 deletions

View File

@@ -1,145 +0,0 @@
# Отчёт по лабораторной работе №1
Выполнил: студент гр. ИСЭбд-41 Михайлов Ю.С.
## Разворачивание сервиса moodle
Содержимое файла `docker-compose.yml` в папке moodle:
```yaml
version: '2'
#Контейнер Mariadb используется как сервер для запуска
services:
mariadb:
image: docker.io/bitnami/mariadb:11.0
environment:
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=bn_moodle
- MARIADB_DATABASE=bitnami_moodle
- MARIADB_CHARACTER_SET=utf8mb4
- MARIADB_COLLATE=utf8mb4_unicode_ci
volumes:
- 'mariadb_data:/bitnami/mariadb'
#Контейнер moodle используется для запуска сервиса
moodle:
image: docker.io/bitnami/moodle:4.2
ports: #порт
- '80:8080'
- '443:8443'
environment:
- MOODLE_DATABASE_HOST=mariadb
- MOODLE_DATABASE_PORT_NUMBER=3306
- MOODLE_DATABASE_USER=bn_moodle
- MOODLE_DATABASE_NAME=bitnami_moodle
- ALLOW_EMPTY_PASSWORD=yes
- MOODLE_USERNAME=vechno
- MOODLE_PASSWORD=solo
volumes:
- 'moodle_data:/bitnami/moodle'
- 'moodledata_data:/bitnami/moodledata'
depends_on:
- mariadb
volumes:
mariadb_data:
driver: local
moodle_data:
driver: local
moodledata_data:
driver: local
```
Далее в командной строке разворачиваем сервис командой `docker-compose up`:
![](pic1.png)
Открываем Docker Desktop и проверяем, что контейнер сервера базы данных и moodle созданы и запущены:
![](pic2.png)
Переходим на http://localhost:80:
![](pic3.png)
## Разворачивание сервиса Redmine
Содержимое файла `docker-compose.yml` в папке Redmine:
```yaml
version: '3.1'
services:
#Контейнер образа Redmine
redmine:
image: redmine
restart: always
ports: #порт
- 8082: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`:
![](pic4.png)
В Docker Desktop проверяем, что контейнер сервера базы данных и Redmine созданы и запущены:
![](pic5.png)
Переходим на http://localhost:8082:
![](pic6.png)
## Разворачивание сервиса Gitea
Содержимое файла `docker-compose.yml` в папке Gitea:
```yaml
version: "3"
networks:
gitea:
external: false
#Контейнер образа Gitea для запуска сервиса
services:
server:
image: gitea/gitea:1.20.4
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
#Контейнер Mysql сервер для запуска
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`:
![](pic7.png)
В Docker Desktop проверяем, что контейнер сервера базы данных и Redmine созданы и запущены:
![](pic8.png)
Переходим на http://localhost:3000:
![](pic9.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

View File

@@ -0,0 +1,33 @@
# Отчет по лабораторной работе №8
Выполнил студент гр. ИСЭбд-41 Михайлов Ю.С.
## Задачи
Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка:
1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
## Эссе
Сложные системы, такие как социальная сеть ВКонтакте, пишутся в распределенном стиле так как:
1. Это делает систему гибкой и масштабируемой, позволяет добавлять новые функции и возможности без влияния на работу других компонентов.
2. Упрощает обслуживание и обновление системы, поскольку изменения вносятся только в одну часть приложения.
3. Снижает риск сбоев и ошибок, так как если один компонент выходит из строя, другие продолжают работать.
Системы оркестрации приложений были созданы для того, чтобы упростить управление различных сервисов и приложений в больших распределенных системах. Они позволяют автоматизировать процессы развертывания, масштабирования и мониторинга приложений, а также управлять доступом к ресурсам и обеспечивать согласованность данных. Оркестрация приложений упрощает разработку и сопровождение таких систем.
Очереди обработки сообщений нужны для обеспечения асинхронной коммуникации между компонентами распределенной системы. Сообщения могут быть любыми данными, передаваемыми между различными частями системы, такими как запросы, ответы, обновления данных и так далее. Очереди сообщений позволяют организовать последовательность выполнения задач, обеспечивая их обработку в порядке поступления, даже если компоненты системы работают параллельно.
Преимущества распределенных приложений включают масштабируемость, гибкость, устойчивость к сбоям и ошибкам, а также возможность быстрого внедрения новых функций и возможностей. Однако у них также есть и недостатки, такие как сложность в управлении и сопровождении, риск потери данных при переходе между узлами, а также проблемы с согласованностью данных и синхронизацией между компонентами.
Целесообразно внедрять параллельные вычисления в сложную распределенную систему:
Интенсивная вычислительная нагрузка: Если в системе присутствует интенсивная вычислительная задача, которую можно разделить на подзадачи, параллельные вычисления позволяют использовать множество узлов для ускоренного выполнения. Высоконагруженные системы: В системах с высокой нагрузкой, таких как веб-серверы или системы обработки транзакций, параллельные вычисления могут повысить пропускную способность и обработку запросов.
Нецелесообразно внедрять параллельные вычисления:
Наличие сетевых задержек: Если распределенная среда характеризуется высокими сетевыми задержками, параллельные вычисления могут не оправдывать себя из-за времени передачи данных.