Диплом: Разработка и апробация макетного варианта программно-аппаратного комплекса для обеспечения высокой доступности веб-приложений

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
2
Содержание
Введение ............................................................................................................................. 4
Глава 1. Методы и средства повышения доступности веб-приложений ..................... 6
1.1 Определение и количественная оценка доступности ........................................... 6
1.2 Аппаратные решения для создания аппаратно-программного комплекса ........ 9
1.3 Программные методы повышения доступности веб-приложений ................... 13
1.4 Кластеризация серверов ........................................................................................ 14
1.5 Программные продукты для построения кластеров под веб-приложения ...... 16
1.5.1 Microsoft Network Load Balancing .................................................................. 17
1.5.2 Oracle Solaris Cluster ........................................................................................ 18
1.5.3 «1С-Битрикс: Веб-кластер» ............................................................................ 19
1.5.4 Свободное программное обеспечение для кластеризации серверов .......... 19
Выводы по главе 1 ........................................................................................................... 20
Глава 2. Разработка требований и обоснование выбора программных средств
реализации ........................................................................................................................ 21
2.1 Разработка требований к программно-аппаратному комплексу для
обеспечения высокой доступности веб-приложений ............................................... 21
2.1.1 Общие требования ........................................................................................... 22
2.1.2 Функциональные требования ......................................................................... 22
2.1.3 Требования к надежности ............................................................................... 23
2.1.4 Требования к масштабируемости .................................................................. 24
2.2 Программные средства реализации ..................................................................... 24
2.2.1 Операционная система CentOS ...................................................................... 25
2.2.2 Средство резервирования узлов первого перехода Keepalived ................... 26
2.2.3 Балансировщик нагрузки HAProxy ................................................................ 26
2.2.4 Веб-сервер Apache ........................................................................................... 27
2.2.5 Обратный прокси-сервер nginx ...................................................................... 29
2.2.6 Распределенная файловая система GlusterFS ............................................... 29
2.2.7 Кластерная система управления базами данных Percona XtraDB Cluster .. 30
Выводы по главе 2 ........................................................................................................... 31
Глава 3. Создание и тестирование макетного варианта программно-аппаратного
комплекса ......................................................................................................................... 33
3.1 Принципы работы кластера .................................................................................. 33
3.2 Оценка надежности аппаратных средств ............................................................ 36
3
3.3 Варианты масштабирования системы .................................................................. 39
3.4 Результаты нагрузочного тестирования .............................................................. 41
Выводы по главе 3 ........................................................................................................... 42
Глава 4. Организационно-экономическая часть ........................................................... 44
4.1 Характеристика программно-аппаратного комплекса для обеспечения
высокой доступности веб-приложений ..................................................................... 44
4.1.1 Назначение и основные характеристики ....................................................... 44
4.1.2 Группа конечных потребителей ..................................................................... 45
4.1.3 Требования потенциальных потребителей ................................................... 45
4.1.4 Продукты-конкуренты .................................................................................... 45
4.1.5 Определение емкости рынка и потенциального уровня продаж ................ 46
4.4 Определение показателей экономической эффективности использования
разработанного программно-аппаратного комплекса .............................................. 59
4.4.1 Выявление факторов, определяющих эффективность использования
системы ...................................................................................................................... 59
4.4.2 Определение показателей экономической эффективности ......................... 59
4.4.3 Определение нормы дисконта ........................................................................ 60
4.4.4 Срок окупаемости продукта ........................................................................... 61
Выводы по главе 4 ........................................................................................................ 61
Глава 5. Обеспечение безопасных условий труда на рабочем месте администратора
программно-аппаратного комплекса для обеспечения высокой доступности веб-
приложений ...................................................................................................................... 63
5.1 Выявление опасных и вредных производственных факторов........................... 63
5.2 Подготовка комплекса мероприятий по обеспечению безопасности и
комфортных условий труда ......................................................................................... 64
Выводы по главе 5 ........................................................................................................ 72
Заключение ....................................................................................................................... 73
Список использованных источников............................................................................. 74
Приложение А .................................................................................................................. 77
Приложение Б .................................................................................................................. 78
Приложение В .................................................................................................................. 79
4
Введение
Высокая доступность веб-приложений является одним из ключевых
факторов успешности компаний, бизнес-модели которых полностью
основаны на работе в сети Интернет. Прекращение функционирования веб-
приложения означает для интернет-компании остановку бизнес-процесса,
влекущую за собой снижение конкурентоспособности, потерю клиентов и
уменьшение прибыли. Поэтому для интернет-компаний крайне важно, чтобы
их веб-приложения функционировали с высоким уровнем доступности, то
есть фактически беспрерывно. Поддержание доступности веб-приложений на
высоком уровне невозможно без использования специальных
отказоустойчивых систем. Множество крупных компаний, таких как
Microsoft, Oracle, IBM, Sun уже давно предоставляют готовые решения для
повышения доступности веб-приложений, однако их функциональность
зачастую избыточна, а стоимость очень высока. В связи с этим особую
актуальность сегодня приобретает задача разработки системы для
обеспечения высокой доступности веб-приложений с использованием
свободного программного обеспечения.
Целью исследования является повышение доступности веб-
приложений за счет использования разрабатываемого программно-
аппаратного комплекса в качестве инфраструктуры для веб-приложений.
Объектом исследования является программно-аппаратный комплекс
для обеспечения высокой доступности веб-приложений, а предметами
надежность и производительность этого комплекса.
Для достижения поставленной цели предполагается решить ряд задач:
изучить существующие методы и средства повышения
доступности веб-приложений;
разработать требования к программно-аппаратному комплексу
для обеспечения высокой доступности веб-приложений;
дать обоснование выбора программных средств реализации;
5
разработать и апробировать макетный вариант программно-
аппаратного комплекса для обеспечения высокой доступности
веб-приложений;
провести сравнительное нагрузочное тестирование макетного
варианта комплекса и некластеризованной системы.
Для выполнения работы были использованы следующие методы
исследования: системный анализ, сравнительный анализ, натурное
моделирование.
6
Глава 1. Методы и средства повышения доступности веб-приложений
1.1 Определение и количественная оценка доступности
Доступность является одной из важнейших характеристик,
определяющих качество функционирования любого ИТ-сервиса. В
соответствии со стандартом ГОСТ Р ИСО/МЭК 20000-1-2013
(Информационная технология (ИТ). Управление услугами. Часть 1.
Требования к системе управления услугами), доступность ‒ это способность
услуги или компонента услуги выполнять требуемые функции в
определенный момент или в течение определенного промежутка времени [1].
При рассмотрении веб-приложения как компонента ИТ-услуги доступность
веб-приложения означает, что пользователям гарантируется возможность
работы с веб-приложением на протяжении определенного периода времени.
Если такая возможность отсутствует, то приложение считается недоступным.
Выделяется плановая и внеплановая недоступность. Плановая
недоступность связана с проведением технического обслуживания,
примерами которого могут служить модернизация аппаратной части или
обновление программного обеспечения. Внеплановая недоступность
возникает из-за непредвиденных отказов и сбоев в аппаратном или
программном обеспечении. В качестве примеров можно привести выход из
строя центрального процессора или дискового устройства, некорректную
работу оперативной памяти.
Выделяются три базовых уровня доступности [6, c. 16]:
высокая доступность;
непрерывный режим работы;
постоянная доступность.
Высокая доступность предполагает, что приложение доступно в
определенные дни и часы без незапланированных простоев, а о
запланированных простоях пользователям объявляется заранее. При
непрерывном режиме работы приложение должно быть доступно в режиме
24/7 без запланированных простоев. Постоянная доступность подразумевает
7
доступность приложения в режиме 24/7 без запланированных и
незапланированных простоев.
Стоимость разработки и эксплуатации системы, обслуживающей
приложение, напрямую зависит от требуемого уровня доступности. Высокая
стоимость таких систем обусловлена, во-первых, избыточностью аппаратных
компонентов и, во-вторых, необходимостью использования
специализированного программного обеспечения. Эти средства позволяют
защитить систему от сбоев и легко восстановить в случае полного или
частичного отказа.
Доступность, как правило, выражается отношением или процентом
времени, в течение которого услуга или компонент услуги действительно
доступны для использования по отношению к согласованному времени
доступности [1]. Для определения доступностинеобходимо знать
суммарное время простоев 
и согласованное время доступности
. Тогда
доступность можно вычислить по формуле [6, c. 17]:


  (1.1)
Например, если гарантируется постоянная доступность в течение 30
календарных дней, а суммарное время простоев за этот период составило 40
минут, то фактическая доступность равна 99,9%.
Необходимо подчеркнуть, что доступность чаще всего определяется с
позиции пользователя, а не доказательством работоспособности самого
приложения [7, c. 9]. Приложение может стабильно работать, но в то же
время может быть недоступным для одного из конечных пользователей, к
примеру, из-за обрыва в телекоммуникационной сети. Таким образом, при
разработке требований к доступности необходимо четко определять при
каких условиях она гарантируется. Это крайне необходимо, если часть
цепочки от клиента до сервера, обслуживающего приложение, попадает в
зону ответственности третьих лиц.
Максимальное время простоя определятся исходя из требований к
доступности. Оно, как правило, устанавливается в соглашении об уровне
8
сервиса и может составлять от нескольких минут до нескольких часов в год.
В следующей таблице приведено максимальное время простоя для каждого
класса доступности, определяемого количеством девяток в численном
значении доступности. При расчетах использовался 365-дневный год и 30-
дневный месяц.
Таблица 1.1.
Классы доступности
Время
недоступности в
год
Время
недоступности в
месяц
Время
недоступности в
неделю
36 дней и
12 часов
72 часа
16 часов и
48 минут
3 дня, 15 часов и
36 минут
7 часов и
12 минут
1 час, 40 минут и
48 секунд
8 часов, 45 минут
и 36 секунд
43 минуты и
12 секунд
10 минут и
5 секунд
52 минуты и 34
секунды
4 минуты и 19
секунд
1 минута
5 минут и 15
секунд
26 секунд
6 секунд
31,5 секунд
2,6 секунд
0,6 секунды
Согласно ITIL v.3 доступность определяется рядом показателей:
надежность;
сопровождаемость;
обслуживаемость;
производительность;
9
безопасность.
Причем данные показатели могут варьироваться на четырех иерархических
уровнях:
приложение;
системное программное обеспечение;
аппаратная платформа;
инженерное обеспечение.
Ввиду невозможности охвата в рамках дипломного проекта всех
перечисленных аспектов, доступность веб-приложений будет повышаться за
счет увеличения надежности и производительности, предоставляемой им
инфраструктуры. Вопросы, связанные с инженерным обеспечением, также не
будут рассматриваться по той же причине и предполагается, что площадка
для размещения серверов соответствует уровню не ниже Tier 3.
1.2 Аппаратные решения для создания аппаратно-программного
комплекса
Серверы промышленного класса часто комплектуются дублирующими
элементами, позволяющими обеспечить высокий уровень надежности. Для
этого создаются специальные решения, которые практически не встречаются
в персональных компьютерах [4, с. 58]:
резервирование процессоров, оперативной памяти, контроллеров
дисков;
использование оперативной памяти с повышенной устойчивостью к
сбоям;
обеспечение возможности горячей замены и горячего
резервирования;
использование RAID-массивов;
дублирование блоков питания и элементов систем охлаждения;
встраивание систем аппаратного мониторинга.
Аппаратное резервирование является одним из самых
распространенных способов повышения надежности. Его применение
10
предусматривает использование нескольких идентичных или однородных
элементов [8, с. 144].
Резервирование процессоров и оперативной памяти необходимо в
первую очередь, так как при их отказе целиком перестает работать сервер.
Сложность резервирования этих элементов состоит в том, что во время
переключения резервный элемент должен иметь внутреннее состояние,
идентичное состоянию основного [11]. Данное обстоятельство приводит к
необходимости разработки сложных способов синхронизации, что сильно
сказывается на стоимости конечного продукта. На практике вместо
процессорных модулей и планок памяти предпочитают резервировать
серверы целиком.
Для повышения надежности хранения информации в оперативной
памяти могут быть использованы планки с поддержкой кодов коррекции
ошибок, которые могут обнаружить и исправить повреждения данных, не
прерывая работы сервера. Самым распространенным
самоконтролирующимся и самокорректирующимся кодом является код
Хэмминга, позволяющий исправлять однократные и обнаруживать
двукратные ошибки. Но существуют и более эффективные технологии, такие
как Chipkill и Advanced ECC, которые позволяют исправить несколько
битовых ошибок, включая потерю всего чипа памяти [4, с. 70].
Возможность замены части оборудования во время работы системы без
полного выключения электропитания позволяет исключить ряд простоев,
возникающих при плановом обслуживании. Компьютеры,
предусматривающие горячую замену, должны содержать электрические
цепи, которые нечувствительны к перепадам напряжения при подключении и
отключении устройств[4, с. 69]. Помимо этого, программное обеспечение
должно адекватно реагировать на непредвиденное отключение устройства.
Некоторые способы горячей замены требуют предварительного выполнения
команды на отключение, что упрощает их реализацию, но угрожает
целостности данных, если устройство не будет отсоединено правильно.
11
Технология горячего резервирования подразумевает, что резервный элемент
заранее подключен к системе и автоматически заменяет элемент, вышедший
из строя. Использование горячей замены вкупе с горячим резервом позволяет
минимизировать влияние аппаратных отказов.
Технология RAID позволяет повысить надежность хранения данных во
внешней памяти и ускорить работу дисковой подсистемы [4, c. 84]. Из
нескольких накопителей создается одно логическое хранилище, которое
управляется специальным контроллером или программой. Высокое
быстродействие обеспечивается за счет параллельного выполнения операций
ввода-вывода на разных накопителях, а повышение надежности достигается
путем вычисления контрольных сумм или же дублирования. Необходимо
обратить внимание на то, что использование RAID-массивов защищает от
потери данных при физическом отказе накопителей, а не случайной
модификации хранимой информации. Существует множество как базовых,
так и комбинированных уровней RAID-массивов, каждый из которых
обладает собственными характеристиками скорости, надежности и
экономичности.
Базовые уровни RAID [4, c. 86-88]:
RAID 0 массив повышенной производительности без
отказоустойчивости;
RAID 1 зеркальный массив;
RAID 2 массив, в котором применяются коды Хемминга;
RAID 3 и 4 массивы с чередованием и “выделенным” диском
четности;
RAID 5 массив с чередованием и “невыделенным” диском
четности;
RAID 6 массив с чередованием, использующий две контрольные
суммы, вычисляемые двумя независимыми способами.
Комбинированные уровни RAID [4, c. 88-100]:
RAID 10 массив RAID 0, построенный из массивов RAID 1;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран