SlideShare una empresa de Scribd logo
1 de 17
Highload: проблемы и решения
    Что нужно знать, приступая к новому проекту?




Ufa Developer Community. Олег Шерыхалин, o.sherykhalin@gmail.com
Что такое highload?
  10 запросов в секунду — это highload?
  20 запросов?..
  100?!

     Highload — это когда система
     не справляется с нагрузкой :)

  Признаки проблемы:
  увеличение времени обслуживания
  отказ обслуживания
Кривая деградации сервиса
   обслуженные
   запросы

             зона Highload



                                     «падение»
                                      сервиса
            штатная
            работа

                         поступившие запросы
Highload приходит внезапно…
 Нагрузка растёт неравномерно. Возможные причины:
 суточная и календарная цикличность посещаемости
 внешние события (breaking news)
 эффект от рекламной кампании
 распродажи и акции, привлекающие посетителей

                зона Highload              Прогноз
 посещаемость




                                           посещаемости
                                           Фактическая
                                           посещаемость


                                   время
Узкие места

   Процессор
   Оперативная память
   Дисковая подсистема
   Сеть
Масштабируемость
 Вертикальная                 Горизонтальная




Улучшение                     Наращивание количества
характеристик, «расширение»   компонентов системы,
«узкого места»,               добавление оборудования
апгрейд оборудования
Процессор: что внутри? Потоки.
Синхронная модель
Каждый запрос запускается в отдельном потоке
Количество потоков ограничено (пул потоков)
Ожидающие ресурс потоки могут заполнить весь пул
Пример: Apache, IIS

Асинхронная модель
Один поток (на каждое ядро процессора)
Диспетчер следит за событиями и вызывает обработчики
Количество обработчиков зависит от производительности
Пример: NginX, node.js
Кэширование данных
 Задача: разгрузить дисковую подсистему и процессор
 Решение: переместить данные в оперативную память
 Что кэшировать?
 частые выборки из базы
 динамические фрагменты html

 Как кэшировать?
 memcached

 Дополнительные решения:
 использование Content Delivery Network (CDN)
 кэширование данных на клиенте
Сборка HTML на клиенте
  база        шаблоны       база       шаблоны
 данных       страниц      данных      страниц




 Обработка    Подготовка   Обработка
  данных        HTML        данных


     сервер                   сервер

     клиент                   клиент
              Отображе-    Отображе-   Подготовка
                 ние          ние        HTML
Оптимизация баз данных
 Грамотное проектирование схемы
 Использование индексов
 Оптимизация SQL–запросов
 Настройка параметров СУБД
NoSQL — нереляционная модель
  Денормализация — это не баг, а фича
   Key–value хранилища:
   Redis, Cassandra
   Документо–ориентированные СУБД:
   MongoDB, CouchDB
   Главные преимущества:
   быстрый доступ к данным
   простота горизонтального масштабирования

Нельзя просто взять и заменить SQL на NoSQL!
Кластеризация web–серверов
  Распараллеливание, балансировка нагрузки



          Балансировщи
              к нагрузки




  web-             web-        web-
 сервер           сервер      сервер


  Проблема: поддержка сессий клиентов
  Решения: sessionless, хранение сессий в
  БД, интеллектуальный балансировщик
Кластеризация баз данных
Репликация master-slave                Репликация master-master
             write
read         only               read   read                          read
only                            only   write                         write



              replication                              replication

Шардинг — разделение данных на независимые объекты
          read                read             read
          write               write            write

       Object A             Object B      Object C
«Облачные» решения
 Ресурсы по требованию: подключаем дополнительные
 мощности только на время пиковой нагрузки

 Пример: Amazon Web Services (AWS)
 Elastic Load Balancing — балансировка
 CloudWatch — мониторинг
 Auto Scaling — добавление серверов



                                         Иллюстрация из статьи
                                         «Архитектура Битрикс24
                                         — взгляд изнутри»
                                         , habrahabr.ru, 26.04.2012
Отказоустойчивость
 Риски отказов
 отказы серверов
 отказы каналов связи
 аварии датацентров

 Управляемая деградация
 «урезание» функционала ради сохранения
 доступности системы для пользователей

 Восстановление
 План восстановления в случае аварии
 Регулярные «учения» по восстановлению
 Контроль доступности резервных копий
Сетевые атаки
 Виды атак:
 ICMP/UDP/SYN/ACK-флуд
 Атаки на прикладном уровне

 Цели атак:
 Просто «положить» сайт на некоторое время
 Получить доступ к конфиденциальным данным
 Внедрить бота

 Способы защиты:
 Грамотная настройка ОС, серверов
 Использование fierewall, специальных модулей
 Услуги специализированных провайдеров
И это ещё не всё…
 Мониторинг

 Деплоймент

 Нагрузочное тестирование

Más contenido relacionado

La actualidad más candente

Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)Ontico
 
Распределённый кэш или хранилище данных. Что выбрать?
Распределённый кэш или хранилище данных. Что выбрать?Распределённый кэш или хранилище данных. Что выбрать?
Распределённый кэш или хранилище данных. Что выбрать?aragozin
 
Отказоустойчивые решения SQL
Отказоустойчивые решения SQLОтказоустойчивые решения SQL
Отказоустойчивые решения SQLAndrey Korshikov
 
Александр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.comАлександр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.comOntico
 
NoSQL - взрыв возможностей
NoSQL - взрыв возможностейNoSQL - взрыв возможностей
NoSQL - взрыв возможностейAleksey Solntsev
 
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"ActiveCloud
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Media Gorod
 
New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)Sergey Skvortsov
 
NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...Ontico
 
Поиск на своем сайте, обзор open source решений
Поиск на своем сайте, обзор open source решенийПоиск на своем сайте, обзор open source решений
Поиск на своем сайте, обзор open source решенийaragozin
 
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...Ontico
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
 
Высокая доступность web приложений. SHALB.com
Высокая доступность web приложений. SHALB.comВысокая доступность web приложений. SHALB.com
Высокая доступность web приложений. SHALB.comAlexandr Yatsuk
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...Ontico
 
Обзор Red Hat Directory Server и RHEL IdM
Обзор Red Hat Directory Server и RHEL IdMОбзор Red Hat Directory Server и RHEL IdM
Обзор Red Hat Directory Server и RHEL IdMAndrey Markelov
 
Оптимизация производительности среды VDI
Оптимизация производительности среды VDIОптимизация производительности среды VDI
Оптимизация производительности среды VDIKhamzet Shogenov
 
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдера
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдераHighLoad Junior '16 Как сравнить и выбрать хостинг-провайдера
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдераИгорь Мызгин
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцMikhail Tabunov
 

La actualidad más candente (20)

Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
 
Распределённый кэш или хранилище данных. Что выбрать?
Распределённый кэш или хранилище данных. Что выбрать?Распределённый кэш или хранилище данных. Что выбрать?
Распределённый кэш или хранилище данных. Что выбрать?
 
Отказоустойчивые решения SQL
Отказоустойчивые решения SQLОтказоустойчивые решения SQL
Отказоустойчивые решения SQL
 
Александр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.comАлександр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.com
 
No sql.mongodb scaling
No sql.mongodb scalingNo sql.mongodb scaling
No sql.mongodb scaling
 
NoSQL - взрыв возможностей
NoSQL - взрыв возможностейNoSQL - взрыв возможностей
NoSQL - взрыв возможностей
 
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169
 
New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)
 
NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...
 
DATA CLUSTER
DATA CLUSTERDATA CLUSTER
DATA CLUSTER
 
Поиск на своем сайте, обзор open source решений
Поиск на своем сайте, обзор open source решенийПоиск на своем сайте, обзор open source решений
Поиск на своем сайте, обзор open source решений
 
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
 
Высокая доступность web приложений. SHALB.com
Высокая доступность web приложений. SHALB.comВысокая доступность web приложений. SHALB.com
Высокая доступность web приложений. SHALB.com
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
 
Обзор Red Hat Directory Server и RHEL IdM
Обзор Red Hat Directory Server и RHEL IdMОбзор Red Hat Directory Server и RHEL IdM
Обзор Red Hat Directory Server и RHEL IdM
 
Оптимизация производительности среды VDI
Оптимизация производительности среды VDIОптимизация производительности среды VDI
Оптимизация производительности среды VDI
 
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдера
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдераHighLoad Junior '16 Как сравнить и выбрать хостинг-провайдера
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдера
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
 

Similar a Highload: проблемы и решения

Windows azure общий обзор
Windows azure общий обзорWindows azure общий обзор
Windows azure общий обзорMicrosoft
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоАлександр Ежов
 
Презентация технологии веб-кластеров
Презентация технологии веб-кластеров  Презентация технологии веб-кластеров
Презентация технологии веб-кластеров 1С-Битрикс
 
Windows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopWindows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopAlexey Bokov
 
Jelastic для разработчиков ПО
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПОDmitry Lazarenko
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...UNETA
 
Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureAlexander Feschenko
 
Костянтин Чаус — Monitoring of huge Drupal site. Tools and tips
Костянтин Чаус — Monitoring of huge Drupal site. Tools and tipsКостянтин Чаус — Monitoring of huge Drupal site. Tools and tips
Костянтин Чаус — Monitoring of huge Drupal site. Tools and tipsLEDC 2016
 
Облачные вычисления - игры кончились, началась работа
Облачные вычисления - игры кончились, началась работаОблачные вычисления - игры кончились, началась работа
Облачные вычисления - игры кончились, началась работаКРОК
 
Petrov Cloud for corporate customer
Petrov Cloud for corporate customerPetrov Cloud for corporate customer
Petrov Cloud for corporate customerAnton Petrov
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Ontico
 
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...it-people
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime Community
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime community
 
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Ontico
 
Drupal Highload - Klera Vilenskaya
Drupal Highload - Klera VilenskayaDrupal Highload - Klera Vilenskaya
Drupal Highload - Klera VilenskayaAlex Ilyin
 
Rybak Big Projects New
Rybak Big Projects NewRybak Big Projects New
Rybak Big Projects NewOntico
 
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...ForkConf
 

Similar a Highload: проблемы и решения (20)

Windows azure общий обзор
Windows azure общий обзорWindows azure общий обзор
Windows azure общий обзор
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 
Презентация технологии веб-кластеров
Презентация технологии веб-кластеров  Презентация технологии веб-кластеров
Презентация технологии веб-кластеров
 
Windows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopWindows Azure - BigData and Hadoop
Windows Azure - BigData and Hadoop
 
Jelastic для разработчиков ПО
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПО
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
 
Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows Azure
 
Костянтин Чаус — Monitoring of huge Drupal site. Tools and tips
Костянтин Чаус — Monitoring of huge Drupal site. Tools and tipsКостянтин Чаус — Monitoring of huge Drupal site. Tools and tips
Костянтин Чаус — Monitoring of huge Drupal site. Tools and tips
 
Облачные вычисления - игры кончились, началась работа
Облачные вычисления - игры кончились, началась работаОблачные вычисления - игры кончились, началась работа
Облачные вычисления - игры кончились, началась работа
 
Petrov Cloud for corporate customer
Petrov Cloud for corporate customerPetrov Cloud for corporate customer
Petrov Cloud for corporate customer
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
 
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
 
веб кластер
веб кластервеб кластер
веб кластер
 
Drupal Highload - Klera Vilenskaya
Drupal Highload - Klera VilenskayaDrupal Highload - Klera Vilenskaya
Drupal Highload - Klera Vilenskaya
 
Rybak Big Projects New
Rybak Big Projects NewRybak Big Projects New
Rybak Big Projects New
 
Azure for retails
Azure for retailsAzure for retails
Azure for retails
 
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
 

Highload: проблемы и решения

  • 1. Highload: проблемы и решения Что нужно знать, приступая к новому проекту? Ufa Developer Community. Олег Шерыхалин, o.sherykhalin@gmail.com
  • 2. Что такое highload? 10 запросов в секунду — это highload? 20 запросов?.. 100?! Highload — это когда система не справляется с нагрузкой :) Признаки проблемы: увеличение времени обслуживания отказ обслуживания
  • 3. Кривая деградации сервиса обслуженные запросы зона Highload «падение» сервиса штатная работа поступившие запросы
  • 4. Highload приходит внезапно… Нагрузка растёт неравномерно. Возможные причины: суточная и календарная цикличность посещаемости внешние события (breaking news) эффект от рекламной кампании распродажи и акции, привлекающие посетителей зона Highload Прогноз посещаемость посещаемости Фактическая посещаемость время
  • 5. Узкие места Процессор Оперативная память Дисковая подсистема Сеть
  • 6. Масштабируемость Вертикальная Горизонтальная Улучшение Наращивание количества характеристик, «расширение» компонентов системы, «узкого места», добавление оборудования апгрейд оборудования
  • 7. Процессор: что внутри? Потоки. Синхронная модель Каждый запрос запускается в отдельном потоке Количество потоков ограничено (пул потоков) Ожидающие ресурс потоки могут заполнить весь пул Пример: Apache, IIS Асинхронная модель Один поток (на каждое ядро процессора) Диспетчер следит за событиями и вызывает обработчики Количество обработчиков зависит от производительности Пример: NginX, node.js
  • 8. Кэширование данных Задача: разгрузить дисковую подсистему и процессор Решение: переместить данные в оперативную память Что кэшировать? частые выборки из базы динамические фрагменты html Как кэшировать? memcached Дополнительные решения: использование Content Delivery Network (CDN) кэширование данных на клиенте
  • 9. Сборка HTML на клиенте база шаблоны база шаблоны данных страниц данных страниц Обработка Подготовка Обработка данных HTML данных сервер сервер клиент клиент Отображе- Отображе- Подготовка ние ние HTML
  • 10. Оптимизация баз данных Грамотное проектирование схемы Использование индексов Оптимизация SQL–запросов Настройка параметров СУБД
  • 11. NoSQL — нереляционная модель Денормализация — это не баг, а фича Key–value хранилища: Redis, Cassandra Документо–ориентированные СУБД: MongoDB, CouchDB Главные преимущества: быстрый доступ к данным простота горизонтального масштабирования Нельзя просто взять и заменить SQL на NoSQL!
  • 12. Кластеризация web–серверов Распараллеливание, балансировка нагрузки Балансировщи к нагрузки web- web- web- сервер сервер сервер Проблема: поддержка сессий клиентов Решения: sessionless, хранение сессий в БД, интеллектуальный балансировщик
  • 13. Кластеризация баз данных Репликация master-slave Репликация master-master write read only read read read only only write write replication replication Шардинг — разделение данных на независимые объекты read read read write write write Object A Object B Object C
  • 14. «Облачные» решения Ресурсы по требованию: подключаем дополнительные мощности только на время пиковой нагрузки Пример: Amazon Web Services (AWS) Elastic Load Balancing — балансировка CloudWatch — мониторинг Auto Scaling — добавление серверов Иллюстрация из статьи «Архитектура Битрикс24 — взгляд изнутри» , habrahabr.ru, 26.04.2012
  • 15. Отказоустойчивость Риски отказов отказы серверов отказы каналов связи аварии датацентров Управляемая деградация «урезание» функционала ради сохранения доступности системы для пользователей Восстановление План восстановления в случае аварии Регулярные «учения» по восстановлению Контроль доступности резервных копий
  • 16. Сетевые атаки Виды атак: ICMP/UDP/SYN/ACK-флуд Атаки на прикладном уровне Цели атак: Просто «положить» сайт на некоторое время Получить доступ к конфиденциальным данным Внедрить бота Способы защиты: Грамотная настройка ОС, серверов Использование fierewall, специальных модулей Услуги специализированных провайдеров
  • 17. И это ещё не всё… Мониторинг Деплоймент Нагрузочное тестирование