SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Масштабирование и отказоустойчивость с Nginx Специально для TulaDev.net 2011
О чем доклад? Доклад об Nginx.Nginx– это маленький, но удаленький HTTP-сервер. Что он умеет: ,[object Object]
акселерированноепроксирование с кэшированием;
простое распределение нагрузки и отказоустойчивость;Может работать на: ,[object Object]
Linux 2.2-2.6 (i386); Linux 2.6 (amd64);
Solaris 9 (i386, sun4u); Solaris 10 (i386, amd64, sun4v);
MacOS X (ppc, i386);
Windows XP, Windows Server 2003.
В общем работает на всем, что движется где есть процессор.На моем WiFi-маршрутизаторе дома, например, работать будет For TulaDev.net   2011
О чем доклад? Разработчик: ,[object Object]
12 апреля 2011 года выпустил версию 1.0Насколько популярен (данные netcraft.com, май 2011): Насколько популярен (данные w3techs.com, май 2011): «Nginxis used by 7.1% of all the websites whose web server we know».  Для .ruдоменов  - 47.7%. http://w3techs.com/technologies/breakdown/ws-nginx/top_level_domain For TulaDev.net   2011
ОМГ, а где же Microsoft? В докладе я постараюсь показать, что масштабировать любые web-приложения (даже на Microsoft-платформе) при помощи Nginx – это: ,[object Object]
Просто
Эффективно
НадежноFor TulaDev.net   2011
Давайте определим понятия Масштабирование – это механизм, позволяющий пропорционально увеличивать производительность системы за счет добавления нового оборудования. Отказоустойчивость – это механизм, позволяющий не терять работоспособности системы при выходе из строя единицы оборудования. Можно рассматривать эти термины в контексте программ, компьютеров или компьютерных комплексов (кластеров). For TulaDev.net   2011
Зачем это нужно? Для того, чтобы понять, зачем я затеял этот доклад, давайте сделаем эксперимент. Давайте посчитаем, сколько запросов к среднестатистическому сайту делает среднестатистический пользователь. Возьмем первый попавшийся сайт, например, http://www.tuladev.net/ For TulaDev.net   2011
Зачем это нужно? Протокол обращений к серверу: For TulaDev.net   2011
Зачем это нужно? Давайте немного детальнее разберем, что это за запросы: ,[object Object]
22 запроса к домену tuladev.net

Weitere ähnliche Inhalte

Was ist angesagt?

Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Ontico
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Anton Baranov
 
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Ontico
 
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Ontico
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Ontico
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Ontico
 
Декларативные даги в Apache Airflow
Декларативные даги в Apache AirflowДекларативные даги в Apache Airflow
Декларативные даги в Apache AirflowRamblerML
 
Антон Галицын
Антон ГалицынАнтон Галицын
Антон ГалицынCodeFest
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...Ontico
 
Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)
Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)
Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)Ontico
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Ontico
 
Anton Turetckii "What does it take to build a host?"
Anton Turetckii "What does it take to build a host?"Anton Turetckii "What does it take to build a host?"
Anton Turetckii "What does it take to build a host?"Fwdays
 
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...Yehor Herasymchuk
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Ontico
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Ontico
 
Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.Ontico
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Ontico
 
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik Naim Shafiev
 
Разгоняем 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
 

Was ist angesagt? (20)

Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
 
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
 
Декларативные даги в Apache Airflow
Декларативные даги в Apache AirflowДекларативные даги в Apache Airflow
Декларативные даги в Apache Airflow
 
Антон Галицын
Антон ГалицынАнтон Галицын
Антон Галицын
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 
Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)
Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)
Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)
 
Anton Turetckii "What does it take to build a host?"
Anton Turetckii "What does it take to build a host?"Anton Turetckii "What does it take to build a host?"
Anton Turetckii "What does it take to build a host?"
 
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
 
Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
 
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
 
Разгоняем 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.)
 

Ähnlich wie Масштабирование и отказоустойчивость с Nginx

развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)guest40e031
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Serversrit2010
 
Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализацияYandex
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBASlach
 
“Чем хорош Erlang вообще и для веб-разработки в частности?”

“Чем хорош Erlang вообще и для веб-разработки в частности?”
“Чем хорош Erlang вообще и для веб-разработки в частности?”

“Чем хорош Erlang вообще и для веб-разработки в частности?”
Olga Lavrentieva
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QASQALab
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоАлександр Ежов
 
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.Alexander Frolov
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in productionAnatoly Popov
 
Облачная инфраструктура Amazon We
Облачная инфраструктура Amazon WeОблачная инфраструктура Amazon We
Облачная инфраструктура Amazon WeLeonid Vygovskiy
 
Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)Ontico
 
Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Alexey Bokov
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_drupalconf
 
CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...
CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...
CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...CodeFest
 
Надежность World of Tanks Server
Надежность World of Tanks ServerНадежность World of Tanks Server
Надежность World of Tanks ServerLevon Avakyan
 
инструментарий
инструментарийинструментарий
инструментарийigdweb
 

Ähnlich wie Масштабирование и отказоустойчивость с Nginx (20)

развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Servers
 
Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализация
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBA
 
Erlang ruby
Erlang rubyErlang ruby
Erlang ruby
 
“Чем хорош Erlang вообще и для веб-разработки в частности?”

“Чем хорош Erlang вообще и для веб-разработки в частности?”
“Чем хорош Erlang вообще и для веб-разработки в частности?”

“Чем хорош Erlang вообще и для веб-разработки в частности?”

 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
 
Облачная инфраструктура Amazon We
Облачная инфраструктура Amazon WeОблачная инфраструктура Amazon We
Облачная инфраструктура Amazon We
 
Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)
 
Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_
 
CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...
CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...
CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...
 
Надежность World of Tanks Server
Надежность World of Tanks ServerНадежность World of Tanks Server
Надежность World of Tanks Server
 
Microsoft Internet Information Services 2007
Microsoft Internet Information Services 2007Microsoft Internet Information Services 2007
Microsoft Internet Information Services 2007
 
Breaking logs
Breaking logsBreaking logs
Breaking logs
 
инструментарий
инструментарийинструментарий
инструментарий
 

Mehr von GetDev.NET

Leap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееLeap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееGetDev.NET
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистовGetDev.NET
 
Mind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеMind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеGetDev.NET
 
Что нового в Visual Studio 2015
Что нового в Visual Studio 2015Что нового в Visual Studio 2015
Что нового в Visual Studio 2015GetDev.NET
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революцияGetDev.NET
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковGetDev.NET
 
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКPhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКGetDev.NET
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web APIGetDev.NET
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013GetDev.NET
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...GetDev.NET
 
Lego Mindstorms
Lego MindstormsLego Mindstorms
Lego MindstormsGetDev.NET
 
Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8GetDev.NET
 
Async Javascript
Async JavascriptAsync Javascript
Async JavascriptGetDev.NET
 
XAML - язык разметки приложений
XAML - язык разметки приложенийXAML - язык разметки приложений
XAML - язык разметки приложенийGetDev.NET
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language RuntimeGetDev.NET
 
JavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиGetDev.NET
 
Roslyn - компилятор как сервис
Roslyn - компилятор как сервисRoslyn - компилятор как сервис
Roslyn - компилятор как сервисGetDev.NET
 

Mehr von GetDev.NET (20)

Go
GoGo
Go
 
Leap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееLeap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущее
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистов
 
Mind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеMind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучше
 
Что нового в Visual Studio 2015
Что нового в Visual Studio 2015Что нового в Visual Studio 2015
Что нового в Visual Studio 2015
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революция
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиков
 
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКPhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
 
AngularJS
AngularJSAngularJS
AngularJS
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
 
Lego Mindstorms
Lego MindstormsLego Mindstorms
Lego Mindstorms
 
Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8
 
Async Javascript
Async JavascriptAsync Javascript
Async Javascript
 
XAML - язык разметки приложений
XAML - язык разметки приложенийXAML - язык разметки приложений
XAML - язык разметки приложений
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language Runtime
 
JavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработки
 
Roslyn - компилятор как сервис
Roslyn - компилятор как сервисRoslyn - компилятор как сервис
Roslyn - компилятор как сервис
 

Масштабирование и отказоустойчивость с Nginx

  • 1. Масштабирование и отказоустойчивость с Nginx Специально для TulaDev.net 2011
  • 2.
  • 4.
  • 5. Linux 2.2-2.6 (i386); Linux 2.6 (amd64);
  • 6. Solaris 9 (i386, sun4u); Solaris 10 (i386, amd64, sun4v);
  • 8. Windows XP, Windows Server 2003.
  • 9. В общем работает на всем, что движется где есть процессор.На моем WiFi-маршрутизаторе дома, например, работать будет For TulaDev.net 2011
  • 10.
  • 11. 12 апреля 2011 года выпустил версию 1.0Насколько популярен (данные netcraft.com, май 2011): Насколько популярен (данные w3techs.com, май 2011): «Nginxis used by 7.1% of all the websites whose web server we know». Для .ruдоменов - 47.7%. http://w3techs.com/technologies/breakdown/ws-nginx/top_level_domain For TulaDev.net 2011
  • 12.
  • 16. Давайте определим понятия Масштабирование – это механизм, позволяющий пропорционально увеличивать производительность системы за счет добавления нового оборудования. Отказоустойчивость – это механизм, позволяющий не терять работоспособности системы при выходе из строя единицы оборудования. Можно рассматривать эти термины в контексте программ, компьютеров или компьютерных комплексов (кластеров). For TulaDev.net 2011
  • 17. Зачем это нужно? Для того, чтобы понять, зачем я затеял этот доклад, давайте сделаем эксперимент. Давайте посчитаем, сколько запросов к среднестатистическому сайту делает среднестатистический пользователь. Возьмем первый попавшийся сайт, например, http://www.tuladev.net/ For TulaDev.net 2011
  • 18. Зачем это нужно? Протокол обращений к серверу: For TulaDev.net 2011
  • 19.
  • 20. 22 запроса к домену tuladev.net
  • 21. 21 запрос к статическим файлам
  • 23. 1 запрос к ASP странице
  • 24. 95% запросов для обработки не требуют никакой сложной логики. С обработкой таких запросов вполне мог бы справиться один из первых HTTP-серверов в истории человечества.For TulaDev.net 2011
  • 25. Зачем это нужно? Оперируя понятиями .NET, C#, ASP мы с вами сможем оптимизировать лишь 5% всех запросов, обрабатываемых сервером для того, чтобы отобразить пользователю главную страницу этого среднестатистического сайта. Чтобы оптимизировать остальные 95% нам нужно разбираться уже не столько в .NET, сколько в настройках и производительности web-сервера. Этот вопрос лежит скорее в области системного администрирования, но я думаю, что мы с вами разберемся. For TulaDev.net 2011
  • 26. А есть ли проблема? Так может быть нет ничего страшного в этих запросах к статическим файлам? Может быть это всего лишь «песок» и он не оказывает существенного влияния на скорость загрузки страницы. Чтобы ответить на этот вопрос давайте вспомним, что быстрее скопировать: 1 файл в 1 Mb или 1000 в 1 Kb? Мелкие файлы всегда медленнее передавать из-за наличия накладных расходов. For TulaDev.net 2011
  • 27.
  • 28. Debian Linux (nginx) (256 Mb) – работает Nginx 1.0.1192.168.250.2:80 – Apache192.168.250.3:80 – Nginx192.168.250.4:80 – Nginx
  • 29. Debian Linux (benchmark) (256 Mb) для запуска “ab”IP не важенFor TulaDev.net 2011
  • 30.
  • 31. IIS
  • 32. NginxВ качестве тестирующего приложения буду использовать утилиту ApacheBench http://httpd.apache.org/docs/2.0/programs/ab.html For TulaDev.net 2011
  • 33.
  • 34. IIS
  • 35. NginxВ качестве тестирующего приложения буду использовать утилиту ApacheBench http://httpd.apache.org/docs/2.0/programs/ab.html For TulaDev.net 2011
  • 36.
  • 37. Nginx – это HTTP-сервер. Он изначально создавался именнодля целей быстрой обработки запросов.Игорь Сысоев называет причиной такой разницы то, что nginxиспользует вызов sendfile (для не Linux платформ используются другие механизмы). Читаем, что такое sendfile: «системный вызов, который выполняет передачу файла за одно обращение», при этом «не происходит переключение контекста между пользовательским режимом и режимом ядра, а это весьма "дорогостоящая"операция». For TulaDev.net 2011
  • 38. Что позволяет Nginx Масштабирование Nginxпозволяет скрывать за собой сотни серверов, которые будут иметь единую точку входа. Распределять между ними запросы практически по достаточно широкому набору возможных правил. Отключение любого из серверов бэкэнда не повлияет на работоспособности системы (естественно пропорционально просядет производительность) Но отключение сервера с Nginxроняет всю систему.Как быть? For TulaDev.net 2011
  • 39. Что позволяет Nginx Отказоустойчивость Nginxсам является единой точкой отказа. Чтобы обеспечить близкую к 100% отказоустойчивость нужно воспользоваться дополнительным механизмом. CARP позволяет сделать так, что несколько машин могут обслуживать запросы к одному IP. Выход из строя любой из них не нарушает работоспособности системы. На практике 2-х машин хватит, чтобы обеспечить очень близкую к 100% отказоустойчивость. For TulaDev.net 2011
  • 40. И снова, а где Microsoft? Nginx – это не панацея. Он не умеет выполнять приложения .NET (хотя умеет, например, perl) Это всего лишь маленький легкий HTTP-сервер, который умеет здорово отдавать статические файлы. Но кроме этого его можно использовать для проксирования других Web-серверов. Вот тут и вступает в игру IIS. Связка Nginx+IISгораздо мощнее отдельного IIS или отдельного Nginx. For TulaDev.net 2011
  • 41.
  • 43. Common Address Redundancy Protocol (CARP)
  • 44. Microsoft Azure (неявная реализация)
  • 45. Microsoft Network Load Balancing (NLB)
  • 46. Microsoft Application Request Routing (ARR)For TulaDev.net 2011
  • 47.
  • 48. Поток входящих запросов не могут обработать все доступные бэкенды. (Здравствуй, 504 Gateway time out).
  • 49. Поток входящих запросов таков, что не справляется Nginx. Тут нужно применять DNS round robin.
  • 50. По каким-то причинам нет возможности использовать Unix-систему. (Несмотря на то, что Nginxработаетв Windows, производительность и надежность там будет не та).For TulaDev.net 2011
  • 51. На этом все  Почитать об Nginx: http://sysoev.ru/nginx/ Задать мне вопрос: sergey.shebanin@ingate.ru