SlideShare a Scribd company logo
1 of 34
Middleware - это такая прослойка в технологическом стеке большого проекта Александр Котов
Цели доклада ,[object Object],[object Object],[object Object],[object Object],[object Object]
Содержание ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Поехали!
Веб-проект. Идея.
Запускаем v1.0. Apache, CGI, MVC. index.cgi Apache MySQL Logic.pm Template
Появляется нагрузка. Проект растёт! $$$ index.cgi Apache MySQL Logic.pm Template
Адекватная реакция: усложняем  архитектурный стек На 146%
Базу данных – на отдельные сервера $$$ index.cgi Apache MySQL Logic.pm Template
Memcached для Model mod_perl для View $$$ index_mp.cgi Apache MySQL Logic.pm Template Memcached mod_perl
Ну можно еще к CDNу подцепиться для статики-)) $$$ index_mp.cgi Apache MySQL Logic.pm Template Memcached mod_perl CDN
А. Еще вроде есть NoSQL. Это сейчас модно :) $$$ index_mp.cgi Apache MongoDB Logic.pm Template Memcached mod_perl CDN MySQL
Вставляем еще серверов! $$$ index_mp.cgi Apache Logic.pm Template mod_perl CDN index_mp.cgi Apache Logic.pm Template mod_perl MongoDB Memcached MySQL nginx
Ключевой момент – понятие Application Server $$$ index_mp.cgi Apache Logic.pm Template mod_perl CDN index_mp.cgi Apache Template mod_perl MongoDB Memcached MySQL nginx
Стоп. Самое время для определения Middleware )) ,[object Object],[object Object],[object Object]
RPC. Архитектура. Logic.pm index_mp.cgi Client RPC Server RPC Zend Client RPC
RPC. Техника. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RPC – так RPC! Гуляем -)) $$$ index_mp.cgi Apache Logic.pm Template mod_perl CDN index_mp.cgi Apache Template mod_perl MongoDB Memcached MySQL nginx - www nginx - rpc Client RPC Client RPC Server RPC Logic.pm Server RPC
Теперь нам не страшны высокие нагрузки. Временно. ,[object Object],[object Object],[object Object],[object Object]
Заглянем внутрь AppServer ... Data Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Server RPC
Асинхронное выполнение заданий ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
AMQP-брокеры. Определение. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
AMQP-брокеры. Техника. ,[object Object],[object Object],[object Object],[object Object],[object Object]
Окей. Вот такой у нас архитектурный стек Server RPC Business Logic (Perl) Data model Client RPC Frontend application Interservice communication
Растёт не только нагрузка, но и код, и число кодеров. ,[object Object],[object Object],[object Object]
Декомпозиция процесса разработки MVC 1.0 MVC 1.1 Server RPC Business Logic (Perl) Data model Client RPC Frontend application Interservice communication App 1 App 2 CS1 Interservice communication BS4 DM4 CS2 CS5 CS3 CS4 BS5 DM5
Переход к MVC 2.0 MVC 1.0 MVC 1.1 MVC 2.0 Server RPC Business Logic (Perl) Data model Client RPC Frontend application Interservice  communication App 1 App 2 CS1 Interservice communication BS4 DM4 CS2 CS5 CS3 CS4 BS5 DM5 App 1 App 2 CS1 Interservice communication BS4 DM4 CS2 CS5 CS3 CS4 BS5 DM5 BS1 BS2 DM2 BS3
Следствия ,[object Object],[object Object],[object Object],[object Object],[object Object]
Параллельно, развиваем внешние API...
Есть внешние API.  И есть RPC. Две сущности.. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
А мы начнём создавать Internal API вместо RPC!!! Basic Service Internal API Data App External API (just filter)
ЙААААЗЬ!!! ,[object Object],[object Object]
Нагрузка + Middleware = Успешный веб-проект ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Спасибо! Вопросы?!

More Related Content

What's hot

CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...
CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...
CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...CodeFest
 
Об одном подходе переноса функциональности CPE устройств в ЦОД телеком оператора
Об одном подходе переноса функциональности CPE устройств в ЦОД телеком оператораОб одном подходе переноса функциональности CPE устройств в ЦОД телеком оператора
Об одном подходе переноса функциональности CPE устройств в ЦОД телеком оператораARCCN
 
Внедрение SDN в сети телеком-оператора
Внедрение SDN в сети телеком-оператораВнедрение SDN в сети телеком-оператора
Внедрение SDN в сети телеком-оператораARCCN
 
Машинное обучение с MATLAB
Машинное обучение с MATLABМашинное обучение с MATLAB
Машинное обучение с MATLABMATLAB
 
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NETДенис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NETElias Fofanov
 
Вячеслав Смирнов - Инструменты нагрузочного тестирования
Вячеслав Смирнов - Инструменты нагрузочного тестированияВячеслав Смирнов - Инструменты нагрузочного тестирования
Вячеслав Смирнов - Инструменты нагрузочного тестированияElias Fofanov
 
Решения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоРешения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоARCCN
 
Сети доставки контента и их место в архитектуре SDN/NFV
Сети доставки контента и их место в архитектуре SDN/NFVСети доставки контента и их место в архитектуре SDN/NFV
Сети доставки контента и их место в архитектуре SDN/NFVARCCN
 
Разработки ЦПИКС в области SDN и NFV
Разработки ЦПИКС в области SDN и NFV Разработки ЦПИКС в области SDN и NFV
Разработки ЦПИКС в области SDN и NFV ARCCN
 
Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...
Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...
Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...ARCCN
 
SDN and NFV в банковской сфере
SDN and NFV в банковской сфереSDN and NFV в банковской сфере
SDN and NFV в банковской сфереVictoria Kalinina
 
Игорь Кашкута
Игорь КашкутаИгорь Кашкута
Игорь КашкутаCodeFest
 
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014Artsofte IT company
 
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...it-people
 

What's hot (15)

CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...
CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...
CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...
 
Об одном подходе переноса функциональности CPE устройств в ЦОД телеком оператора
Об одном подходе переноса функциональности CPE устройств в ЦОД телеком оператораОб одном подходе переноса функциональности CPE устройств в ЦОД телеком оператора
Об одном подходе переноса функциональности CPE устройств в ЦОД телеком оператора
 
Внедрение SDN в сети телеком-оператора
Внедрение SDN в сети телеком-оператораВнедрение SDN в сети телеком-оператора
Внедрение SDN в сети телеком-оператора
 
Машинное обучение с MATLAB
Машинное обучение с MATLABМашинное обучение с MATLAB
Машинное обучение с MATLAB
 
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NETДенис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
 
Вячеслав Смирнов - Инструменты нагрузочного тестирования
Вячеслав Смирнов - Инструменты нагрузочного тестированияВячеслав Смирнов - Инструменты нагрузочного тестирования
Вячеслав Смирнов - Инструменты нагрузочного тестирования
 
Решения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоРешения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущего
 
Сети доставки контента и их место в архитектуре SDN/NFV
Сети доставки контента и их место в архитектуре SDN/NFVСети доставки контента и их место в архитектуре SDN/NFV
Сети доставки контента и их место в архитектуре SDN/NFV
 
Разработки ЦПИКС в области SDN и NFV
Разработки ЦПИКС в области SDN и NFV Разработки ЦПИКС в области SDN и NFV
Разработки ЦПИКС в области SDN и NFV
 
Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...
Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...
Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...
 
SDN and NFV в банковской сфере
SDN and NFV в банковской сфереSDN and NFV в банковской сфере
SDN and NFV в банковской сфере
 
Игорь Кашкута
Игорь КашкутаИгорь Кашкута
Игорь Кашкута
 
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014
 
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...
 
A new way to compile
A new way to compileA new way to compile
A new way to compile
 

Similar to Middleware

Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"Fwdays
 
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...ARCCN
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET CoreAndrew Gubskiy
 
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"LogeekNightUkraine
 
Jelastic для разработчиков ПО
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПОDmitry Lazarenko
 
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseSymfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseDmitry Semenov
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKCisco Russia
 
RUNOS OpenFlow controller (ru)
RUNOS OpenFlow controller (ru)RUNOS OpenFlow controller (ru)
RUNOS OpenFlow controller (ru)Alexander Shalimov
 
SDN в корпоративных сетях
SDN в корпоративных сетяхSDN в корпоративных сетях
SDN в корпоративных сетяхCisco Russia
 
Онлайн миграция контейнеров. Взгляд изнутри
Онлайн миграция контейнеров. Взгляд изнутриОнлайн миграция контейнеров. Взгляд изнутри
Онлайн миграция контейнеров. Взгляд изнутриJelastic Multi-Cloud PaaS
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendenciesDarkestMaster
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusCisco Russia
 
Лекции и задания по рнр
Лекции и задания по рнрЛекции и задания по рнр
Лекции и задания по рнрRauan Ibraikhan
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаMikhail Chinkov
 
Отчет по проектах ЦПИКС
Отчет по проектах ЦПИКСОтчет по проектах ЦПИКС
Отчет по проектах ЦПИКСARCCN
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоАлександр Ежов
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest
 
Platypus platform ivbit
Platypus platform ivbitPlatypus platform ivbit
Platypus platform ivbitjskonst
 

Similar to Middleware (20)

Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
 
Jelastic для разработчиков ПО
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПО
 
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseSymfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
 
RUNOS OpenFlow controller (ru)
RUNOS OpenFlow controller (ru)RUNOS OpenFlow controller (ru)
RUNOS OpenFlow controller (ru)
 
SDN в корпоративных сетях
SDN в корпоративных сетяхSDN в корпоративных сетях
SDN в корпоративных сетях
 
Онлайн миграция контейнеров. Взгляд изнутри
Онлайн миграция контейнеров. Взгляд изнутриОнлайн миграция контейнеров. Взгляд изнутри
Онлайн миграция контейнеров. Взгляд изнутри
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendencies
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
Лекции и задания по рнр
Лекции и задания по рнрЛекции и задания по рнр
Лекции и задания по рнр
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
Отчет по проектах ЦПИКС
Отчет по проектах ЦПИКСОтчет по проектах ЦПИКС
Отчет по проектах ЦПИКС
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
 
Platypus platform ivbit
Platypus platform ivbitPlatypus platform ivbit
Platypus platform ivbit
 

More from megakott

Reply via-email service: hidden traps
Reply via-email service: hidden trapsReply via-email service: hidden traps
Reply via-email service: hidden trapsmegakott
 
Perl resources
Perl resourcesPerl resources
Perl resourcesmegakott
 
Piano on-perl
Piano on-perlPiano on-perl
Piano on-perlmegakott
 
Office vs. Remote
Office vs. RemoteOffice vs. Remote
Office vs. Remotemegakott
 
Anaglyph 3D-images: trends and demo
Anaglyph 3D-images: trends and demoAnaglyph 3D-images: trends and demo
Anaglyph 3D-images: trends and demomegakott
 
Aspect-oriented programming in Perl
Aspect-oriented programming in PerlAspect-oriented programming in Perl
Aspect-oriented programming in Perlmegakott
 
Saint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demoSaint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demomegakott
 

More from megakott (8)

Reply via-email service: hidden traps
Reply via-email service: hidden trapsReply via-email service: hidden traps
Reply via-email service: hidden traps
 
Hackathon
HackathonHackathon
Hackathon
 
Perl resources
Perl resourcesPerl resources
Perl resources
 
Piano on-perl
Piano on-perlPiano on-perl
Piano on-perl
 
Office vs. Remote
Office vs. RemoteOffice vs. Remote
Office vs. Remote
 
Anaglyph 3D-images: trends and demo
Anaglyph 3D-images: trends and demoAnaglyph 3D-images: trends and demo
Anaglyph 3D-images: trends and demo
 
Aspect-oriented programming in Perl
Aspect-oriented programming in PerlAspect-oriented programming in Perl
Aspect-oriented programming in Perl
 
Saint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demoSaint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demo
 

Middleware