Loading…
Transcript

Спасибо за внимание!

Вопросы?

Архитектура высоконагруженных

интернет-проектов

Репликация

Резервное

копирование

Запись

Чтение

Полное

Slave

Репликация

Master

&

Slave

Репликация

Инкрементальное

Чтение и запись

Slave

Master/Slave

Главное: куда-нибудь подальше

то есть обновление или обнуление кэша при изменение данных в СУБД

и регулярно!!!

Master/Slave

На отдельные сервера

Инвалидация!

Кассеты

хорошо работает только для чтения

NAS

Master

SAN

синхронная vs асинхронная

"В облака"

Плюс не забывать о безопасности

Master

Репликация

Master

целостность

производительность

Master/Master

Кэширование

Данные

squid, varnish

Готовый HTML

Переменные внутри кода

Объекты

Запросы к СУБД

Файловая система

memcached

SQL vs NoSQL

Разбиение данных

Dynomite

MongoDB

Firebird

SQLite

MySQL

Redis

BerkleyDB

PostgreSQL

CouchDB

Tokyo Cabinet

Voldemort

Оно же:

  • партиционирование
  • partitioning
  • шардинг
  • sharding

NoSQL

SQL

Hypertable

Cassandra

Riak

Membase

Sybase

MS Access

Terrastore

Иван

Блинков

MS SQL

IBM DB2

Oracle

HBase

Mnesia

MemcacheDB

По-простому hash%N

По кругу

Все равно

никто не использует

Горизонтальное

VS

Вертикальное

JOIN

С маршрутизатором

то есть пресловутую реляционность

Программная

nginx

DNS

F5

HAProxy

OSI

LVS

Cisco

CARP

Juniper

L1 Физический уровень

L2 Канальный уровень

L3 Сетевой уровень

L4 Транспортный уровень

L5 Сеансовый уровень

L6 Уровень представления

L7 Уровень приложения

Клиентская

оптимизация

Аппаратная

Балансировка

нагрузки

Основные приемы

1. CSS в <head />

2. JavaScript перед </body>

3. Селекторы работают справа на лево

4. Минификация (JSmin, CSStidy, YUI)

5. Бесконечный Expires + GET параметры

6. Отдельный домен для статики без cookies

7. Оптимизация размера изображений

8. Удаление пробелов и комментариев из HTML

9. CSS Sprites

10. data:URI + MHTML

И многие, многие другие...

Инструменты

YSlow! от Yahoo

Page Speed от Google

Примеры крупных

проектов

http://www.insight-it.ru/highload

контакте

Статистика:

Платформа:

Статистика:

Платформа:

Статистика:

Платформа:

  • 1358% рост аудитории за 2009г.
  • 175 млн. зарегистрированных пользователей
  • 460 тыс. регистраций в день
  • 50 -> 140 -> 177 млн. твитов в день
  • Рекорд: 6939 твитов в секунду
  • 25% трафика на сайт, остальное - API
  • 6 миллиардов запросов к API в день
  • 40 миллионов активных пользователей
  • 11 млрд. запросов в день
  • 200 млн. личных сообщений в день
  • Видеопоток достигает 160Гбит/с
  • Более 10 тыс. серверов
  • Каждый день из строя выходит 10 жестких дисков
  • 500 млн. активных пользователей
  • 200 млрд. просмотров страниц в месяц
  • 4 триллиона действий попадает в новостные ленты каждый день
  • 20 миллиардов фотографий в 4 разрешений
  • Десятки тысяч серверов, десятки гигабит трафика
  • Linux
  • Apache + mod_wsgi
  • Python + Django
  • memcached
  • PostgreSQL
  • HAProxy
  • Slony
  • heartbeat
  • Windows и openSUSE
  • Java, немного C/C++
  • GWT
  • Apache Tomcat
  • JBoss
  • LVS
  • Microsoft SQL Server
  • BerkleyDB
  • Apache Lucene
  • Apache + mod_proxy
  • Unicorn
  • Ruby + Ruby on Rails
  • Scala
  • FlockDB + MySQL
  • memcached
  • Kestrel
  • Cassandra
  • Scribe
  • Hadoop, HBase и Pig
  • Debian Linux
  • nginx
  • Apache + mod_php
  • PHP + XCache
  • memcached
  • MySQL
  • Собственная СУБД на С
  • node.js
  • ffmpeg
  • xfs
  • Linux
  • PHP c HipHop
  • memcached
  • MySQL
  • Thrift
  • Scribe
  • Hadoop, Hive, HBase
  • До 17 тыс. запрсоов в секунду
  • 250 млн. уник. посетителей в день
  • 500 тыс. сайтов
  • 15млн. зарегистрированных пользователей
  • 75 млн. комментариев

Вертикальное

  • До 2.8 млн. пользователей онлайн в часы пик
  • 7.5 млрд. запросов в день (до 150 тыс. в секунду)
  • 2400 серверов и СХД
  • Сетевой трафик до 32Гбит/с

Горизонтальное

Варианты

Комплексное решение

Общий хостинг

highload@insight-it.ru

Виртуальный хостинг:

  • VPS/VDS
  • "Облака"

+ CDN

  • кластеризация
  • балансировка нагрузки
  • отказоустойчивость
  • отсутствие ограничений по технологиям
  • тюнинг производительности
  • мониторинг и реанимация
  • резервное копирование
  • консультации по техническим вопросам

Аренда сервера

Размещение сервера

Комплексное решение

Масштабирование

Размещение

Волшебный алгоритм

вертикальная

vs

горизонтальная

  • Обнаружить самое слабое место в системе
  • Принять меры по его устранению
  • Перейти к следующему самому слабому месту

Если бы надо было сократить презентацию до 1 слайда, то это был бы этот

Интернет

Из чего состоит мониторинг?

Статика

http://www.insight-it.ru

1. Сбор данных

2. Получение метрик

3. Построение графиков

3. Уведомление о ЧП

4. Реакция

Кэш

Сайт

СУБД

Сайт

Кэш

Почта

СУБД

Почта

Статика

Интернет

Мониторинг

Статика

Сайт

Балансировщик

нагрузки

Кэш

и, отчасти, профайлинг

Сайт

СУБД

Почта

Кэш

Сайт

СУБД

Кэш

Почта

Чтение

СУБД

Запись

http://bit.ly/highload