1 Commits

Author SHA1 Message Date
d54fbc4713 л/р 8 Юденичева Дарья 2023-12-20 17:24:28 +03:00
10 changed files with 28 additions and 246 deletions

View File

@@ -1,246 +0,0 @@
# Отчет по лабораторной работе №1
### Сервис Redmine
#### Система учета багов, т.е. баг-трекер
**Код docker-compose.yml:**
`version: '3.1' #версия`
`services: #разворачивание сервисов`
`redmine:`
`image: redmine #образ, с помощью которого разворачивается контейнер`
`restart: always`
`ports:`
` - 8080:3000 #указываем порт хоста и виртуалки`
`environment: #настройка переменных окружения`
`REDMINE_DB_MYSQL: db #подключение и вызов к другому контейнеру (db)`
`REDMINE_DB_PASSWORD: example #пароль`
`REDMINE_SECRET_KEY_BASE: supersecretkey`
`db: #название хоста, с помощью которого подключается к другому контейнеру (redmine)`
`image: mysql:5.7`
`restart: always`
`environment: #настройка переменных окржения`
`MYSQL_ROOT_PASSWORD: example #пароль`
`MYSQL_DATABASE: redmine #название БД`
**Принцип работы:**
Определяются volume, которые находятся в образе "image: redmine" контейнера "redmine".
Контейнер "redmine" запускается из образа "image: redmine" из Docker Hub.
В "ports" указывается локальный хост 8080 и хост виртуальной машины 3000.
Настройка переменных окружения настривается в "environment":
-Название БД и вызов другого контейнера с названием db
-Используемый пароль при подключении к БД
-БД, которую Redmine будет использовать на указанном сервере
-Переменная REDMINE_SECRET_KEY_BASE для поддержания сеансовых соединений
Второй котнейнер "db" подключается к контейнеру "redmine" с помощью названия хоста в настройке переменных окружения.
В контейнере "db" также в "environment" настраиваются переменные окружения.
Скришот работы сервиса redmine:
![Alt text](images/image-1.png)
### Сервис Wordpress
#### Популярная система управления контентом.
**Код docker-compose.yml:**
`db:`
`image: mariadb:10.6.4-focal #образ, с помощью которого разворачивается контейнер`
`command: '--default-authentication-plugin=mysql_native_password'`
`volumes:`
`- db_data:/var/lib/mysql`
`restart: always`
`environment: #настройка переменных окружения`
`- MYSQL_ROOT_PASSWORD=somewordpress`
`- MYSQL_DATABASE=wordpress`
`- MYSQL_USER=wordpress`
`- MYSQL_PASSWORD=wordpress`
`expose: #описание сетевых портов`
`- 3306`
`- 33060`
`wordpress: #название хоста, который подключается к другому контейнеру`
`image: wordpress:latest`
`volumes:`
`- wp_data:/var/www/html`
`ports: #порт хоста и виртуалки`
`- 80:80`
`restart: always`
`environment: #настройка переменных окржуения`
`- WORDPRESS_DB_HOST=db`
`- WORDPRESS_DB_USER=wordpress`
`- WORDPRESS_DB_PASSWORD=wordpress`
`- WORDPRESS_DB_NAME=wordpress`
`volumes: #описание вольюмов`
`db_data:`
`wp_data:`
**Принцип работы:**
Определяются volumes, которые находятся в образах "image: wordpress:latest" и "image: mariadb:10.6.4-focal".
В "ports" указывается локальный хост 80 и хост виртуальной машины 80.
Настройка переменных окружения настривается в "environment":
-Название БД
-Используемый пароль при подключении к БД
-БД, которую Redmine будет использовать на указанном сервере
-Описание сетевых портов expose, которые будут прослушиваться в запущенном контейнере (3306, 33060)
Скришот работы сервиса wordpress:
Выбираем язык:
![Alt text](images/image-2.png)
Заполняем нужную информацию (название сайта, имя пользователя, пароль, адрес электронной почты):
![Alt text](images/image-3.png)
После регистрации открывается следующее окно:
![Alt text](images/image-4.png)
Далее проходим авторизацию и наслаждемся работой в WordPress:
![Alt text](images/image-5.png)
### Сервис MediaWiki
#### Движок вики.
**Код docker-compose.yml:**
`version: '3'`
`services:`
`mediawiki:`
`image: mediawiki #образ, с помощью которого разворачивается контейнер mediawiki`
`restart: always`
`ports: #порт хоста и виртуалки`
`- 80:80`
`links: #зависимости от других сервисов`
`- database`
`volumes:`
`- images:/var/www/html/images`
`database:`
`image: mariadb #образ, с помощью которого разворачивается БД`
`restart: always`
`environment: #настройка переменных окржения`
`MYSQL_DATABASE: my_wiki`
`MYSQL_USER: wikiuser`
`MYSQL_PASSWORD: example`
`MYSQL_RANDOM_ROOT_PASSWORD: 'yes'`
`volumes:`
`- db:/var/lib/mysql`
`volumes: #описание вольюмов`
`images:`
`db:`
**Принцип работы:**
Скачиваем образ image: mediawiki, с помощью которого разворачивается контейнер mediawiki
В "ports" указывается локальный хост 80 и хост виртуальной машины 80
С помощью настройки links указываем зависимости от других сервисов
Образ image: mariadb разворачивает контейнер database с БД
Настройка переменных окружения настривается в "environment":
-Название БД
-Пользователь MediaWiki
-Используемый пароль при подключении к БД
Скришот работы сервиса wordpress:
![Alt text](images/image-6.png)
Подключение к БД:
![Alt text](images/image-8.png)
Запускаем MediaWiki:
![Alt text](images/image-9.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

View File

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