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

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 de 36

Recomendados

Histori of Vba por
Histori of VbaHistori of Vba
Histori of Vbamelamori
577 visualizações9 slides
презетация Visual basic por
презетация Visual basicпрезетация Visual basic
презетация Visual basickseniya_kristina
282 visualizações24 slides
Perfect Vision Soft por
Perfect Vision SoftPerfect Vision Soft
Perfect Vision SoftNatalia Gulchevskaya
671 visualizações12 slides
Варианты развертывания проектов на M3 por
Варианты развертывания проектов на M3Варианты развертывания проектов на M3
Варианты развертывания проектов на M3Bars Group
1.1K visualizações13 slides
Dot.net building scalable java script application using react and typescript,... por
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 visualizações26 slides
Meet Magento Belarus 2015: Denis Bosak por
Meet Magento Belarus 2015: Denis BosakMeet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakAmasty
1K visualizações33 slides

Mais conteúdo relacionado

Destaque

Flexibility vs Conformity - lessons learned in Open Source por
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 visualizações44 slides
10 000 вёдер или в погоне за Ключом от всех дверей por
10 000 вёдер или в погоне за Ключом от всех дверей10 000 вёдер или в погоне за Ключом от всех дверей
10 000 вёдер или в погоне за Ключом от всех дверейMagecom Ukraine
497 visualizações22 slides
Стандарты и соглашения в сложных ООП-приложениях por
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхMagecom Ukraine
539 visualizações32 slides
Современные платформы (фреймворки) разработки веб- приложений на PHP por
Современные платформы (фреймворки) разработки веб- приложений на PHP Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP Magecom Ukraine
1.6K visualizações26 slides
Тестирование Magento с использованием Selenium por
Тестирование Magento с использованием SeleniumТестирование Magento с использованием Selenium
Тестирование Magento с использованием SeleniumMagecom Ukraine
1.2K visualizações47 slides
Расширение функциональности модульного MVC приложения por
Расширение функциональности модульного MVC приложенияРасширение функциональности модульного MVC приложения
Расширение функциональности модульного MVC приложенияMagecom Ukraine
568 visualizações29 slides

Destaque(19)

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

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

битрикс Framework сергей рыжиков por
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиковMedia Gorod
1.1K visualizações20 slides
1С-Битрикс: Управление сайтом Версия .NET por
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NETMedia Gorod
450 visualizações25 slides
Backbone lesson 1 por
Backbone lesson 1Backbone lesson 1
Backbone lesson 1Mihail Skida
1.4K visualizações13 slides
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко por
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. ТрофименкоКэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко2ГИС Технологии
1.6K visualizações47 slides
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8 por
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Anatoly Kireev
1.7K visualizações27 slides
UAFPUG6 - PureMVC por
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVCmandrew182
338 visualizações37 slides

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

битрикс Framework сергей рыжиков por Media Gorod
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиков
Media Gorod1.1K visualizações
1С-Битрикс: Управление сайтом Версия .NET por Media Gorod
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET
Media Gorod450 visualizações
Backbone lesson 1 por Mihail Skida
Backbone lesson 1Backbone lesson 1
Backbone lesson 1
Mihail Skida1.4K visualizações
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко por 2ГИС Технологии
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. ТрофименкоКэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
2ГИС Технологии1.6K visualizações
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8 por 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 visualizações
UAFPUG6 - PureMVC por mandrew182
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVC
mandrew182338 visualizações
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry por 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 visualizações
PureMVC and Papervision por Dmitry Kuriksha
PureMVC and PapervisionPureMVC and Papervision
PureMVC and Papervision
Dmitry Kuriksha774 visualizações
Frontend: Путешествие в мир модульных загрузчиков por CodeFest
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
CodeFest957 visualizações
Joomla (Админка) www.hotwebstudio.ru por hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruJoomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ru
hotwebstudio.ru 520 visualizações
Web application framework por Viktor Chukhantsev
Web application frameworkWeb application framework
Web application framework
Viktor Chukhantsev311 visualizações
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив... por borovoystudio
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
borovoystudio542 visualizações
Битрикс-Framework por 1С-Битрикс
Битрикс-FrameworkБитрикс-Framework
Битрикс-Framework
1С-Битрикс862 visualizações
Фичи н-н-нада? Или почему стоит использовать модуль Features. por Eugene Fidelin
Фичи н-н-нада? Или почему стоит использовать модуль Features.Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.
Eugene Fidelin2.2K visualizações
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од... por GoSharp
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
GoSharp1.2K visualizações
Система мониторинга ВКС для ТНК-BP por КРОК
Система мониторинга ВКС для ТНК-BPСистема мониторинга ВКС для ТНК-BP
Система мониторинга ВКС для ТНК-BP
КРОК259 visualizações
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин. por DrupalCampDN
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
DrupalCampDN721 visualizações
Web deployment por GetDev.NET
Web deploymentWeb deployment
Web deployment
GetDev.NET2K visualizações
Что нового в Visual Studio 2013 por GetDev.NET
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
GetDev.NET1.7K visualizações

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

Notas do Editor

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