SlideShare una empresa de Scribd logo
1 de 16
CI для Microsoft
Dynamics CRM
Савран Роман
ООО «Украинские Динамические Системы»
WhoAmIResponse


Савран Роман Александрович



Украинские Динамические Системы



Программирую для Microsoft Dynamics CRM 7 лет



Выступал в роли разработчика/архитектора/руководителя команды для
проектов внедрения Microsoft CRM
Структура презентации

Подходы разработки AS WAS
Подходы разработки AS IS

Что такое CI и с чем его едят
Методы реализации CI для Microsoft
CRM
0-й уровень зрелости
чик-чик и в продакшн


Устанавливаем среду у заказчика



Программист пишет код со слов заказчика, требования не фиксируются



Разрабатывает на той же среде, которая у него установлена



Исходный код хранится на ноутбуке программиста



За день-два до запуска показываем заказчику и краснеем, от того что
ничего не работает



В определенный момент говорим «Ок, это теперь продакшн»



Продолжаем разрабатывать и фиксать баги на этой же среде. Возможно
имеем запасную для тестирования сложных требований
Как мы делаем сейчас


Для хранения требований, задач и управления ими используем
TFS/систему заказчика



Его же используем для хранения исходного кода/версионности (либо
систему заказчика)



Используем 3+ сред для разработки/тестирования/продакшн



Используем Unit Tests и ручное тестирование



На сложных проектах с большой командой используем Continuous
Integration
Что нужно для реализации Continuous
Integration?
Система контроля версий
• TFS
• SVN
• Все производимые
настройки должны иметь
возможность быть
отраженными в виде
файлов

Автоматическое
тестирование и
разворачивание
• TFS
• Hudson
• Утилита для выгрузки
настроек из CRM системы
• Утилита для
разворачивания настроек
из Системы контроля
версий
Проблемы разработки без системы
контроля версий


Сложность координации при наличии изменений многими членами команды
одного компонента или связанных компонент



Нет истории изменений



Нет привязки к конкретным задачам и понимания для чего производились
изменения (требует интеграции с системой управления требованиями)



Есть риск потери исходного кода при уходе разработчика или проблемами с
железом



Сложно найти последнюю актуальную версию исходного кода, если он
менялся несколькими людьми



Проблемы при необходимости подменить человека на определенный период,
или необходимости срочного исправления кода в отсутствие программиста



Сложность контроля качества исходного кода
Проблемы разработки без
автоматического разворачивания


Большие трудозатраты на перенос решений (в частности из-за скорости
импорта решений в Microsoft CRM)



Растут очень быстро с увеличением количества сред



Большие относительные трудозатраты при переносе небольших изменений
(добавить поле – 1 минута, перенести на продакт – 20 минут). Как результат
естественное желание исправить на продакте и рассинхронизировать среды



Человеческий фактор


При экспорте





Забыл включить в решение
Включил в решение недоделанный функционал (возможно не свой)

При импорте


Забыл сделать Publish All



Забыл поставить галочку Publish all workflows … при импорте



Не перепубликовал Duplicate detection rules
Что дает Continuous Integration?


Ускорение цикла разработки при отсутствии уменьшения качества



Автоматическое выявление конфликтов при работе над компонентами
нескольких людей



Изоляция разработок



Уменьшение себестоимости поддержки и развития решения
Недостатки Continuous Integration


Стоимость разработки и тестирования схемы



Стоимость разворачивания схемы для проекта



Необходимы

льшие серверные ресурсы
Сложности построения CI для Microsoft
CRM


Исходный код составляет малую часть изменений при разработке, кроме них
есть:



Roles



WorkFlow



Reports





Настройки объектов, форм, представлений

Dashboards/Charts e.t.c.

Особенности переноса решений:


Workflow должны быть зарегистрированы от пользователя производящего импорт



Duplication Rules могут перестать быть опубликованными при изменении метаданных



У Plugin registration steps зарегистрированных работать от имени конкретной учетной
записи, ставится по умолчанию Calling User
Схема
Parallel development
Dev lab

Test lab

Prod environment

Update

CRM Environment
dev1

Story 1

Local folder

Update
Unlock

Trunc

Commit

CRM Environment
dev2

Story 2

Local folder

Commit

SVN

Autodeploy
Lock svn on deploy

CRM Environment
Dev-Test
(Check)

Merged Solution

CRM Environment
Test (QC)
Mainstream testing

Commit

CRM Environment
bugfix

Story 3

CRM Environment
dev1

Story 1

Local folder
Solution merge when needed

Solution

Local folder

Approve

Approve

Branch

Commit

CRM Environment
dev2

Story 2

Local folder

Commit

SVN

Autodeploy
Lock svn on deploy

CRM Environment
Dev-Test 2
(Check)

Commit

CRM Environment
bugfix

Story 3

Local folder

Unlock

Branch solution

CRM Environment
Test (QC)
Branch testing

Merged Solution

CRM Environment
Beta

Merged Solution

CRM Environment
Prod
Построение отражения CRM –> SVN
Выгрузка
решения из
CRM

Распаковка
решения

Чистка
решения от
битых ссылок

Заливка
распакованного
решения в SVN

Выгрузка
решения Default
при помощи
ExportSolutionReq
uest

Использование
утилиты
SolutionPackager
для распаковки
выгруженного
решения в папку
под контролем
версий

Убирание ссылок
на компоненты
управляемых
решений,
которые не
выгружаются

Вызов
TortoiseSVN для
заливки решений
Построение отражения SVN -> CRM

Обновление
SVN

Запаковка
решения

Совершение
доимпортных
операций

Импорт
решения

Совершение
послеимпортных
операций
Публикация
настроек

Выгрузка
последних
изменений из
SVN

Использован
ие утилиты
SolutionPacka
ger для
формировани
я пакета
решения

Выполнение
автоматических
действий

Импорт
решения при
помощи
вызова
ImportSolutio
nRequest

Публикация
duplicate
detection
rules
Выполнение
автоматических
действий
SolutionPackager


Распаковывает решение, выгруженное из CRM в виде zip файла в набор
структурированных по папкам xml файлов
Entity
Entity Form
Entity View
Option Set
Entity Relationship
Ribbon Customization
Site Map
Web Resources
Role
Connection Role
Dashboard
Workflow
Email Template
Contract Template
Kb Article Template
Mail Merge Template
PluginAssembly
SdkMessageProcessingStep
ServiceEndpoint
Reports
EntityMap
Вопросы?

Más contenido relacionado

La actualidad más candente

Contineous Integration by Надежда Кныш
Contineous Integration by Надежда КнышContineous Integration by Надежда Кныш
Contineous Integration by Надежда Кныш
QA Club Minsk
 
Контроль качества с использованием продуктов Ibm Rational
Контроль качества с использованием продуктов Ibm RationalКонтроль качества с использованием продуктов Ibm Rational
Контроль качества с использованием продуктов Ibm Rational
Александр Шамрай
 

La actualidad más candente (20)

CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
 
Петр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRMПетр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRM
 
Team workflow
Team workflowTeam workflow
Team workflow
 
Java one presentation
Java one presentationJava one presentation
Java one presentation
 
Андрей Кощеев - Мастерство управления качеством в полном цикле разработки
Андрей Кощеев - Мастерство управления качеством в полном цикле разработкиАндрей Кощеев - Мастерство управления качеством в полном цикле разработки
Андрей Кощеев - Мастерство управления качеством в полном цикле разработки
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01
 
Contineous Integration by Надежда Кныш
Contineous Integration by Надежда КнышContineous Integration by Надежда Кныш
Contineous Integration by Надежда Кныш
 
Оценка аутсорсинговых проектов
Оценка аутсорсинговых проектовОценка аутсорсинговых проектов
Оценка аутсорсинговых проектов
 
Пять вещей, которые нужно знать заказчику
Пять вещей, которые нужно знать заказчикуПять вещей, которые нужно знать заказчику
Пять вещей, которые нужно знать заказчику
 
Continuous integration with TeamCity
Continuous integration with TeamCityContinuous integration with TeamCity
Continuous integration with TeamCity
 
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
 
внедрении Wpf в сложных системах (слайды)
внедрении Wpf в сложных системах (слайды)внедрении Wpf в сложных системах (слайды)
внедрении Wpf в сложных системах (слайды)
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПО
 
Контроль качества с использованием продуктов Ibm Rational
Контроль качества с использованием продуктов Ibm RationalКонтроль качества с использованием продуктов Ibm Rational
Контроль качества с использованием продуктов Ibm Rational
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkov
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rus
 
Mva stf module 6 - rus
Mva stf module 6 - rusMva stf module 6 - rus
Mva stf module 6 - rus
 

Similar a CI для Microsoft Dynamics crm

плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14
IKonkov
 
Вебинар Microsoft ALM (11.12.2012)
Вебинар Microsoft ALM (11.12.2012)Вебинар Microsoft ALM (11.12.2012)
Вебинар Microsoft ALM (11.12.2012)
Dmitry Melikov
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
ScrumTrek
 
บริหารเวลา
บริหารเวลาบริหารเวลา
บริหารเวลา
toomtam
 

Similar a CI для Microsoft Dynamics crm (20)

плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14
 
Обзор и архитектура MS Team System
Обзор и архитектура MS Team SystemОбзор и архитектура MS Team System
Обзор и архитектура MS Team System
 
Масштабирование Agile в Единой фронтальной системе Сбербанка
Масштабирование Agile в Единой фронтальной системе СбербанкаМасштабирование Agile в Единой фронтальной системе Сбербанка
Масштабирование Agile в Единой фронтальной системе Сбербанка
 
Сергей Рогачев. Agile на гигантских размерах
Сергей Рогачев. Agile на гигантских размерахСергей Рогачев. Agile на гигантских размерах
Сергей Рогачев. Agile на гигантских размерах
 
paper BPM on Rails4
paper BPM on Rails4paper BPM on Rails4
paper BPM on Rails4
 
Lombardi Software — назначение и основные возможности программных продуктов
Lombardi Software — назначение и основные возможности программных продуктовLombardi Software — назначение и основные возможности программных продуктов
Lombardi Software — назначение и основные возможности программных продуктов
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
 
Вебинар Microsoft ALM (11.12.2012)
Вебинар Microsoft ALM (11.12.2012)Вебинар Microsoft ALM (11.12.2012)
Вебинар Microsoft ALM (11.12.2012)
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"
 
Continuous Integration(как мы подружили frontend и backend)
Continuous Integration(как мы подружили frontend и backend)Continuous Integration(как мы подружили frontend и backend)
Continuous Integration(как мы подружили frontend и backend)
 
Continuous integration, или как мы подружили front end и back-end
Continuous integration,  или как мы подружили  front end и back-endContinuous integration,  или как мы подружили  front end и back-end
Continuous integration, или как мы подружили front end и back-end
 
I forum-cms
I forum-cmsI forum-cms
I forum-cms
 
MS ALM 2013 Review
MS ALM 2013 ReviewMS ALM 2013 Review
MS ALM 2013 Review
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектов
 
презентация.1
презентация.1презентация.1
презентация.1
 
MockServer-driven development
MockServer-driven developmentMockServer-driven development
MockServer-driven development
 
บริหารเวลา
บริหารเวลาบริหารเวลา
บริหารเวลา
 
Презентация IBM Solutions Connect 2015
Презентация IBM Solutions Connect 2015 Презентация IBM Solutions Connect 2015
Презентация IBM Solutions Connect 2015
 
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»
 

CI для Microsoft Dynamics crm

  • 1. CI для Microsoft Dynamics CRM Савран Роман ООО «Украинские Динамические Системы»
  • 2. WhoAmIResponse  Савран Роман Александрович  Украинские Динамические Системы  Программирую для Microsoft Dynamics CRM 7 лет  Выступал в роли разработчика/архитектора/руководителя команды для проектов внедрения Microsoft CRM
  • 3. Структура презентации Подходы разработки AS WAS Подходы разработки AS IS Что такое CI и с чем его едят Методы реализации CI для Microsoft CRM
  • 4. 0-й уровень зрелости чик-чик и в продакшн  Устанавливаем среду у заказчика  Программист пишет код со слов заказчика, требования не фиксируются  Разрабатывает на той же среде, которая у него установлена  Исходный код хранится на ноутбуке программиста  За день-два до запуска показываем заказчику и краснеем, от того что ничего не работает  В определенный момент говорим «Ок, это теперь продакшн»  Продолжаем разрабатывать и фиксать баги на этой же среде. Возможно имеем запасную для тестирования сложных требований
  • 5. Как мы делаем сейчас  Для хранения требований, задач и управления ими используем TFS/систему заказчика  Его же используем для хранения исходного кода/версионности (либо систему заказчика)  Используем 3+ сред для разработки/тестирования/продакшн  Используем Unit Tests и ручное тестирование  На сложных проектах с большой командой используем Continuous Integration
  • 6. Что нужно для реализации Continuous Integration? Система контроля версий • TFS • SVN • Все производимые настройки должны иметь возможность быть отраженными в виде файлов Автоматическое тестирование и разворачивание • TFS • Hudson • Утилита для выгрузки настроек из CRM системы • Утилита для разворачивания настроек из Системы контроля версий
  • 7. Проблемы разработки без системы контроля версий  Сложность координации при наличии изменений многими членами команды одного компонента или связанных компонент  Нет истории изменений  Нет привязки к конкретным задачам и понимания для чего производились изменения (требует интеграции с системой управления требованиями)  Есть риск потери исходного кода при уходе разработчика или проблемами с железом  Сложно найти последнюю актуальную версию исходного кода, если он менялся несколькими людьми  Проблемы при необходимости подменить человека на определенный период, или необходимости срочного исправления кода в отсутствие программиста  Сложность контроля качества исходного кода
  • 8. Проблемы разработки без автоматического разворачивания  Большие трудозатраты на перенос решений (в частности из-за скорости импорта решений в Microsoft CRM)  Растут очень быстро с увеличением количества сред  Большие относительные трудозатраты при переносе небольших изменений (добавить поле – 1 минута, перенести на продакт – 20 минут). Как результат естественное желание исправить на продакте и рассинхронизировать среды  Человеческий фактор  При экспорте    Забыл включить в решение Включил в решение недоделанный функционал (возможно не свой) При импорте  Забыл сделать Publish All  Забыл поставить галочку Publish all workflows … при импорте  Не перепубликовал Duplicate detection rules
  • 9. Что дает Continuous Integration?  Ускорение цикла разработки при отсутствии уменьшения качества  Автоматическое выявление конфликтов при работе над компонентами нескольких людей  Изоляция разработок  Уменьшение себестоимости поддержки и развития решения
  • 10. Недостатки Continuous Integration  Стоимость разработки и тестирования схемы  Стоимость разворачивания схемы для проекта  Необходимы льшие серверные ресурсы
  • 11. Сложности построения CI для Microsoft CRM  Исходный код составляет малую часть изменений при разработке, кроме них есть:   Roles  WorkFlow  Reports   Настройки объектов, форм, представлений Dashboards/Charts e.t.c. Особенности переноса решений:  Workflow должны быть зарегистрированы от пользователя производящего импорт  Duplication Rules могут перестать быть опубликованными при изменении метаданных  У Plugin registration steps зарегистрированных работать от имени конкретной учетной записи, ставится по умолчанию Calling User
  • 12. Схема Parallel development Dev lab Test lab Prod environment Update CRM Environment dev1 Story 1 Local folder Update Unlock Trunc Commit CRM Environment dev2 Story 2 Local folder Commit SVN Autodeploy Lock svn on deploy CRM Environment Dev-Test (Check) Merged Solution CRM Environment Test (QC) Mainstream testing Commit CRM Environment bugfix Story 3 CRM Environment dev1 Story 1 Local folder Solution merge when needed Solution Local folder Approve Approve Branch Commit CRM Environment dev2 Story 2 Local folder Commit SVN Autodeploy Lock svn on deploy CRM Environment Dev-Test 2 (Check) Commit CRM Environment bugfix Story 3 Local folder Unlock Branch solution CRM Environment Test (QC) Branch testing Merged Solution CRM Environment Beta Merged Solution CRM Environment Prod
  • 13. Построение отражения CRM –> SVN Выгрузка решения из CRM Распаковка решения Чистка решения от битых ссылок Заливка распакованного решения в SVN Выгрузка решения Default при помощи ExportSolutionReq uest Использование утилиты SolutionPackager для распаковки выгруженного решения в папку под контролем версий Убирание ссылок на компоненты управляемых решений, которые не выгружаются Вызов TortoiseSVN для заливки решений
  • 14. Построение отражения SVN -> CRM Обновление SVN Запаковка решения Совершение доимпортных операций Импорт решения Совершение послеимпортных операций Публикация настроек Выгрузка последних изменений из SVN Использован ие утилиты SolutionPacka ger для формировани я пакета решения Выполнение автоматических действий Импорт решения при помощи вызова ImportSolutio nRequest Публикация duplicate detection rules Выполнение автоматических действий
  • 15. SolutionPackager  Распаковывает решение, выгруженное из CRM в виде zip файла в набор структурированных по папкам xml файлов Entity Entity Form Entity View Option Set Entity Relationship Ribbon Customization Site Map Web Resources Role Connection Role Dashboard Workflow Email Template Contract Template Kb Article Template Mail Merge Template PluginAssembly SdkMessageProcessingStep ServiceEndpoint Reports EntityMap