SlideShare a Scribd company logo
Alexander Lisachenko
Lisachenko_it@gmail.com
Enterprise Symfony
Architecture
О докладчике
Лисаченко Александр
• Руководитель отдела
проектирования ПО в Alpari
• Идеолог Symfony2: почти вся
инфраструктура на Symfony2, в
т.ч. и основной сайт alpari.ru
(миллионы хитов в день,
BigData при анализе, высокая
сложность логики)
Twitter: @lisachenko
Github: https://github.com/lisachenko
2
Что такое архитектура?
3
Архитектура ПО
4
Архитектура ПО
Наука
Искусство
Архитектура
ПО
5
Основные идеи архитектуры
Ускорение/удешевление
достижения бизнес-цели.
Cнижение сложности системы
путем абстракции и
разграничения полномочий.
Достижение
производительности,
отказоустойчивости и
масштабируемости.
6
Проектный треугольник
Время Деньги
Функци
и
Архите
ктура
Вре
мя
День
ги
Функ
ции
Enterprise
7
Уровни архитектуры
Микро
Стиль кода
(SOLID)
Ограничения
(хуки, ветки)
Макро
Компоненты
(LDAP, MQ)
Модули
Сервисы
(SOA)
Приложения
8
Микро-архитектура. SOLID
А ты используешь принципы SOLID?
9
Микро-архитектура. SOLID
(S)Ingle Responsibility
• Принцип единственной ответственности. Каждый метод и класс делает свое дело
(O)pen-Closed principle
• Класс должен быть открыт для расширения, но закрыт для изменения
(L)iskov Substitution
• Методы должны работать с подтипами, ничего не зная о них заранее
(I)nterface Segregation
• Лучше много конкретных интерфейсов, чем один гигантский.
(D)ependency Inversion Principle
• Абстракции не должны зависеть от конкретных реализаций. Не проси – тебе дадут
10
Symfony2 – макро-архитектура
View
Controller
Model
11
Symfony2 - это не MVC!
View
Controller
Model???
12
Слои в Symfony2
View
Controller Service
Data
Access
13
Корпоративная архитектура SF2
Только данные!
Никаких методов в
сущностях. (AR)
Репозитории только
для методов
поиска/конвертации
данных.
Получают только
аргументы и
возвращают только
примитивные типы:
скаляры, DTO.
Реализуют бизнес-
логику.
Обеспечивает только
распаковку
запроса/упаковку
ответа, а также вызов
одного сервиса
Контроллер
Сервисы
Источники
данных
14
Пример правильного контроллера в коде
Получить
запрос
• Request
Разобрать
параметры
• $login
• $pass
Вызвать
сервис
• UserService
-> login()
Вернуть
данные
• $isSuccess
15
Толстый тупой уродливый контроллер (ТТУК)
16
Компоненты
Аутенти-
фикация
Модуль
авториза-
ции
Шина
событий
(MQ)
Сервисная
шина
(SOA)
Failover
17
Корпоративная аутентификация – LDAP/x.509
LDAP
App1
App2
Service1Service2
Admin
18
Сервисная шина (SOA)
(SOA, англ. service-oriented
architecture) — модульный
подход к разработке
программного обеспечения.
Превращаем сервисы SF2 в
полноценные веб-сервисы и
используем в других
приложениях.
Следуем принципу SRP для
сервисов!
SOA
Service1
Service2
Service3
Service4
Service5
Service6
19
Плюсы и минусы SOA
20
За и против SOA
Преимущества
• Независимая разработка
• Контроль доступа к коду
• Проще управлять
• Единственная
ответственность
• Проще масштабировать
Недостатки
• Новые точки отказа
• Сложный мониторинг
• Сложнее отладка
взаимодействия
• Управление версиями
• Круговые зависимости (!)
• Медленная работа
конечных приложений
21
Failover
Geo
Balancer
Nginx
Varnish
Backend
1
Backend
2
Nginx
Varnish
Backend
3
Backend
4
22
Failover
Virtual
Host
HAProxy
(DC1)
TCP
Service 1
TCP
Service 2
HAProxy
(DC2)
TCP
Service 1
TCP
Service 2
23
Асинхронный процессинг
Быстрый ответ на запрос
Выполнение работы в фоновом режиме
Результаты в реальном времени
Масштабирование нагрузки
Уведомление других приложений о событиях
24
Асинхронный процессинг
Request
Response
Event Push
Event Subscribe
Push Result
Push Async Result
25
Спасибо!
Twitter: @lisachenko
Github: https://github.com/lisachenko
26

More Related Content

PPTX
Business concept proposal
PPTX
Top 8 counselor aide resume samples
DOCX
PDF
ARGUMENTS PER A UN GRAN ENGANY
PDF
commentary_263
PDF
ข้อสอบ 7 วิชาสามัญ คณิตศาสตร์
PDF
Daryn Gibson Bentley Transcript
PPTX
Top 8 conference facilitator resume samples
Business concept proposal
Top 8 counselor aide resume samples
ARGUMENTS PER A UN GRAN ENGANY
commentary_263
ข้อสอบ 7 วิชาสามัญ คณิตศาสตร์
Daryn Gibson Bentley Transcript
Top 8 conference facilitator resume samples

Viewers also liked (12)

PDF
เฉลยเคมี
PPT
How to remove bubble dock adware
PPT
Effective guides to remove websearch.hotsearches.info
PDF
My profile
PPTX
Банковский ритейл глазами потребителя
PDF
Amr Mohamed Elsayd RashedUpdate
PPTX
Could grexit be just around the corner the european union is on the verge of ...
DOC
Resume (1)
PDF
Becerra_Ernesto_Professional_Persona _Project_Presentation
PPT
เฉลยเคมี
How to remove bubble dock adware
Effective guides to remove websearch.hotsearches.info
My profile
Банковский ритейл глазами потребителя
Amr Mohamed Elsayd RashedUpdate
Could grexit be just around the corner the european union is on the verge of ...
Resume (1)
Becerra_Ernesto_Professional_Persona _Project_Presentation
Ad

Similar to Enterprise symfony architecture (20)

PPTX
Enterprise Symfony Architecture (RU)
PDF
Тимур Лукин - Архитектура и проектирование ПО
PDF
Понятие архитектуры ПО и управление архитектурным проектированием
PPTX
Архитектура ПО: управляя самым важным
PDF
Организационная Архитектура EA Enterprise Architecture
 
PPTX
Архитектура - это что?
PPTX
Архитектура - что это?
PDF
Проектирование программных систем. Занятие 4
PPTX
Cистемная архитектура вместо требований
PDF
Wild microservices and imaginary DevOps
PDF
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
PDF
Архитектура в IT: философия и практика
PPTX
Разработка корпоративных (бизнес) приложений (лекция 1)
PPTX
Большие проекты, архитектура и фреймворки.
PPTX
Три истории микросервисов / Игорь Беспальчук (CUSTIS)
PDF
Общие темы. Тема 01.
PPTX
разработка бизнес приложений (9)
PPT
ИТ архитектура в формате Semantic Web
PPTX
Лекция 1. Архитектура информационных систем
PPTX
Архитектура в web, доклад на Women techmakers, Omsk, 2014
Enterprise Symfony Architecture (RU)
Тимур Лукин - Архитектура и проектирование ПО
Понятие архитектуры ПО и управление архитектурным проектированием
Архитектура ПО: управляя самым важным
Организационная Архитектура EA Enterprise Architecture
 
Архитектура - это что?
Архитектура - что это?
Проектирование программных систем. Занятие 4
Cистемная архитектура вместо требований
Wild microservices and imaginary DevOps
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
Архитектура в IT: философия и практика
Разработка корпоративных (бизнес) приложений (лекция 1)
Большие проекты, архитектура и фреймворки.
Три истории микросервисов / Игорь Беспальчук (CUSTIS)
Общие темы. Тема 01.
разработка бизнес приложений (9)
ИТ архитектура в формате Semantic Web
Лекция 1. Архитектура информационных систем
Архитектура в web, доклад на Women techmakers, Omsk, 2014
Ad

Enterprise symfony architecture