Compare commits
1 Commits
mikhailov-
...
mikhailov-
| Author | SHA1 | Date | |
|---|---|---|---|
| 65f495ef9b |
@@ -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`:
|
||||

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

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

|
||||
|
||||
## Разворачивание сервиса 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`:
|
||||

|
||||
В Docker Desktop проверяем, что контейнер сервера базы данных и Redmine созданы и запущены:
|
||||

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

|
||||
|
||||
## Разворачивание сервиса 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`:
|
||||

|
||||
В Docker Desktop проверяем, что контейнер сервера базы данных и Redmine созданы и запущены:
|
||||

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

|
||||
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 164 KiB |
33
tasks/mikhailov-ys/lab_8/README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Отчет по лабораторной работе №8
|
||||
|
||||
Выполнил студент гр. ИСЭбд-41 Михайлов Ю.С.
|
||||
|
||||
## Задачи
|
||||
|
||||
Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка:
|
||||
1. Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
|
||||
2. Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
|
||||
3. Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
|
||||
4. Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
|
||||
5. Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
|
||||
|
||||
## Эссе
|
||||
|
||||
Сложные системы, такие как социальная сеть ВКонтакте, пишутся в распределенном стиле так как:
|
||||
1. Это делает систему гибкой и масштабируемой, позволяет добавлять новые функции и возможности без влияния на работу других компонентов.
|
||||
2. Упрощает обслуживание и обновление системы, поскольку изменения вносятся только в одну часть приложения.
|
||||
3. Снижает риск сбоев и ошибок, так как если один компонент выходит из строя, другие продолжают работать.
|
||||
|
||||
Системы оркестрации приложений были созданы для того, чтобы упростить управление различных сервисов и приложений в больших распределенных системах. Они позволяют автоматизировать процессы развертывания, масштабирования и мониторинга приложений, а также управлять доступом к ресурсам и обеспечивать согласованность данных. Оркестрация приложений упрощает разработку и сопровождение таких систем.
|
||||
|
||||
Очереди обработки сообщений нужны для обеспечения асинхронной коммуникации между компонентами распределенной системы. Сообщения могут быть любыми данными, передаваемыми между различными частями системы, такими как запросы, ответы, обновления данных и так далее. Очереди сообщений позволяют организовать последовательность выполнения задач, обеспечивая их обработку в порядке поступления, даже если компоненты системы работают параллельно.
|
||||
|
||||
Преимущества распределенных приложений включают масштабируемость, гибкость, устойчивость к сбоям и ошибкам, а также возможность быстрого внедрения новых функций и возможностей. Однако у них также есть и недостатки, такие как сложность в управлении и сопровождении, риск потери данных при переходе между узлами, а также проблемы с согласованностью данных и синхронизацией между компонентами.
|
||||
|
||||
Целесообразно внедрять параллельные вычисления в сложную распределенную систему:
|
||||
|
||||
Интенсивная вычислительная нагрузка: Если в системе присутствует интенсивная вычислительная задача, которую можно разделить на подзадачи, параллельные вычисления позволяют использовать множество узлов для ускоренного выполнения. Высоконагруженные системы: В системах с высокой нагрузкой, таких как веб-серверы или системы обработки транзакций, параллельные вычисления могут повысить пропускную способность и обработку запросов.
|
||||
|
||||
Нецелесообразно внедрять параллельные вычисления:
|
||||
|
||||
Наличие сетевых задержек: Если распределенная среда характеризуется высокими сетевыми задержками, параллельные вычисления могут не оправдывать себя из-за времени передачи данных.
|
||||