Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Автоматическая сборка и 
развертывание на 
платформе 1С
Развитие навыка 
Прототип 2 
Тест 4 
Функционал 8 
Автоматизация 
Оптимизация 
16 
32
CI - стандарт 
Сборка Source Libs 
Тестирование Unit Func Integration Benchmarks UI 
Deploy Staging QA Production 
Risks
1C:Совместимо (процесс) 
«Спольски» 1С 
Система контроля версий Хранилище 
Сборка проекта Setup.exe 
Ежедневная компиляция Автоматическая проверка конфигураций 
База данных ошибок СППР 
Исправление ошибок раньше нового кода Динамическое обновление 
Актуальный график работ СППР 
Спецификация СППР 
Спокойные условия для программистов СППР 
Лучшие из существующих инструментов 8.3.* 
Тестировщики ? Автоматическое тестирование в 1С 
Код соискателя ? ??? 
Usability «Такси»
1С:Совместимо (сборка) 
CI 1C 
Source 
??? 
Libs 
Unit tests 
Func tests 
Integration tests 
Benchmarks tests 
Ui tests 
Stage update 
QA update 
Production update
Договорились 
•Что такое релиз ? 
•Как проверить релиз ? 
•Что такое сборочные скрипты ? 
•Кто исправляет ошибки скриптов ? 
•Как достичь релиза «раз в день» ?
Типовой процесс 
(английский)
Исправить логическую ошибку в обмене, 
при возврате товара от покупателя (BL) 
Стадия Реализация 
Данные СоздатьПокупателя() .epf 
СоздатьВозврат() .epf 
Тест ПлохаяСитуация().epf 
build.bat 
Cfu 1.6.89.4685 
Развертывание ST - СоздатьДанные().epf 
QA – НайтиДанные().epf, ПлохаяСитуация().epf 
PR – НайтиДанные().epf, TR ПлохаяСитуация().epf 
RL 
deploy.bat 
Откат ирОбновления.ПроверкаВозвратовПокупателя() 
Scripts аЕсли10000ВозвратовСразу10пользователями.epf
Как на сервере ?
Deploy 
Сохранить предыдущую 
версию конфигурации 
Обновить конфигурацию 
Проверить конфигурацию 
автоматически 
Вызвать скрипт SQL backup 
системных таблиц 
Обновить «фоново»
cmd, VBS, JS, PowerShell
«Водопад» - помещение 
функционала целиком 
(антипатерн) 
• Если набор изменений 
стабилен – его можно 
поместить НО не включать в 
работу. 
• Просто нужно указать ссылку 
на номер задачи в 
комментарии к набору 
изменений 
Новые 
метаданные 
Новая функция 
Вызвать 
исключение «Не 
реализовано» 
Декомпозиция 
задачи 
Тесты на блоки, 
а не на задачу 
Технический 
запуск 
функционала
Забыли про данные (антипатерн) 
• Взяли готовые через DT 
• Соседу пришлось делать с нуля 
• Не обдуманный функционал 
• Мастер-сущности НЕ покрыты кодом
Забыли про тест (антипатерн) 
•Оптимизация невозможна 
•Влияние на соседей НЕ 
протестировано 
•Сосед НЕ знает что поломал 
•Обновление в ручном режиме
Забыли про код (антипатерн) 
• «Разломали» сборку 
• Не учли про обратную совместимость 
• Соседи не знают о новом поведении 
• НЕ обдуманный функционал
Поломались сервера 1С (антипатерн) 
•Окружение тестов нарушено 
•Что будет в Production неизвестно 
•Ручное обновление и проверка 
•Рутинное дежурство, чтобы 
исправить то что не учли.
Вопрос для самообразования 
• А как автоматизировать обратный цикл: 
• Когда в production конфигурации внесли 
изменения 
• Теперь необходимо включить изменение 
в основное хранилище 
• Написать на изменение тест 
• Обновить Stage и QA 
НО НЕ помещать в production
Apache Licence 2.0 
https://github.com/xDrivenDevelopment 
• http://xdd.silverbulleters.org/

More Related Content

Автоматическая сборка и развертывание на платформе 1C

  • 1. Автоматическая сборка и развертывание на платформе 1С
  • 2. Развитие навыка Прототип 2 Тест 4 Функционал 8 Автоматизация Оптимизация 16 32
  • 3. CI - стандарт Сборка Source Libs Тестирование Unit Func Integration Benchmarks UI Deploy Staging QA Production Risks
  • 4. 1C:Совместимо (процесс) «Спольски» 1С Система контроля версий Хранилище Сборка проекта Setup.exe Ежедневная компиляция Автоматическая проверка конфигураций База данных ошибок СППР Исправление ошибок раньше нового кода Динамическое обновление Актуальный график работ СППР Спецификация СППР Спокойные условия для программистов СППР Лучшие из существующих инструментов 8.3.* Тестировщики ? Автоматическое тестирование в 1С Код соискателя ? ??? Usability «Такси»
  • 5. 1С:Совместимо (сборка) CI 1C Source ??? Libs Unit tests Func tests Integration tests Benchmarks tests Ui tests Stage update QA update Production update
  • 6. Договорились •Что такое релиз ? •Как проверить релиз ? •Что такое сборочные скрипты ? •Кто исправляет ошибки скриптов ? •Как достичь релиза «раз в день» ?
  • 8. Исправить логическую ошибку в обмене, при возврате товара от покупателя (BL) Стадия Реализация Данные СоздатьПокупателя() .epf СоздатьВозврат() .epf Тест ПлохаяСитуация().epf build.bat Cfu 1.6.89.4685 Развертывание ST - СоздатьДанные().epf QA – НайтиДанные().epf, ПлохаяСитуация().epf PR – НайтиДанные().epf, TR ПлохаяСитуация().epf RL deploy.bat Откат ирОбновления.ПроверкаВозвратовПокупателя() Scripts аЕсли10000ВозвратовСразу10пользователями.epf
  • 10. Deploy Сохранить предыдущую версию конфигурации Обновить конфигурацию Проверить конфигурацию автоматически Вызвать скрипт SQL backup системных таблиц Обновить «фоново»
  • 11. cmd, VBS, JS, PowerShell
  • 12. «Водопад» - помещение функционала целиком (антипатерн) • Если набор изменений стабилен – его можно поместить НО не включать в работу. • Просто нужно указать ссылку на номер задачи в комментарии к набору изменений Новые метаданные Новая функция Вызвать исключение «Не реализовано» Декомпозиция задачи Тесты на блоки, а не на задачу Технический запуск функционала
  • 13. Забыли про данные (антипатерн) • Взяли готовые через DT • Соседу пришлось делать с нуля • Не обдуманный функционал • Мастер-сущности НЕ покрыты кодом
  • 14. Забыли про тест (антипатерн) •Оптимизация невозможна •Влияние на соседей НЕ протестировано •Сосед НЕ знает что поломал •Обновление в ручном режиме
  • 15. Забыли про код (антипатерн) • «Разломали» сборку • Не учли про обратную совместимость • Соседи не знают о новом поведении • НЕ обдуманный функционал
  • 16. Поломались сервера 1С (антипатерн) •Окружение тестов нарушено •Что будет в Production неизвестно •Ручное обновление и проверка •Рутинное дежурство, чтобы исправить то что не учли.
  • 17. Вопрос для самообразования • А как автоматизировать обратный цикл: • Когда в production конфигурации внесли изменения • Теперь необходимо включить изменение в основное хранилище • Написать на изменение тест • Обновить Stage и QA НО НЕ помещать в production
  • 18. Apache Licence 2.0 https://github.com/xDrivenDevelopment • http://xdd.silverbulleters.org/