Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Алексей Мерсон «Integration hell: путеводитель»

DotNetRu
October 03, 2019

Алексей Мерсон «Integration hell: путеводитель»

Жизнь энтерпрайз-разработчика — это бесконечные интеграции. Интеграции повсюду. Если не интегрируетесь вы, то интегрируются с вами. И почти всегда интеграции — это боль. Много боли. В своем докладе Алексей расскажет, как купировать боль и выжить.

DotNetRu

October 03, 2019
Tweet

More Decks by DotNetRu

Other Decks in Programming

Transcript

  1. Немного о себе •15 лет в разработке •Больше десятка проектов

    от мала до велика •Интеграции, интеграции, интеграции… 2
  2. 3

  3. 4

  4. 5

  5. 6

  6. 7

  7. 8

  8. 9

  9. 10

  10. 19

  11. 20

  12. 21

  13. 22

  14. <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sig="http://www.w3.org/2000/09/xmldsig#"> <xsl:output method="xml" version="1.0"

    encoding="UTF-8" indent="yes"/> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="sig:Signature"> <xsl:apply-templates select="./sig:Object/*" /> </xsl:template> </xsl:stylesheet> 23
  15. 24

  16. 25

  17. 26

  18. 27 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0“ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="no"/>

    <xsl:template match="/|comment()|processing-instruction()"> <xsl:copy> <xsl:apply-templates/> </xsl:copy> </xsl:template> <xsl:template match="*"> <xsl:element name="{local-name()}"> <xsl:apply-templates select="@*|node()"/> </xsl:element> </xsl:template> <xsl:template match="@*"> <xsl:attribute name="{local-name()}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:template> </xsl:stylesheet>
  19. 28

  20. 29

  21. 34

  22. 43 Dev • Владельцы: разработчики • Данные: лишь бы запускалось

    • Код: лишь бы запускалось • Интеграции: стабы Test • Владельцы: тестировщики • Данные: подготовлены для тестов • Код: протестирован • Интеграции: стабы PreProd • Владельцы: тестировщики, девопсы • Данные: копия боевых • Код: боевой с нюансами • Интеграции: от стабов до боевых Prod • Владельцы: девопсы, менеджмент • Данные: боевые • Код: боевой • Интеграции: боевые
  23. 44 Dev • Владельцы: разработчики • Данные: лишь бы запускалось

    • Код: лишь бы запускалось • Интеграции: стабы Test • Владельцы: тестировщики • Данные: подготовлены для тестов • Код: протестирован • Интеграции: стабы PreProd • Владельцы: тестировщики, девопсы • Данные: копия боевых • Код: боевой с нюансами • Интеграции: от стабов до боевых Prod • Владельцы: девопсы, менеджмент • Данные: боевые • Код: боевой • Интеграции: боевые
  24. 45 Dev • Владельцы: разработчики • Данные: лишь бы запускалось

    • Код: лишь бы запускалось • Интеграции: стабы Test • Владельцы: тестировщики • Данные: подготовлены для тестов • Код: протестирован • Интеграции: стабы PreProd • Владельцы: тестировщики, девопсы • Данные: копия боевых • Код: боевой с нюансами • Интеграции: от стабов до боевых Prod • Владельцы: девопсы, менеджмент • Данные: боевые • Код: боевой • Интеграции: боевые
  25. 46 Dev • Владельцы: разработчики • Данные: лишь бы запускалось

    • Код: лишь бы запускалось • Интеграции: стабы Test • Владельцы: тестировщики • Данные: подготовлены для тестов • Код: протестирован • Интеграции: стабы PreProd • Владельцы: тестировщики, девопсы • Данные: копия боевых • Код: боевой с нюансами • Интеграции: от стабов до боевых Prod • Владельцы: девопсы, менеджмент • Данные: боевые • Код: боевой • Интеграции: боевые
  26. 47

  27. 52

  28. 62

  29. 65

  30. 68

  31. 72

  32. Подытожим 80 •Все беды от потери контроля •Изолируйте изменения •Тестируйте

    интеграции •Тестируйте ваш код •Используйте тестовые окружения
  33. Подытожим 85 •Все беды от клиентов •Начните с проблемы •Пишите

    документацию •Пишите тесты •Используйте версионирование
  34. 86

  35. 87