add: 8 лабораторная работа
This commit is contained in:
parent
5dd9e26f07
commit
1b6470a2ab
30
balakhonov_danila_lab_8/README.md
Normal file
30
balakhonov_danila_lab_8/README.md
Normal file
@ -0,0 +1,30 @@
|
||||
# Лабораторная работа номер 8
|
||||
|
||||
> Здравствуйте меня зовут Балахонов Данила группа ПИбд-42
|
||||
>
|
||||
> *— Балахонов Данила ПИбд-42*
|
||||
|
||||
# Вопросы лабораторной работы номер 8
|
||||
## Зачем сложные системы (например, социальная сеть ВКонтакте) пишутся в "распределенном" стиле, где каждое отдельное приложение (или сервис) функционально выполняет только ограниченный спектр задач?
|
||||
Данная архитектура является микросервисной. Преимущств микросервисной архитектуры перед монолитной достаточно много:
|
||||
- Независимось. Разработка микросервисов может быть отдана отдельной независимой команде.
|
||||
- Отказоустойчивость. Микросервисы - атомарные единицы системы. Если какой-то сервис перестанет работать, остальной функционал системы будет функционировать дальше.
|
||||
- Гибкая масштабируемость. Если оказалось, что какой-то функционал используется чаще остальных, можно произвести горизонатльное масштабировнаие конкретного сервиса, увеличив тем самым его производительность. В случае монолитных систем горизонтальное масштабироване приведет к непотимальному распределению ресурсов.
|
||||
- У каждого микросервиса может быть разный стек технологий. Таким образом можно подбирать наилучшие для данной задачи технологии, повысив тем самым эффективность сервиса.
|
||||
- Упрощение экспериментирование и тестирование отдельной функциональности.
|
||||
## Для чего были созданы системы оркестрации приложений? Каким образом они упрощают / усложняют разработку и сопровождение распределенных систем?
|
||||
Системы оркестрации приложений были созданы для управления множеством сервисов. Это единый центр, который словно "дирижер" управляет "оркестром", достигая тем самым единую для всех цель.
|
||||
|
||||
Благодаря оркестрации можно:
|
||||
- Автоматизировать многие ручные задачи, что уменьшает вероятность ошибок и ускоряет процесс разработки.
|
||||
- УПростить развертывание системы.
|
||||
- Автоматически распределять нагрузку между сервисами.
|
||||
- Автоматически переключать в случае поломки сервисов на резервные.
|
||||
|
||||
Однако вместе с этим разработчики становятся зависимыми от конкретной системы оркестрации, из-за дополнительной абстракции повышается сложность системы, сложность настройки.
|
||||
## Для чего нужны очереди обработки сообщений и что может подразумеваться под сообщениями?
|
||||
Сообщение - это единица данных, которая используется для коммуникации между сервисами. Очереди обработки сообщений являются посредниками между сервисами, хранящими сообщения. Помимо обычного хранения они могут также журналировать изменения, гарантировать доставку сообщений до сервиса, облегчить нагрузку на систему. Благодаря Очередям обработки сообщений гораздо проще проводить горизонтальное масштабирование.
|
||||
## Какие преимущества и недостатки распределенных приложений существуют на Ваш взгляд?
|
||||
Преимущества распределнных приложений были описаны выше. Главным и серьезным недостатком является большая сложность системы, ее разработки. Множество абстракций, усложнение коммуникации между функционалом при слабом повышении производительности (или вовсе ухудшении из-за сложности) приводят к выводу о нецелесообразности использования такого подхода для малых систем. Вся сила такого подхода раскрывается именно при разработке высоконагруженных, сложных систем, где может постоянно добавляться, изменяться функционал.
|
||||
## Целесообразно ли в сложную распределенную систему внедрять параллельные вычисления? Приведите примеры, когда это действительно нужно, а когда нет.
|
||||
Вместе с параллельными вычеслениями необходимо также прорабатывать их менеджмент. Это дополнительно усложняет систему. Параллельные вычисления могут применяться, когда нужно выполнить сложную вычислительную задачу быстро и эффективно, при наличии многоядерных процессоров или кластеров компьютеров, для обработки больших объемов данных параллельно, или в системах с высокой нагрузкой и требующими быстрого ответа. Параллельные вычисления не стоит использовать, когда есть ограничения ресурсов компьютера, для простых операций на небольших объемах или в системах с низкой нагрузкой.
|
Loading…
Reference in New Issue
Block a user