1 of 17

Програмування та підтримка �веб-застосувань

Monitoring and scalability

2 of 17

Monitoring and scalability�Monitoring

Аналіз навантажень на сервер:

  • процесор

навантаження не вище 20%

  • пам'ять

без файлу підкачки

  • дисковий простір

не менше 10% вільного місця

  • мережевий інтерфейс

не менше 10% запасу

3 of 17

Monitoring and scalability�Monitoring

  • статусний моніторинг

monit (mmonit.com)

Nagios (nagios.org)

  • моніторинг тенденцій

collectd (collectd.org)

Cacti (cacti.net)

  • бізнес-метрики

Google Analytics (google.com/analytics)

Яндекс Метрика (metrika.yandex.ua)

4 of 17

Monitoring and scalability�Cтатусний моніторинг

  • monit (mmonit.com)

5 of 17

Monitoring and scalability�Cтатусний моніторинг

  • Nagios (nagios.org)

6 of 17

Monitoring and scalability�Моніторинг тенденцій

  • Cacti (cacti.net)

7 of 17

Monitoring and scalability�Бізнес-метрики

  • Google Analytics (google.com/analytics)

8 of 17

Monitoring and scalability�Принципи розробки

  • Динаміка
  • Поступовий ріст
  • Прості рішення
  • Прогресивні зміни

9 of 17

Monitoring and scalability�Масштабування

  • Аналіз завантаження
  • Визначення критичних участків
  • Винесення критичних участків в окремі вузли та їх оптимізація
  • п.1

10 of 17

Monitoring and scalability�Початкова архітектура

Client

Web

App

DB

11 of 17

Monitoring and scalability�Відокремлення сервера БД

Client

Web

App

DB

Client

Client

12 of 17

Monitoring and scalability�Відокремлення веб-сервера

Web

App

DB

Client

Client

Client

Client

Client

Client

13 of 17

Monitoring and scalability�Декілька серверів застосувань

Web

App

DB

Client

Client

Client

Client

Client

Client

App

App

Client

Client

Client

14 of 17

Monitoring and scalability�Єдине сховище сесій

Web

DB

Client

Client

Client

Client

Client

Client

App

App

App

Client

Client

Client

Cache

(memcache)

Client

Client

Client

15 of 17

Monitoring and scalability�Сервер черги задач

Web

DB

Client

Client

Client

Client

Client

Client

App

App

App

Cache

(memcache)

Client

Client

Client

Client

Client

Client

Gearman

Client

Client

Client

Client

Client

Client

Gearman worker

Gearman worker

Gearman worker

16 of 17

Monitoring and scalability�Балансування DNS

Client

Client

Client

Client

Client

Client

DB

Client

Client

Client

Client

Client

Client

App

App

App

Cache

(memcache)

Client

Client

Client

Client

Client

Client

Client

Client

Client

Client

Client

Client

Gearman

Gearman worker

Gearman worker

Gearman worker

Web

Web

Web

Client

Client

Client

Client

Client

Client

DNS round robin

17 of 17

Monitoring and scalability�Data center