Деплоймент и распространение обновлений для веб-приложений

Magecom Ukraine
Magecom UkraineMagecom Ukraine
Деплоймент и распространение обновлений для веб-приложений
Деплоймент и распространение обновлений для веб-приложений,[object Object],Евгений Ивашин,,[object Object],разработчик Magento Core,[object Object]
Деплоймент и распространение обновлений для веб-приложений,[object Object],Основные тезисы,[object Object],Существующие практики создания инсталляторов для веб-приложений.,[object Object],Способы обновления веб-приложений, организация каналов обновлений.,[object Object],Объектно-ориентированный подход и модульность организации программного кода и параметров настройки веб-приложения.,[object Object],Установка или обновление отдельных модулей веб-приложения с сохранением целостности кода в целом.,[object Object]
Введение,[object Object],Быть программистом PHP означает разрабатывать веб-приложения. ,[object Object],У всех веб-приложений есть общие черты,[object Object]
Введение,[object Object],У всех веб-приложений есть общие черты:,[object Object],... они созданы, чтобы выполняться на веб-сервере и быть доступными через Internet,[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],Сегодня мы рассмотрим моменты, возникающие при установке и обновлении веб-приложений, написанных на PHP. Мы остановимся на следующих вопросах:,[object Object],[object Object]
Проблемы обновления веб-приложений
Объектно-ориентированный подход и модульная организация программного кода,[object Object]
«Какая инсталляция?..»,[object Object],Инсталляция веб-приложений,[object Object],Вариант 1,[object Object],Разработка под конкретную платформу,  «на коленке».,[object Object],Преимущества:,[object Object],При обеспечении идеальных условий разработка происходит быстрее, чем обычно,[object Object],Недостатки:,[object Object],Идеальные условия не наступают практически никогда!,[object Object]
Инсталляция веб-приложений,[object Object],Скачал, развернул и настроил,[object Object],Вариант 2,[object Object],Преимущества:,[object Object],Настройки отделены от кода,[object Object],Может выполняться непрофессионалом,[object Object],Недостатки:,[object Object],Сложность в обновлении и поддержке больших проектов,[object Object],Код нельзя обновлять частями,[object Object]
Инсталляция веб-приложений,[object Object],Объектно-ориентированный подход,[object Object],Вариант 3,[object Object],Преимущества:,[object Object],Широкие возможности по расширению приложения,[object Object],Отделение кода от визуального представления,[object Object],Модульный подход,[object Object],Недостатки:,[object Object],Сложность архитектуры,[object Object],Тяжеловесность кода,[object Object]
Проблема обновления веб-приложений,[object Object]
Проблема обновления веб-приложений,[object Object],Случай 1,[object Object],Тяжелый случай,[object Object],Возникает при попытке обновить приложение, разработанное «на коленке»,[object Object],Ни о каком обновлении речи быть не может,[object Object],Любые изменения требуют разработки заново либо переписывания большей части кода,[object Object]
Проблема обновления веб-приложений,[object Object],Полная замена кода,[object Object],Случай 2,[object Object],Код не структурирован,[object Object],Обновление представляет собой полную переустановку новой версии с сохранением настроек,[object Object],При изменении структуры данных upgrade БД выполняется вручную, предварительно выполняется backup,[object Object]
Проблема обновления веб-приложений,[object Object],Модульный подход,[object Object],Случай 3,[object Object],Объектно-ориентированный подход,[object Object],Код разбит на модули,[object Object],Каждый модуль может быть обновлен независимо,[object Object],Модуль «знает» от каких модулей он зависит и какие модули зависят от него,[object Object],После обновления выполняется upgrade структуры БД без потери данных,[object Object]
Проблема обновления веб-приложений,[object Object],Модульный подход,[object Object],Случай 3,[object Object],Пакет обновления,[object Object],Модуль A’,[object Object],Модуль A’,[object Object],Модуль A,[object Object],Конфигурациямодуля A’,[object Object],Конфигурация модуля A’,[object Object],Конфигурация модуля A,[object Object],зависимости,[object Object],Модуль B,[object Object],Модуль C,[object Object],Модуль D,[object Object]
Проблема обновления веб-приложений,[object Object],Модульный подход,[object Object],Случай 3,[object Object],Пакет обновления,[object Object],Модуль A’,[object Object],Модуль A,[object Object],Модуль A’,[object Object],Конфигурациямодуля A’,[object Object],Конфигурация модуля A,[object Object],зависимости,[object Object],Конфигурация модуля A’,[object Object],Модуль B,[object Object],Модуль C,[object Object],Модуль D,[object Object]
Проблема обновления веб-приложений,[object Object],Модульный подход,[object Object],Случай 3,[object Object],[object Object]
Конфигурация содержит исчерпывающие данные о взаимодействии данного модуля с другими модулями и системой в целом.
Конфигурация определяет зависимости данного модуля от остальных установленных модулей, проверяя допустимость и последовательность установки.Пакет обновления,[object Object],Модуль A’,[object Object],Модуль A,[object Object],Модуль A’,[object Object],Конфигурациямодуля A’,[object Object],Конфигурация модуля A,[object Object],зависимости,[object Object],Конфигурация модуля A’,[object Object],Модуль B,[object Object],Модуль C,[object Object],Модуль D,[object Object]
Проблема обновления веб-приложений,[object Object],Модульный подход,[object Object],Случай 3,[object Object],Пакет обновления,[object Object],Модуль A’,[object Object],Модуль A’,[object Object],Модуль A,[object Object],DB upgrade модуля A’,[object Object],DB upgrade модуля A’,[object Object],База данных,[object Object]
Проблема обновления веб-приложений,[object Object],Модульный подход,[object Object],Случай 3,[object Object],Пакет обновления,[object Object],Модуль A’,[object Object],Модуль A,[object Object],Модуль A’,[object Object],DB upgrade модуля A’,[object Object],База данных,[object Object]
Проблема обновления веб-приложений,[object Object],Модульный подход,[object Object],Случай 3,[object Object],[object Object]
Изменение структуры БД привязано к версии модуля; при обновлении с одной версии на другую последовательно выполняются все изменения для каждой из версий.
Разработчик должен следить за тем, чтобы изменения структуры не нарушали целостность данных в целом.Пакет обновления,[object Object],Модуль A’,[object Object],Модуль A,[object Object],Модуль A’,[object Object],DB upgrade модуля A’,[object Object],База данных,[object Object]
Проблема обновления веб-приложений,[object Object],Модульный подход,[object Object],Случай 3,[object Object],Что происходит с конфигурационными данными в процессе инсталляции?,[object Object],[object Object],Конфигурация модуля A,[object Object],Конфигурация модуля A,[object Object],Конфигурация модуля A,[object Object],Конфигурация модуля A,[object Object],Конфигурация модуля A,[object Object],Конфигурация модуля A,[object Object],Конфигурация модуля A,[object Object],Конфигурация модуля A,[object Object],Конфигурация модуля A,[object Object],Конфигурация модуля A,[object Object],Конфигурация модуля A,[object Object]
Проблема обновления веб-приложений,[object Object],Модульный подход,[object Object],Случай 3,[object Object],Что происходит с конфигурационными данными в процессе инсталляции?,[object Object],[object Object],Конфигурация Magento,[object Object],[object Object],[object Object]
Полученная структура кешируется в виде, удобном для быстрого доступа из любого места кода Magento,[object Object]
Проблема обновления веб-приложений,[object Object],Каналы обновления,[object Object],Случай 4,[object Object]
Объектно-ориентированный подход и модульная организация кода,[object Object]
Объектно-ориентированный подход и модульная организация кода,[object Object],ЧЕМ ХОРОША АРХИТЕКТУРА MVC?,[object Object]
ЧЕМ ХОРОША АРХИТЕКТУРА MVC?,[object Object],Поощряет разработчика к разделению программного кода и интерфейсной части приложения, что позволяет:,[object Object],[object Object]
1 sur 36

Recommandé

Histori of Vba par
Histori of VbaHistori of Vba
Histori of Vbamelamori
577 vues9 diapositives
презетация Visual basic par
презетация Visual basicпрезетация Visual basic
презетация Visual basickseniya_kristina
282 vues24 diapositives
Perfect Vision Soft par
Perfect Vision SoftPerfect Vision Soft
Perfect Vision SoftNatalia Gulchevskaya
671 vues12 diapositives
Варианты развертывания проектов на M3 par
Варианты развертывания проектов на M3Варианты развертывания проектов на M3
Варианты развертывания проектов на M3Bars Group
1.1K vues13 diapositives
Dot.net building scalable java script application using react and typescript,... par
Dot.net building scalable java script application using react and typescript,...Dot.net building scalable java script application using react and typescript,...
Dot.net building scalable java script application using react and typescript,...Sigma Software
30 vues26 diapositives
Meet Magento Belarus 2015: Denis Bosak par
Meet Magento Belarus 2015: Denis BosakMeet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakAmasty
1K vues33 diapositives

Contenu connexe

En vedette

Flexibility vs Conformity - lessons learned in Open Source par
Flexibility vs Conformity - lessons learned in Open SourceFlexibility vs Conformity - lessons learned in Open Source
Flexibility vs Conformity - lessons learned in Open SourceMagecom Ukraine
494 vues44 diapositives
10 000 вёдер или в погоне за Ключом от всех дверей par
10 000 вёдер или в погоне за Ключом от всех дверей10 000 вёдер или в погоне за Ключом от всех дверей
10 000 вёдер или в погоне за Ключом от всех дверейMagecom Ukraine
497 vues22 diapositives
Стандарты и соглашения в сложных ООП-приложениях par
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхMagecom Ukraine
539 vues32 diapositives
Современные платформы (фреймворки) разработки веб- приложений на PHP par
Современные платформы (фреймворки) разработки веб- приложений на PHP Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP Magecom Ukraine
1.6K vues26 diapositives
Тестирование Magento с использованием Selenium par
Тестирование Magento с использованием SeleniumТестирование Magento с использованием Selenium
Тестирование Magento с использованием SeleniumMagecom Ukraine
1.2K vues47 diapositives
Расширение функциональности модульного MVC приложения par
Расширение функциональности модульного MVC приложенияРасширение функциональности модульного MVC приложения
Расширение функциональности модульного MVC приложенияMagecom Ukraine
568 vues29 diapositives

En vedette(19)

Flexibility vs Conformity - lessons learned in Open Source par Magecom Ukraine
Flexibility vs Conformity - lessons learned in Open SourceFlexibility vs Conformity - lessons learned in Open Source
Flexibility vs Conformity - lessons learned in Open Source
Magecom Ukraine494 vues
10 000 вёдер или в погоне за Ключом от всех дверей par Magecom Ukraine
10 000 вёдер или в погоне за Ключом от всех дверей10 000 вёдер или в погоне за Ключом от всех дверей
10 000 вёдер или в погоне за Ключом от всех дверей
Magecom Ukraine497 vues
Стандарты и соглашения в сложных ООП-приложениях par Magecom Ukraine
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложениях
Magecom Ukraine539 vues
Современные платформы (фреймворки) разработки веб- приложений на PHP par Magecom Ukraine
Современные платформы (фреймворки) разработки веб- приложений на PHP Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP
Magecom Ukraine1.6K vues
Тестирование Magento с использованием Selenium par Magecom Ukraine
Тестирование Magento с использованием SeleniumТестирование Magento с использованием Selenium
Тестирование Magento с использованием Selenium
Magecom Ukraine1.2K vues
Расширение функциональности модульного MVC приложения par Magecom Ukraine
Расширение функциональности модульного MVC приложенияРасширение функциональности модульного MVC приложения
Расширение функциональности модульного MVC приложения
Magecom Ukraine568 vues
Extension Marketplace. Площадки для распространения ПО par Magecom Ukraine
Extension Marketplace. Площадки для распространения ПОExtension Marketplace. Площадки для распространения ПО
Extension Marketplace. Площадки для распространения ПО
Magecom Ukraine337 vues
Архитектура веб-приложений на примере Zend Framework и Magento par Magecom Ukraine
Архитектура веб-приложений  на примере Zend Framework и MagentoАрхитектура веб-приложений  на примере Zend Framework и Magento
Архитектура веб-приложений на примере Zend Framework и Magento
Magecom Ukraine1.2K vues
Применение компонент-ориентированной архитектуры для написания Magento Extens... par Magecom Ukraine
Применение компонент-ориентированной архитектуры для написания Magento Extens...Применение компонент-ориентированной архитектуры для написания Magento Extens...
Применение компонент-ориентированной архитектуры для написания Magento Extens...
Magecom Ukraine892 vues
Все дороги ведут в Checkout par Magecom Ukraine
Все дороги ведут в CheckoutВсе дороги ведут в Checkout
Все дороги ведут в Checkout
Magecom Ukraine918 vues
Преимущества использования полнотекстового поиска в интернет-магазинах par Magecom Ukraine
Преимущества использования полнотекстового поиска в интернет-магазинахПреимущества использования полнотекстового поиска в интернет-магазинах
Преимущества использования полнотекстового поиска в интернет-магазинах
Magecom Ukraine776 vues
Мобильные клиенты интернет-магазинов par Magecom Ukraine
Мобильные клиенты интернет-магазиновМобильные клиенты интернет-магазинов
Мобильные клиенты интернет-магазинов
Magecom Ukraine630 vues
1000 миллисекунд из жизни Magento par Magecom Ukraine
1000 миллисекунд из жизни Magento1000 миллисекунд из жизни Magento
1000 миллисекунд из жизни Magento
Magecom Ukraine1.6K vues
Управление продуктом в стиле Magento Unified Process par Magecom Ukraine
Управление продуктом в стиле Magento Unified ProcessУправление продуктом в стиле Magento Unified Process
Управление продуктом в стиле Magento Unified Process
Magecom Ukraine628 vues
Ключ успеха – процесс или продукт? par Magecom Ukraine
Ключ успеха – процесс или продукт?Ключ успеха – процесс или продукт?
Ключ успеха – процесс или продукт?
Magecom Ukraine654 vues
Реализация шаблонов корпоративных приложений в Magento par Magecom Ukraine
Реализация шаблонов корпоративных приложений в MagentoРеализация шаблонов корпоративных приложений в Magento
Реализация шаблонов корпоративных приложений в Magento
Magecom Ukraine805 vues
Применение TDD при разработке веб-сервисов par Magecom Ukraine
Применение TDD при разработке веб-сервисовПрименение TDD при разработке веб-сервисов
Применение TDD при разработке веб-сервисов
Magecom Ukraine1K vues
Система рендеринга в Magento par Magecom Ukraine
Система рендеринга в MagentoСистема рендеринга в Magento
Система рендеринга в Magento
Magecom Ukraine652 vues

Similaire à Деплоймент и распространение обновлений для веб-приложений

битрикс Framework сергей рыжиков par
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиковMedia Gorod
1.1K vues20 diapositives
1С-Битрикс: Управление сайтом Версия .NET par
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NETMedia Gorod
450 vues25 diapositives
Backbone lesson 1 par
Backbone lesson 1Backbone lesson 1
Backbone lesson 1Mihail Skida
1.4K vues13 diapositives
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко par
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. ТрофименкоКэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко2ГИС Технологии
1.6K vues47 diapositives
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8 par
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Anatoly Kireev
1.7K vues27 diapositives
UAFPUG6 - PureMVC par
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVCmandrew182
338 vues37 diapositives

Similaire à Деплоймент и распространение обновлений для веб-приложений(20)

битрикс Framework сергей рыжиков par Media Gorod
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиков
Media Gorod1.1K vues
1С-Битрикс: Управление сайтом Версия .NET par Media Gorod
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET
Media Gorod450 vues
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко par 2ГИС Технологии
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. ТрофименкоКэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8 par Anatoly Kireev
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Anatoly Kireev1.7K vues
UAFPUG6 - PureMVC par mandrew182
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVC
mandrew182338 vues
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry par Max Rozdobudko
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryUafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Max Rozdobudko337 vues
Frontend: Путешествие в мир модульных загрузчиков par CodeFest
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
CodeFest957 vues
Joomla (Админка) www.hotwebstudio.ru par hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruJoomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ru
hotwebstudio.ru 520 vues
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив... par borovoystudio
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
borovoystudio542 vues
Фичи н-н-нада? Или почему стоит использовать модуль Features. par Eugene Fidelin
Фичи н-н-нада? Или почему стоит использовать модуль Features.Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.
Eugene Fidelin2.2K vues
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од... par GoSharp
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
GoSharp1.2K vues
Система мониторинга ВКС для ТНК-BP par КРОК
Система мониторинга ВКС для ТНК-BPСистема мониторинга ВКС для ТНК-BP
Система мониторинга ВКС для ТНК-BP
КРОК259 vues
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин. par DrupalCampDN
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
DrupalCampDN721 vues
Что нового в Visual Studio 2013 par GetDev.NET
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
GetDev.NET1.7K vues

Деплоймент и распространение обновлений для веб-приложений

Notes de l'éditeur

  1. Случай второй. [CLICK]Полная замена кодаКод не структурирован, невозможно либо очень сложно разбить систему на независимые модули, но настройки вынесены в отдельный файл или группу файлов. В таком случае обновление обычно представляет собой полную переинсталляцию приложения с сохранением старых настроек.Существенную проблему представляет собой обновление структуры базы данных. При изменении структуры данных upgrade БД выполняется вручную, предварительно выполняется backup.И горе конечному пользователю, если разработчик не предусмотрел корректной процедуры миграции данных, и тем более, если конечный пользователь забыл сохранить копию данных![CLICK]