Содержание
- 2. Архитектура (ПО) заключает в себе ряд важных решений об организации программной системы, среди которых выбор структурных
- 3. Разделение системы на составные части в самом первом приближении; принятие решений, которые трудно изменить впоследствии; Архитектура
- 4. Архитектура программной или вычислительной системы – это структура или структуры системы, включающие программные элементы, видимые извне
- 5. Архитектура программной системы – это способ организации или структурирования компонентов системы, для поддержки определенной функциональности, а
- 6. Является ли некоторое решение архитектурным полностью зависит от того, считают ли разработчики его важным или нет.
- 7. Архитектура Набор ВАЖНЫХ решений Но что делает решение важным?
- 8. Важность решений напрямую зависит от того, на какое количество соседних компонентов системы оно влияет и насколько
- 9. Одним из главных отличий архитектуры зданий от программной архитектуры является то, что многие решения, принятые при
- 10. Но теоретических причин, почему было бы сложно поменять что-либо в программной системе, не существует. Если взять
- 11. Любое решение должно быть оправдано и продумано его влияние в долгосрочной перспективе Преждевременная гибкость, как и
- 12. Архитектура программной системы – это способ организации или структурирования важных компонентов системы, для поддержки определенной важной
- 13. Архитектура и дизайн
- 14. Архитектура и дизайн
- 15. Goals of Architecture
- 16. Только приложение с грамотно проработанной архитектурой может эффективно расти и развиваться. Зачем?
- 17. Потребности пользователей, ИТ-инфраструктуры и бизнеса Принимаемые решения
- 18. Для каждой из этих сторон есть свои ключевые сценарии, свои требуемые атрибуты качества (производительность, безопасность, надежность),
- 19. Как пользователь будет использовать приложение? Как приложение будет развертываться и обслуживаться при эксплуатации? Какие требования по
- 20. Цель архитектуры – выявить требования, оказывающие влияние на структуру приложения. Хорошая архитектура снижает бизнес-риски, связанные с
- 21. Main Points of Architecture
- 22. Дизайн будет эволюционировать со временем Невозможно наперед знать все то, что необходимо для проектирования системы Новые
- 23. Не пытайтесь создать слишком сложную архитектуру и не делайте предположений, которые не можете проверить. Некоторые аспекты
- 24. Какие части архитектуры являются фундаментальными, изменение которых в случае неверной реализации представляет наибольшие риски? Какие части
- 25. Какие допущения были сделаны в этой архитектуре? Каким явным или подразумеваемым требованиям отвечает данная архитектура? Основные
- 26. Итоги
- 27. Итоги При проектировании ПО, постоянно приходится идти на компромиссы между противоречивыми требованиями от различных сторон, а
- 28. Architecture Principles
- 29. Принципы проектирования Разделение функций. Разделите приложение на отдельные компоненты с, по возможности, минимальным перекрытием функциональности. Важным
- 30. Принципы проектирования Цель проектирования – максимальное упрощение дизайна через его разбиение на функциональные области
- 31. Принципы проектирования Принцип единственности ответственности. Каждый отдельно взятый компонент или модуль должен отвечать только за одно
- 32. Принципы проектирования Не повторяйтесь (DRY). В применении к архитектуре это означает, что функциональность должна быть реализована
- 33. Принципы проектирования Придерживайтесь единообразия шаблонов проектирования в рамках одного слоя. По возможности, в рамках одного логического
- 34. Принципы проектирования Применяйте определенный стиль написания кода и соглашение о присваивании имен для разработки. Поинтересуйтесь, имеет
- 35. Принципы проектирования Учитывайте условия эксплуатации приложения. Определите необходимые показатели и эксплуатационные данные, чтобы гарантировать эффективное развертывание
- 36. Architecture Styles
- 37. Архитектурные стили Архитектурный стиль, иногда называемый архитектурным шаблоном – это набор принципов, высокоуровневая схема, обеспечивающая абстрактную
- 38. Архитектурные стили
- 39. Monolithic style
- 40. Client-Server / 2-Tier
- 41. Client-Server / 2-Tier Серверное приложение, к которому напрямую обращаются множество клиентов Исторически – сервер БД, с
- 42. 3 – Tier/ N – Tier
- 43. 3 – Tier/ N – Tier Удобство поддержки. Уровни не зависят друг от друга, что позволяет
- 44. Point of view Монолитная архитектура Трехзвенная архитектура
- 45. Object-oriented style Разделение ответственностей приложения или системы на самостоятельные пригодные для повторного использования объекты, каждый из
- 46. Layered architecture Многоуровневая архитектура обеспечивает группировку связанной функциональности приложения в разных слоях, выстраиваемых вертикально, поверх друг
- 47. Layered architecture При строгом разделении на слои компоненты одного слоя могут взаимодействовать только с компонентами того
- 48. Layered architecture
- 49. Layered architecture Абстракция. Многослойная архитектура представляет систему как единое целое, обеспечивая при этом достаточно деталей для
- 50. Domain Driven Design В качестве ядра ПО выступает модель предметной области, которая является прямой проекцией некого
- 51. Domain Driven Design
- 52. «Обратные» связи Например, предположим, что из Сценария нужно обратиться к Представлению. Однако, этот вызов обязан быть
- 53. Итоги Независимость от фреймворка. Архитектура не зависит от существования какой-либо библиотеки. Это позволяет использовать фреймворк в
- 54. Distributed Styles
- 55. Способы взаимодействия приложений Файлы СУБД Сообщения Удаленный вызов
- 56. Способы взаимодействия приложений Сервис Сервис
- 57. Способы взаимодействия приложений Сервис Сервис Промежуточное звено
- 58. Способы взаимодействия приложений Сервис Сервис Промежуточное звено Информация
- 59. Способы взаимодействия приложений Удаленный вызов REST, SOAP, CORBA Синхронный – ожидает ответа Идет напрямую к адресату,
- 60. Способы взаимодействия приложений Остальные Асинхронный – отправили запрос и забыли Через промежуточное звено, информация не пропадает,
- 61. CAP теорема Consistency (Согласованность). Avalability (Доступность). Partition Tolerance (Устойчивость к разделению системы).
- 62. CAP теорема Любые два из этих трех A P C
- 63. CAP теорема Любая отправка данных во вне – это разделение Чтение из БД и отображение пользователю
- 64. CAP теорема Использование посредника для передачи информации – потеря согласованности данных Кроме: БД
- 65. Файлы Поддержка везде Простота передачи Актуальность Согласованность данных и форматов Нет доступа к общим функциям
- 66. Producer-Consumer на файлах App1 FTP Приложение Приложение Приложение
- 67. Pub-Sub на файлах App1 SMTP-сервер Приложение Приложение Приложение
- 68. СУБД Поддержка почти везде Единый язык запросов Инструментарий СУБД Согласованность данных Зависимость от схемы данных Сложность
- 69. Producer-Consumer на БД App1 DB Приложение Приложение Приложение
- 70. Машина состояний в БД DB Приложение Приложение Приложение
- 71. Вызов процедур Привычный способ работы с вызовом процедур Стандартизация Снижает скорость обработки
- 72. Очереди сообщений Асинхронный обмен данными Регулирование нагрузки Гибкость настройки и богатый функционал маршрутизации Сложная модель программирования
- 73. References Грегор Хоп, Бобби Вульф. Шаблоны интеграции корпоративных приложений
- 74. Services
- 75. Классические Service (SOA) SOAP (Simple Object Access Protocol) WSDL (Web Services Description Language)
- 76. WSDL Основанный на XML язык описания веб сервисов и доступа к ним Содержит: определение типов данных
- 77. WSDL ... ...
- 78. WSDL
- 79. SOAP Основанный на XML протокол для RPC, расширенный позднее для обмена произвольными сообщениями Работает поверх SMTP,
- 80. SOAP 12345 Стакан граненый Стакан граненый. 250 мл. 9.95 true
- 81. Факты SOA – это философия дизайна, а не технология Веб-сервисы не требуются для SOA
- 82. Главное Выделите функциональность в отдельные независимые и небольшие компоненты (модули, сервисы) Определите способы взаимодействия сервисов между
- 83. Microservices
- 84. Microservices architectural style SOA – слишком «философское» и размытое понятие под которым скрывается целая группа архитектурных
- 85. Microservices Microservices architectural style – подход к разработке одного приложения как набора небольших сервисов, каждый из
- 86. Monolithic style
- 87. Monolithic style Load balancer
- 88. Monolithic style Естественный путь развития приложения Вполне может быть успешным Примеры разочарований: Меняем формулу расчета в
- 89. Comparison. Deployment Все вместе Каждый Сервис отдельно
- 90. Comparison. Scalability
- 91. Монолит, разработка
- 92. Микросервисы, разработка
- 93. Коммуникация Microservices стиль тяготеет к использованию простых технологий, с вынесением всей логики в сами сервисы. REST
- 94. Децентрализация Microservices подход позволяет создавать приложение используя сервисы разработанные c помощью различных технологий и платформ, в
- 95. Монолит vs. Микросервисы Работа с БД
- 96. Монолит vs. Микросервисы Распределение данных ведет к невозможности транзакций и потере согласованности. Можно рассчитывать только на
- 97. Разработка с учетом отказа Каждый запрос к сервису может завершиться неудачно из-за отказа сервиса Отказ одного
- 98. Примеры
- 99. Как построить Статья Комментарии Пользователи
- 100. Как построить Пользователи Комментарии Статьи Авторизация
- 101. Как построить Пользователи Комментарии Статьи Авторизация Сайт
- 102. Масштабируем Load balancer
- 103. Conclusion. Pros Low coupling Independent deploy and scalability Independent development and releases Quick development Quick onboarding
- 104. Conclusion. Cons Reducing agility Increasing of changes complexity Difficult debugging and logging, tracing A lot of
- 105. References Micro-services архитектуры - избавляемся от монолитного кода [ http://dotnetconf.ru/materialy/microservicearchitecture ] Преимущества и недостатки микросервисной архитектуры
- 107. Скачать презентацию