SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
Анатомия

веб-­‐сервиса
Андрей	
  Смирнов
О	
  чем	
  мы	
  будем	
  говорить?
• Введение	
  
• Сетевой	
  ввод-­‐вывод	
  
• Многозадачность	
  
• Драйвер	
  БД	
  
• Взаимодействие	
  
• Фреймворки
Backend
Чем	
  занят	
  backend?
• Склеивание	
  строк	
  
• Сетевой	
  ввод-­‐вывод
L1	
  cache	
  reference	
  

0.5	
  ns	
  
Main	
  memory	
  
reference

100	
  ns	
  
Read	
  1	
  MB	
  sequenRally	
  
from	
  network	
  

10,000,000	
  ns	
  
Read	
  1	
  MB	
  sequenRally	
  
from	
  disk

30,000,000	
  ns
Что	
  делает	
  backend
1. Принять	
  соединение	
  (обычно	
  от	
  proxy)	
  и	
  
распарсить	
  HTTP-­‐запрос	
  
2. Аутенфикация	
  
3. Авторизация	
  
4. Сессия
Что	
  делает	
  backend
5. Распарсить	
  URL,	
  routing	
  
6. Определение	
  формата	
  вывода,	
  rate	
  
limiting,	
  …	
  
7. Бизнес-­‐логика,	
  выполнение	
  запроса,	
  
кеширование	
  
8. Формирование	
  ответа,	
  шаблоны
Сетевой	
  ввод-­‐вывод
• Блокирующийся	
  
• Неблокирующийся	
  
• Асинхронный
UNIX	
  (POSIX)
• fd	
  -­‐	
  файловый	
  дескриптор	
  
• fd	
  =	
  socket()	
  
• listen(fd)/accept(fd)	
  
• read(fd,	
  buf)	
  
• write(fd,	
  buf)	
  
• close(fd)
Блокирующийся	
  

ввод-­‐вывод
• accept(fd)	
  -­‐	
  заблокируется,	
  пока	
  не	
  будет	
  
нового	
  входящего	
  соединения	
  
• read(fd,	
  buf)	
  -­‐	
  заблокируется,	
  пока	
  не	
  
прибудут	
  данные	
  в	
  сокет	
  
• write(fd,	
  buf)	
  -­‐	
  заблокируется,	
  пока	
  не	
  
освободится	
  место	
  в	
  буфере	
  TCP
Неблокирующийся	
  

ввод-­‐вывод
• Любая	
  операция	
  завершается	
  немедленно	
  
• Вместо	
  того,	
  чтобы	
  заблокироваться,	
  вызов	
  
возвращает	
  EAGAIN/EWOULDBLOCK
Опрос	
  готовности
• Нотификации:	
  
• level-­‐triggered	
  (состояние)	
  
• edge-­‐triggered	
  (изменение	
  состояния)	
  
• 	
  Механизмы:	
  
• select(),	
  poll()	
  
• epoll(),	
  kqueue()
Неблокирующий

ввод-­‐вывод
• select(fds,	
  Rmeout)	
  ⇛	
  ready	
  to	
  read/write	
  
• do	
  read/write	
  unRl	
  EAGAIN
Многозадачность
• Обслуживание	
  нескольких	
  клиентов	
  
одновременно	
  
• Цель:	
  минимизировать	
  время	
  отклика	
  при	
  
условии	
  максимальной	
  нагрузки	
  
Процессы
• Полная*	
  изоляция	
  
• Видимость	
  для	
  планировщика	
  ОС	
  
• Сложность	
  коммуникации	
  
• Использование	
  всех	
  процессоров
Процессы
code
r/o
data
heap
code
r/o
data
heap
fork()
listen() accept()
SHM
Нити	
  (ОС)
• Видны	
  планировщику	
  
• Имеют	
  отдельный	
  стек	
  и	
  TLS	
  
• Более	
  легковесные,	
  чем	
  процесс	
  
• Отсутствует	
  изоляция	
  
• Сложность	
  написания	
  корректных	
  программ
Синхронизация
• Любой	
  доступ	
  к	
  общим	
  данным	
  должен	
  
быть	
  синхронизирован	
  
• Атомарные	
  операции	
  (без	
  синхронизации)	
  
• GIL
Deadlock
Worker
Event	
  Loop
Кооперативная	
  
многозадачность
• “Невидима”	
  для	
  ОС,	
  один	
  процесс	
  (нить)	
  
• “Поток”	
  добровольно	
  передает	
  управление	
  
другому	
  (проще	
  синхронизация)	
  
• Явная:	
  callbackи	
  
• Неявная:	
  green	
  threads
Реактор
• “Дай	
  мне	
  кучу	
  сокетов,	
  а	
  я	
  сделаю	
  callback,	
  
когда	
  они	
  будут	
  готовы”	
  
• Таймер:	
  “Вызови	
  меня	
  через	
  X	
  мс”
node.js
var net = require('net');
var client = net.connect({port: 8124},
function() { //'connect' listener
console.log('client connected');
client.write('world!rn');
});
client.on('data', function(data) {
console.log(data.toString());
client.end();
});
client.on('end', function() {
console.log('client disconnected');
});
gevent
def print_head(url):!
print('Starting %s' % url)!
data = urlopen(url).read()!
print('%s: %s bytes: %r' % (url, len(data), data[:50]))!
!
jobs = [gevent.spawn(print_head, url) for url in urls]!
!
gevent.wait(jobs)!
Комбинированные	
  варианты
• 1:1	
  
• N:1	
  
• M:N
Драйвер	
  “БД”
• База	
  данных	
  
• Очередь	
  
• K-­‐V	
  хранилище	
  
• Другой	
  сервис	
  
• …
Соединение
• Соединение:	
  
• на	
  один	
  запрос	
  
• постоянное
TCP!
connect
Auth Send query Wait Result
Send query Wait Result Send query Wait Result
Disconnect
Pipelining
• Pipelining	
  запросов
Send query Wait Result Send query Wait Result
Send query Send query Result Result
Соединения
• Кол-­‐во	
  соединений:	
  
• одно	
  
• connecRon	
  pool	
  
• по	
  количеству	
  запросов
Proxy
Взаимодействие
• Очереди	
  
• вычислительно	
  сложные	
  задачи	
  
• асинхронные	
  действия	
  
• Архитектурное	
  деление	
  на	
  компоненты	
  
• Обращения	
  к	
  другим	
  сервисам
Очередь	
  задач
Очереди
• Publish-­‐Subcribe	
  vs.	
  Producer-­‐Consumer	
  
• Redis,	
  beanstalkd	
  
• pgq	
  
• RabbitMQ	
  
• Apache	
  Ka•a
RPC
• Синхронное	
  взаимодействие:	
  запрос-­‐ответ
Широковещательная	
  шина
ØMQ
• Коммуникационная	
  библиотека	
  
• Без	
  брокера	
  
• Абстракция	
  установления	
  соединения,	
  
реконнектов,	
  транспорта	
  и	
  т.п.	
  
• Паттерны	
  обмена	
  сообщениями
Service-­‐Oriented	
  Architecture
SOA
• Четко	
  выделенные	
  сервисы	
  со	
  своим	
  
интерфейсом	
  
• Сервисы	
  независимы	
  
• Сложность	
  эксплуатации	
  
• Независимое	
  масштабирование
Реальный	
  мир
• А	
  что	
  же	
  происходит	
  в	
  моем	
  любимом	
  
языке	
  программирования	
  X?
JavaScript
• Однопоточный	
  
• Явная	
  кооперативная	
  многозадачность	
  
• AJAX,	
  Timer,	
  CSS3	
  AnimaRon,	
  …	
  
• jQuery.Deferred()
PHP
• Нет	
  потоков*	
  
• “Начинаем	
  сначала”	
  на	
  каждый	
  запрос	
  
• Потребность	
  в	
  “accelerator”ах	
  
• Персистентные	
  соединения	
  с	
  БД
FastCGI
Ruby	
  on	
  Rails
• Огромное	
  влияние	
  
• Редкие	
  многопоточные	
  применения	
  
• MRI	
  (1.8),	
  YARV	
  (1.9+),	
  JRuby	
  
• Event	
  Machine	
  
• Rack:	
  middleware
Python
• WSGI:	
  middleware	
  
• Блокирующий	
  ввод-­‐вывод	
  (Django,	
  …)	
  
• Явная	
  кооперативная	
  многозадачность	
  
(Twisted,	
  Tornado)	
  
• Корутины	
  (gevent,	
  eventlet,	
  …)
Java
• Потоки	
  ОС	
  
• Неблокирующий	
  ввод-­‐вывод:	
  NIO,	
  NIO2	
  
• Nežy	
  
• Thread	
  Pool
Go
• Горутины	
  (gorouRnes)	
  
• Комбинированный	
  вариант	
  (M:N)	
  
• Неблокирующий	
  ввод-­‐вывод	
  
• Каналы
Erlang
• Actor	
  model	
  
• Process	
  -­‐	
  комбинированная	
  модель	
  
• Полная	
  изоляция	
  (обмен	
  данными	
  через	
  
коммуникацию)	
  
• Распределенные	
  процессы
© Copyright 2014 Andrey Smirnov
Разработка	
  надежных	
  
высоконагруженных	
  систем
• 24,	
  25	
  и	
  26-­‐го	
  мая,	
  Москва	
  
• hžp://smira.highload.ru/	
  
• Мастер-­‐класс	
  с	
  практическими	
  заданиями

Más contenido relacionado

La actualidad más candente

Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Ontico
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooBadoo Development
 
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)Ontico
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...Ontico
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Ontico
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Ontico
 
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Ontico
 
Как собирать gps треки раз в секунду, экономя траффик
Как собирать gps треки раз в секунду, экономя траффикКак собирать gps треки раз в секунду, экономя траффик
Как собирать gps треки раз в секунду, экономя траффикAndrew Minkin
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Ontico
 
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...Fwdays
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайOntico
 
Cпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложенияCпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложения7bits
 
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)Ontico
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон ТурецкийCodeFest
 
Андрей Ситник
Андрей СитникАндрей Ситник
Андрей СитникCodeFest
 
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Ontico
 
Курс высокие нагрузки: очереди (отрывок)
Курс высокие нагрузки:  очереди (отрывок)Курс высокие нагрузки:  очереди (отрывок)
Курс высокие нагрузки: очереди (отрывок)Andrey Smirnov
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Ontico
 

La actualidad más candente (18)

Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в Badoo
 
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
 
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
 
Как собирать gps треки раз в секунду, экономя траффик
Как собирать gps треки раз в секунду, экономя траффикКак собирать gps треки раз в секунду, экономя траффик
Как собирать gps треки раз в секунду, экономя траффик
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
 
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
 
Cпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложенияCпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложения
 
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон Турецкий
 
Андрей Ситник
Андрей СитникАндрей Ситник
Андрей Ситник
 
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
 
Курс высокие нагрузки: очереди (отрывок)
Курс высокие нагрузки:  очереди (отрывок)Курс высокие нагрузки:  очереди (отрывок)
Курс высокие нагрузки: очереди (отрывок)
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
 

Similar a Анатомия веб-сервиса (РИТ-2014)

Анатомия веб-сервиса, Андрей Смирнов (ex-Skype)
Анатомия веб-сервиса, Андрей Смирнов (ex-Skype)Анатомия веб-сервиса, Андрей Смирнов (ex-Skype)
Анатомия веб-сервиса, Андрей Смирнов (ex-Skype)Ontico
 
Клиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhoneКлиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhonePavel Bashmakov
 
Cocoa Networking
Cocoa NetworkingCocoa Networking
Cocoa Networkingguest57eb8a
 
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...Ontico
 
Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Ontico
 
андрей паньгин
андрей паньгинандрей паньгин
андрей паньгинkuchinskaya
 
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...Ontico
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Badoo Development
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Ontico
 
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустяYuriy Nasretdinov
 
Java tricks for high-load server programming
Java tricks for high-load server programmingJava tricks for high-load server programming
Java tricks for high-load server programmingAndrei Pangin
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.jsАрхитектура программных систем на Node.js
Архитектура программных систем на Node.jsTimur Shemsedinov
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_drupalconf
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"GeeksLab Odessa
 
Developing highload servers with Java
Developing highload servers with JavaDeveloping highload servers with Java
Developing highload servers with JavaAndrei Pangin
 
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...Fuenteovejuna
 
Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)Olga Lavrentieva
 
Незаурядная Java как инструмент разработки высоконагруженного сервера
Незаурядная Java как инструмент разработки высоконагруженного сервераНезаурядная Java как инструмент разработки высоконагруженного сервера
Незаурядная Java как инструмент разработки высоконагруженного сервераodnoklassniki.ru
 

Similar a Анатомия веб-сервиса (РИТ-2014) (20)

Анатомия веб-сервиса, Андрей Смирнов (ex-Skype)
Анатомия веб-сервиса, Андрей Смирнов (ex-Skype)Анатомия веб-сервиса, Андрей Смирнов (ex-Skype)
Анатомия веб-сервиса, Андрей Смирнов (ex-Skype)
 
Клиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhoneКлиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhone
 
Cocoa Networking
Cocoa NetworkingCocoa Networking
Cocoa Networking
 
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...
Использование 0MQ для построения распределёных систем (Андрей Охлопков, Алекс...
 
Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)
 
Sivko
SivkoSivko
Sivko
 
андрей паньгин
андрей паньгинандрей паньгин
андрей паньгин
 
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
 
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустя
 
Java tricks for high-load server programming
Java tricks for high-load server programmingJava tricks for high-load server programming
Java tricks for high-load server programming
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.jsАрхитектура программных систем на Node.js
Архитектура программных систем на Node.js
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
 
Developing highload servers with Java
Developing highload servers with JavaDeveloping highload servers with Java
Developing highload servers with Java
 
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
Использование 0MQ для построения low latency распределёных систем, Андрей Охл...
 
Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)
 
Незаурядная Java как инструмент разработки высоконагруженного сервера
Незаурядная Java как инструмент разработки высоконагруженного сервераНезаурядная Java как инструмент разработки высоконагруженного сервера
Незаурядная Java как инструмент разработки высоконагруженного сервера
 

Más de Andrey Smirnov

Вебинар "Разработка высоконагруженных и надежных систем": Введение
Вебинар "Разработка высоконагруженных и надежных систем": ВведениеВебинар "Разработка высоконагруженных и надежных систем": Введение
Вебинар "Разработка высоконагруженных и надежных систем": ВведениеAndrey Smirnov
 
aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)Andrey Smirnov
 
Курс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывокКурс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывокAndrey Smirnov
 
aptly: Debian repository management tool
aptly: Debian repository management toolaptly: Debian repository management tool
aptly: Debian repository management toolAndrey Smirnov
 
aptly - система управления Debian-репозиториями пакетов
aptly - система управления Debian-репозиториями пакетовaptly - система управления Debian-репозиториями пакетов
aptly - система управления Debian-репозиториями пакетовAndrey Smirnov
 
Smirnov twisted-python
Smirnov twisted-pythonSmirnov twisted-python
Smirnov twisted-pythonAndrey Smirnov
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonAndrey Smirnov
 
Доклад на РИТ: Высокие нагрузки (2008)
Доклад на РИТ: Высокие нагрузки (2008)Доклад на РИТ: Высокие нагрузки (2008)
Доклад на РИТ: Высокие нагрузки (2008)Andrey Smirnov
 

Más de Andrey Smirnov (12)

Remote Highload
Remote HighloadRemote Highload
Remote Highload
 
Вебинар "Разработка высоконагруженных и надежных систем": Введение
Вебинар "Разработка высоконагруженных и надежных систем": ВведениеВебинар "Разработка высоконагруженных и надежных систем": Введение
Вебинар "Разработка высоконагруженных и надежных систем": Введение
 
aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)
 
Курс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывокКурс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывок
 
aptly: Debian repository management tool
aptly: Debian repository management toolaptly: Debian repository management tool
aptly: Debian repository management tool
 
aptly - система управления Debian-репозиториями пакетов
aptly - система управления Debian-репозиториями пакетовaptly - система управления Debian-репозиториями пакетов
aptly - система управления Debian-репозиториями пакетов
 
Smirnov twisted-python
Smirnov twisted-pythonSmirnov twisted-python
Smirnov twisted-python
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
 
Доклад на РИТ: Высокие нагрузки (2008)
Доклад на РИТ: Высокие нагрузки (2008)Доклад на РИТ: Высокие нагрузки (2008)
Доклад на РИТ: Высокие нагрузки (2008)
 
pyFMS
pyFMSpyFMS
pyFMS
 
pyFMS
pyFMSpyFMS
pyFMS
 
PGDBObject
PGDBObjectPGDBObject
PGDBObject
 

Анатомия веб-сервиса (РИТ-2014)