Мониторинг облачной инфраструктуры веб-приложения

Проблема управления инфраструктурой веб-приложения с микросервисной архитектурой. Тенденции к созданию программного обеспечения. Ключевые направления в разработке веб-приложений. Архитектура спроектированной системы мониторинга. Эффективность сервиса.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 10.12.2016
Размер файла 532,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Мониторинг облачной инфраструктуры веб-приложения

Чинков Михаил Юрьевич

Россия, г. Пенза

В статье рассматривается проблема управления инфраструктуры веб-приложения с микросервисной архитектурой, в котором используются облачные технологии, а также предлагается один из путей решения данной проблемы, реализованный на практике.

На сегодняшний день существует явная тенденция к созданию веб-приложений в разработке программного обеспечения. Веб-приложения являются наиболее доступным видом информационного сервиса в современном мире. Для доступа к сервису пользователю нужен лишь доступ в Интернет и веб-бразуер вне зависимости от устройства, операционной системы и программного окружения, которым он пользуется.

Отдельно в разработке веб-приложений просматриваются два ключевых направления, связанных друг с другом. Первым направлением является архитектура микросервисов, где приложение вместо одной машины используется несколько серверов, на каждой из которых работает отдельный сервис, имеющий узкую специализацию в обработке запросов. В свою очередь сервисы слабо связаны между собой. Это дает преимущество в отказоустойчивости и в масштабируемости сервиса. Вторым трендом является реализация инфраструктуры веб-приложения на базе провайдера облачных технологий. Это дает возможность использовать множество внешних сервисов в работе приложения, а также способствует быстрому старту проекта и минимизации первоначальных вложений в проект.

Однако данный подход в проектировании приложений несет в себе дополнительные сложности. Создавая несколько сервисов, гораздо сложнее управлять их состоянием, следить за поведением при увеличении/уменьшении нагрузки. Также необходимо следить за метриками подключаемых облачных сервисов, сравнивать с ожиданиями, строить дальнейшие планы на развитие программного продукта. Наиболее популярные облачные провайдеры представляют собственный интерфейс мониторинга, отслеживания метрик. Однако данный интерфейс не является гибким в настройке и едва ли подходит персональным нуждам инфраструктуры веб-приложения. Также необходимо регулярно проводить оценку качества работы сервиса, его техническую производительность и финансовую рентабельность.

Решением данной проблемы является проектирование полноценной системы мониторинга на базе открытого программного обеспечения. Данная система при обработке событий, происходящих в окружении сервисов, разбивается на несколько частей: запуск, измерения, обработка метрик, сбор метрик в единое хранилище и визуализация данных. Данная система является одним из решений мониторинга инфраструктуры. Полноценный контроль событий, реализуемый системой, помогает улучшить качество управления инфраструктурой. Также пропадает необходимость в приобретении программного обеспечения, так как все используемые компоненты являются open-source продуктами с открытым исходным кодом.

Данная система мониторинга была спроектирована в ходе практической деятельности, связанной с эксплуатацией облачной инфраструктуры, на которой работает веб-приложение. Целевой веб-сервис имеет трехзвенную архитектуру: балансировщик, осуществляющий обработку запросов и управлением уровнем нагрузок, сервер приложений, где сосредоточено управление основным интерфейсом и бизнес логикой, и сервер базы данных, в котором персистентно хранятся пользовательские данные, обрабатываемые и запрашиваемые основным приложением. Перед началом реализации перед системой стоял следующий перечень задач:

1) Мониторинг утилизации ресурсов (ЦПУ, ОЗУ, сетевой траффик, диски);

2) Отслеживание работы веб-приложения (измерение времени ответов на HTTP запросы);

3) Мониторинг работы базы данных;

4) Мониторинг работы облачных сервисов (в данном случае это были продукты Amazon Web Services - CDN, транскодер, балансировщик и т.д.);

5) Мониторинг работы внешних сервисов (например, сервис почтовой рассылки Sendgrid или сервис SMS-рассылки Twilio).

Данный перечень задач можно применить к большинству современных веб-приложений с поправкой на язык программирования, на котором реализовано приложение, а также на круг используемых внешних сервисов.

Спроектированная система мониторинга состоит из нескольких компонентов. На рисунке 1 показана архитектура системы мониторинга.

Рисунок 1. Архитектура спроектированной системы мониторинга

Ниже приведено описание компонентов архитектуры, работающей на серверах с операционной системой Ubuntu 16.04 (Linux-дистрибутив).

1. Источники данных. Источником данных в инфраструктуре веб-приложения является либо база данных, либо журнальные файлы веб-приложения, либо API-интерфейс к внешним сервисам. Основной задачей компонента является предоставление достоверной информации о состоянии сервиса и его окружения.

2. Программные скрипты. В данном компоненте описывается основная логика измерений системы, а также агрегирование полученных метрик. В данном случае этим занимается коллекция скриптов на языке Python, которая занимается запросом данных через подключенные модули, из парсингом и оптимизацией, а также записью полученных метрик в файлы.

3. Планировщик операционной системы. Роль планировщика играет утилита cron, встроенная во все дистрибутивы Linux. Cron запускает по настроенному расписанию программные скрипты, устанавливая необходимый временной интервал для генерирования метрик.

4. Файловая система метрик. Файловая система является простым способом временного хранения сгенерированных метрик на каждом из серверов инфраструктуры. На вход компонента принимаются метрики, полученные из выполнения скриптов. На выходе появляется процесс считывания информации для записи в общее хранилище метрик.

5. Zabbix-агенты. Zabbix - клиент-серверная система мониторинга, отвечающая за сбор и визуализацию данных инфраструктуры сервиса. Данным компонентом являются агенты Zabbix, работающие на каждом сервере и собирающие данные по сконфигурированным метрикам с файловой системы путем выполнения команды cat, встроенной в систему.

6. Zabbix-сервер. Сервер системы Zabbix является конечной точкой в архитектуре системы мониторинга. На сервере осуществляется запись метрик, собранных с агентов, в общее хранилище - базу данных MySQL, а также визуализацию данных посредством веб-интерфейса, доступного на любом клиентском веб-браузере. Именно на этом этапе происходит анализ состояния инфраструктуры и производительности веб-приложения.

Наиболее важным результатом реализации мониторинга инфраструктуры является отображение ключевых метрик сервиса, на основании которых можно оценить его работу и стадию развития. Реализовав данную систему мониторинга, мы фактически обеспечиваем контроль над качеством услуг сервиса. На рисунке 2 представлены результаты визуализации ключевых показателей эффективности сервиса, собранные из спроектированной системы мониторинга в единую панель.

Рисунок 2. Отображение ключевых метрик инфраструктуры веб-сервиса

программный мониторинг архитектура сервис

Таким образом, в рамках данного научного исследования были рассмотрены такие темы, как архитектура веб-приложения как популярного вектора развития информационных технологий, проблемы управления инфраструктурой сервиса и решение этих проблем посредством внедрения системы мониторинга, основанной на открытом программном обеспечении.

Список литературы

1. Limoncelli T. The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems, Volume 2 [Текст] // - 2015. - С. 331-365.

2. Немет Э., Снайдер Г., Хейн Т.Р., Уэйли Б. Unix и Linux. Руководство системного администратора [Текст] // Вильямс. - 2012. - С. 1157-1180.

3. Лутц М. Изучаем Python (5-е издание) [Текст] // Символ-Плюс. - 2011.

Размещено на Allbest.ru


Подобные документы

  • Мониторинг сервисов веб-приложения. Проблема отслеживания большого количества сервисов, поддерживающих работу веб-приложения, ее решение с помощью "Service discovery"-инструментов. Применение программного инструмента Consul как клиент-серверной системы.

    статья [184,4 K], добавлен 10.12.2016

  • Обзор существующих объектных архитектур. Архитектура программного обеспечения. Создание веб-сервиса "Библиотека", предоставляющего механизмы работы с данными на стороне клиентского приложения. WEB-сервис и трехуровневая архитектура в основе приложения.

    лабораторная работа [1,5 M], добавлен 16.06.2013

  • Особенности современной инфраструктуры веб-приложения как одного из трендов в области разработки программного обеспечения. Использование систем управления конфигурациями (Configuration Management) при эксплуатации IT-инфраструктуры на примере "Ansible".

    статья [238,7 K], добавлен 10.12.2016

  • Выбор и обоснование аппаратного обеспечения. Типы архитектуры веб-приложений. Шаблоны проектирования архитектуры приложения. Разработка инфологической модели базы данных. Подготовка к разработке приложения. Рассмотрение причин возникновения паттернов.

    дипломная работа [3,0 M], добавлен 27.11.2022

  • Принципы работы клавиатуры как физического устройства. Архитектура "интерактивных устройств ввода". Разработка программного приложения, выполняющего мониторинг активности пользователя на языке Borland Delphi 7. Назначение, функции и структура приложения.

    курсовая работа [376,9 K], добавлен 18.07.2014

  • Современное состояние рынка мобильных приложений. Основные подходы к разработке мобильных приложений. Обоснование выбора целевой группы потребителей приложения. Этапы проектирования и разработки мобильного приложения для операционной системы Android.

    курсовая работа [987,1 K], добавлен 27.06.2019

  • Тенденции ускорения цикла разработки: кодирование – тестирование – сборка – развертывание в разработке веб-приложений и программного обеспечения. Применение методологии "Continuous Integration" для автоматизированного выполнения сборки и развертывания.

    статья [183,2 K], добавлен 10.12.2016

  • Разработка приложений для смартфонов на ОС Android для сети аптек "Фармация". Архитектура операционной системы Android. Архитектура и реализация приложения. Его функциональность. Описание работы мобильного приложения. Расчет затрат на создание продукта.

    дипломная работа [1,6 M], добавлен 17.06.2017

  • Архитектура и история создания операционной системы Android. Язык программирования Java. Выбор средства для реализации Android приложения. Программная реализация Android приложения. Проведение тестирования разработанного программного обеспечения.

    курсовая работа [167,8 K], добавлен 18.01.2017

  • Практические аспекты использования прикладного программного обеспечения при разработке базы данных "Аудиторный фонд ГБОУ СПО "Старооскольский педагогический колледж". Системы управления базами данных. Описание и функциональные возможности приложения.

    курсовая работа [360,4 K], добавлен 07.10.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.