Файл: ТЕХНОЛОГИЯ ПОСТРОЕНИЯ РАСПРЕДЕЛЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ В РФ.pdf
Добавлен: 16.05.2023
Просмотров: 396
Скачиваний: 3
СОДЕРЖАНИЕ
1. Теоретические аспекты использования распределенных информационных систем
1.1. Общая характеристика задач, решаемых с использованием распределенных информационных систем
1.2. Обзор средства работы с распределенными данными
1.3 Основные подходы к реализации распределенных баз данных
2.Аппаратная реализация распределенных вычислений
2.1 Преимущество кластерных вычисления в HPC
2.2 Классификация кластерных вычислений
2. Обработка двумерных массивов
Можно изменять размер кластера таким образом, чтобы было возможно добавление или удаление какого-либо из подготовленных контейнеров или приложений в данном кластере. В процессе изменения размера кластера в среде исполнения необходимо учитывать работу всех связанных фильтров и правил размещения.
Open Source-система Kubernetes, служащая для решения задач по управлению контейнерными кластерами появилась в результате разработок, накопленных Google в течение 10 лет эксплуатации Borg — технологии по изоляции процессов в виртуальной среде.
Технология Kubernetes в настоящее время считается «идеальной платформой» для оркестрации контейнеров. Она позволяет управлять кластерами виртуальных машин и Linux-контейнерами как единым целым, является лидером систем, рекомендуемых для внедрения для средних и крупных предприятий.
Назначение Kubernetes состоит в выстраивании эффективной системы распределения контейнеров по узлам кластеров в зависимости от параметров текущей нагрузки и существующих потребностей при работе сервисов. Система Kubernetes способна обслуживать одновременно большое количество хостов, запускать на них большое количество контейнеров Docker или Rocket, проводить отслеживание их состояния, осуществлять контроль совместной работы и репликаций, проводить масштабирование и балансировку параметров нагрузки.
Для платформы Kubernetes налажен трехмесячный цикл обновлений. Новые улучшения делаются в основном в направлении развития системы защиты, наращивания объемов используемых данных и масштабируемости.
Вторым крупным игроком на рынке систем по оркестрации контейнеров — является система Docker Swarm. Данное решение, разработанное в 2013 г., значительно упростило процесс развертывания полноценных виртуальных систем. По сути с данного момента стало возможным осуществлять объединять вместе большого количества вычислительных мощностей, осуществлять запуск тысяч изолированных друг от друга приложений, быстро выстраивая необходимую конфигурацию из виртуализованных прикладных систем
Технология контейнерной кластеризации Docker Swarm появилась немного позже и стала частью платформы Docker. С его помощью решаются задачи объединения Docker-хостов в общий виртуальный хост.
Docker Swarm является REST API-интерфейсом, совместимым с Docker API. Поэтому всем пользователями, ране активно использовавшим Docker-инструменты, стали доступны возможности работы с контейнерными кластерами под управлением Docker Swarm, даже посредством одновременного управления большим количеством Docker-контейнеров.
Технология Swarm интересна в первую очередь представителям малых и средних предприятий, объем запуска задач в которых не более 60 тыс. контейнеров и до 1500 нод. Благодаря автоматической совместимости с Docker использование Swarm интересно разработчикам как развитие данной бизнес-модели по наращиванию своего облачного присутствия. Большую помощь в развитии этого направления оказывает Microsoft Azure, которая предлагает поддержку Swarm.
Несмотря на то, что за Docker Swarm пока занимает более скромные позиции на рынке, чем Kubernetes, его поддержка со стороны корпоративного рынка достаточно весома. Для многих Swarm уже стал главным механизмом для выстраивания будущей облачной стратегии развития.
Третьим основным игроком на рынке кластеризации контейнеров является система Apache Mesos. Данная система является централизованной отказоустойчивой для управления кластерами, позволяющей объединять в группы отдельные узлы (Mesos Slaves) в соответствии с выставленными требованиями, позволяющая в дальнейшем обеспечивать им изоляцию от остальных ИТ-ресурсов и управление.
Суть работы системы Mesos является в определенной степени противоположной модели виртуализации. При традиционном подходе, который предусматривает дробление вычислительных сред, состоящих из множества физических машин, на их виртуальные аналоги с предоставлением для каждой своей квоты общих ресурсов ЦОДа, Mesos, наоборот, проводит объединение существующих объектов в единый виртуальный ресурс с формированием крупных кластеров и эффективной системы управления инфраструктурой серверов с выделением для каждого кластера индивидуального пула ресурсов.
Подходы Mesos позволяют значительно упрощать процедуры по развертыванию и управлению, проводить перемещение приложений, запущенных в контейнерах, с одного места на другое, быстро переходить в публичное облако.
2.3 Типы технологии контейнеров (Семейство решений)
Разработчиками Windows до недавнего времени предлагались следующие технологии виртуализации: виртуальные машины и виртуальные приложения Server App-V. Каждая из них имеет свою нишу использования, свои достоинства и недостатки. В настоящее время ассортимент расширился — в Windows Server 2016 включены контейнеры (Windows Server Containers). Главным отличием является то, что в системе предложены следующие виды контейнеров: контейнеры Windows и контейнеры Hyper-V. В TP3 были доступны только первые.
Контейнеры семейства Hyper-V обеспечивают дополнительные уровни изоляции с использованием Hyper-V. Для каждого из контейнеров выделяется собственное ядро и ресурсы памяти, изоляция осуществляется не ядром ОС, а гипервизором Hyper-V. В результате возможно достижение такого же уровня изоляции, как у виртуальных машин, при меньших затратах по сравнению с VM, но большей, по сравнению с контейнерами Windows. Для возможности использования такого типа контейнеров необходима установка на хосте роли Hyper-V. Контейнеры Windows по большей части подходят для применения в доверенных средах, например когда на серверах производится запуск приложений от одной организации. Когда сервер используется множеством компаний и необходимо обеспечивать больший уровень изоляции, использование контейнеров Hyper-V, вероятнее, будут более рациональным решением.
Важной особенностью контейнеров в Win 2016 является то, что выбор типа проводится не в момент создания, а в моменты деплоя. То есть запуск любого контейнера может производиться как Windows, и как Hyper-V.
В ОС Win 2016 за контейнеры отвечают абстракции Contаiner Management stack, реализующие все необходимые функции. При хранении применяется формат образа жесткого диска типа VHDX. Сохранение контейнеров, производится в образы в репозитории. Причем сохранение осуществляется не для полного набора данных, а только для отличий создаваемого образа от эталонного, и в момент запуска производится проецирование всех нужных данных в память. При управлении сетевым трафиком между контейнерами и физической сетью используется Virtual Switch.
В качестве ОС в контейнерах может использоваться Server Core или Nano Server. С помощью Server Core обеспечивается необходимый уровень совместимости с имеющимися приложениями. Nano Server представляет собой еще более урезанную версию для работы без мониторов, позволяющую проводить запуск сервера в минимально возможной конфигурации для работы с Hyper-V, ресурсами файлового сервера (SOFS) и облачными службами.
Докер — это открытая платформа для разработки, доставки и эксплуатации приложений. Docker разработан для более быстрого выкладывания ваших приложений. С помощью docker вы можете отделить ваше приложение от вашей инфраструктуры и обращаться с инфраструктурой как управляемым приложением. Docker помогает выкладывать ваш код быстрее, быстрее тестировать, быстрее выкладывать приложения и уменьшить время между написанием кода и запуска кода. Docker делает это с помощью легковесной платформы контейнерной виртуализации, используя процессы и утилиты, которые помогают управлять и выкладывать ваши приложения.
В своем ядре docker позволяет запускать практически любое приложение, безопасно изолированное в контейнере. Безопасная изоляция позволяет вам запускать на одном хосте много контейнеров одновременно. Легковесная природа контейнера, который запускается без дополнительной нагрузки гипервизора, позволяет вам добиваться больше от вашего железа.
Платформа и средства контейнерной виртуализации могут быть полезны в следующих случаях:
- упаковка приложения (а также используемых компонент) в docker контейнеры;
- раздача и доставка этих контейнеров командам для проведения разработки и тестирования;
- выкладывание данных контейнеров на продакшены, как в Data-центры так и в облака
Docker является системой управления контейнерами. Данная система позволяет проводить «упаковку» приложений или веб-сайтов со всем их окружением и зависимостями в контейнеры, которыми далее можно управлять, выполняя задачи: перенос на другой сервер, масштабирование, обновление.
Разработка системы Docker была проведена с помощью языка программирования Go. Система была выпущена в 2013 году. Первоначально Docker работал только с Linux-системами, однако в настоящий момент выпущены его версии для Windows и MacOS. Несмотря на то, что данное решение является относительно новым, оно уже широко применяется многими специалистами.
Одной из важных составляющих экосистемы Docker является Docker Hub, представляющий собой открытый репозиторий образов контейнеров, в котором можно найти большое количество ПО от официальных разработчиков. Для запуска WordPress с помощью Docker достаточно выполнить следующие команды:
docker run --name wp-mysql -e MYSQL_ROOT_PASSWORD=wpmsqlpsswd -d mysql:5.7
<вывод пропущен>
docker run --name my-wordpress --link wp-mysql:mysql -d -p 80:80 wordpress
Docker являются оптимальным решением для организации технологии разработки. Docker позволяет разработчикам использовать локальные контейнеры с приложениями и сервисами. Что в последствии позволяет интегрироваться с процессом постоянной интеграции и выкладывания (continuous integration and deployment workflow).
Например, если разработчики пишут код локально и делятся своим стеком разработки (набором docker образов) с коллегами. Когда они готовы, отравляют код и контейнеры на тестовую площадку и проводят запуск любых необходимых тестов. С тестовой площадки они могут оправить код и образы на продакшен.
Docker состоит из двух главных компонент:
- Docker: платформа виртуализации с открытым кодом;
- Docker Hub: наша платформа-как-сервис для распространения и управления docker контейнерами.
Docker использует клиент-серверную архитектуру. Docker клиенты общаются с агентом Docker, на который возлагается нагрузка по созданию, запуску, распределению контейнеров. Оба, клиент и сервер могут работать на одной системе, вы можете подключить клиент к удаленному демону docker. Клиент и сервер общаются посредством сокета или технологию RESTful API.
Docker-образ — это read-only шаблон. Например, образ может содержать операционку Ubuntu c Apache и приложением на ней. Образы используются для создания контейнеров. Docker позволяет легко создавать новые образы, обновлять существующие, или вы можете скачать образы созданные другими людьми. Образы — это компонента сборки docker-а.
Основная технология работы Docker включает [6]:
- скачивание образа ubuntu: docker проводит проверку наличия образа ubuntu на локальной машине, и от отсутствует, то проводится его скачивание с Docker Hub. Если образ присутствует, то система использует его для создания контейнера;
- создание контейнера: когда образ получен, docker использует его для создания контейнера;
- инициализация файловой системы и монтирование read-only уровня: контейнер создается в файловой системе и read-only уровень добавляется в образ;
- инициализация сети/моста: создается сетевой интерфейс, позволяющего docker-у общаться с хост машиной;
- Установка IP адреса: нахождение и задание адреса;
- Запуск указанного процесса: запуск приложения;
- Обработка и выдача выходных данных загруженного приложения: подключение и протоколирование стандартного входа, вывод и поток ошибок приложения, что бы было возможно отслеживание работы приложения.
Заключение
В настоящее время актуальным становится вопрос оптимизации вычислений, а также рационального распределения мощностей вычислительных ресурсов. С развитием телекоммуникационных систем появляются возможности создания распределенных вычислительных сетей, позволяющих максимально рационально распределять нагрузку между аппаратными ресурсами. Внедрение технологий распределенных информационных систем позволяет провести создание консолидированных информационных систем, каждая из компонент которой может быть представлена в различных форматах.
Реализовать данные задачи можно посредством перераспределения имеющихся аппаратных систем через использование виртуальных сред. Оптимизации вычислений можно достичь несколькими способами - через кластерные вычисления, использование контейнеров, а также систем виртуализации.