Best Practices to deal with frequent model
changes of long running processes
Webinar, 21st of March 2017
bernd.ruecker@cam...
Todays speakers
Bernd Rücker
Co-Founder camunda
@berndruecker
bernd.ruecker@camunda.com
Halil Hancioglu
Senior Consultant
...
The basic challenge with long running processes
Change
Long running processes
t
Versioning in Camunda
Version: 47
Version tag: „1.1.0“
Process definition id: 456-271-345
Version: 54
Version Tag: „1.2.0“...
Two basic options in real-life
Run in parallel Migrate to version
A look into our best practices
Agile development
https://www.linkedin.com/pulse/principles-agile-methods-used-business-management-graham-wood
Typically
s...
What do your ops think?
If you run hundreds of version in
parallel,
calling even multiple different
subprocess versions ea...
Migration
API
Cockpit
The migration plan can be
executed in batch or
downloaded as JSON.
Now let‘s get
serious!
© OPITZ CONSULTING 2017 Seite 13
Challenges in real-life project
 Automate it
 Identify Changes
 Do not miss any change...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
“question” (CC-BY) by Mario Mancuso
Why do we n...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Automate it
 Manual effort
 1 Process
 1 Cha...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Automate it
 Manual effort
 5 Process
 2 Cha...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
“CHANGE” (CC-BY-NC-ND) by Martin Deutsch
How do...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Identify Changes
 For Example
 1 Environment
...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Identify Changes
 And if we re-deploy?
 Detec...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Identify Changes
 Use Camunda VersionTag
 In ...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Identify Changes
 Independent from
Definition ...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
How do we ensure that we don't miss any Change?...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Don’t miss any Change
 For Example
 1 Team
 ...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Don’t miss any Change
 Change v2 to v3
PDCA (C...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Don’t miss any Change
 Document Change sequenc...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Don’t miss any Change
 What if another
Teams m...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Don’t miss any Change
 Archive changed model
i...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
How do we ensure that
migration is not mixed
wi...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Not mixing migration and production code
P = Pr...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
"310/366 - Fortbewegungsmittel / Vehicles" (CC-...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Not mixing migration and production code
 Setu...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
“Signage 55 speed limit” (CC-BY) by David Lofin...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Challenges of instance migration
 Process need...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Challenges of instance migration
 Add “return ...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Demo
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Demo
 Approve Order
 Deploy Archive
 Local &...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Demo
 Change v2 to v3
 Extend to validate
inc...
© OPITZ CONSULTING 2017 Seite 38
Conclusion
 Extendable Process Engine
 Flexible & well documented APIs
 Base for conti...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
That’s it….Many Thanks!
Applause (CC-BY-NC-ND) ...
© OPITZ CONSULTING 2017 Seite 40Best Practices to deal with frequent model changes
Q & A
You have Questions…
…We have Ans...
© OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes
Todays speakers
Bernd Rücker
Co-Founder camunda...
Nächste SlideShare
Wird geladen in …5
×

Best Practices to deal with frequent model changes of long running processes

123 Aufrufe

Veröffentlicht am

http://www.opitz-consulting.com

Agile Entwicklungsvorgehen forcieren schnelle Änderungen und häufige Deployments. Auch Prozessmodelle können sich oft ändern, was zu einer großen Anzahl an Versionen von Prozessmodellen in Camunda führt. Diese Komplexität möchte man unter Umständen im Betrieb vermeiden und stattdessen Prozessinstanzen immer in die neuste Version migrieren.

In einem gemeinsamen Webinar beschrieben Experten von Camunda und OPITZ CONSULTING Herausforderungen, Lösung und Best Practices aus einem Camunda BPM Projekt, bei dem diese Migration ebenfalls automatisiert wurde.

Weitere Infos zum Webinar: https://network.camunda.org/webinars/95

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
123
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Best Practices to deal with frequent model changes of long running processes

  1. 1. Best Practices to deal with frequent model changes of long running processes Webinar, 21st of March 2017 bernd.ruecker@camunda.com | halil.hancioglu@opitz-consulting.com
  2. 2. Todays speakers Bernd Rücker Co-Founder camunda @berndruecker bernd.ruecker@camunda.com Halil Hancioglu Senior Consultant @ Opitz Consulting Deutschland GmbH @satspeedy halil.hancioglu@opitz-consulting.com
  3. 3. The basic challenge with long running processes Change Long running processes t
  4. 4. Versioning in Camunda Version: 47 Version tag: „1.1.0“ Process definition id: 456-271-345 Version: 54 Version Tag: „1.2.0“ Process definition id: 911-081-577 ProcessInstanceId ProcessDefinitionId 123-456-789 456-271-345 123-456-790 456-271-345 123-456-791 911-081-577
  5. 5. Two basic options in real-life Run in parallel Migrate to version
  6. 6. A look into our best practices
  7. 7. Agile development https://www.linkedin.com/pulse/principles-agile-methods-used-business-management-graham-wood Typically short iterations Every iteration might contain changes And propably set live
  8. 8. What do your ops think? If you run hundreds of version in parallel, calling even multiple different subprocess versions each, I will kill you. OK – great. We appreciate clear messages. So let‘s migrate 
  9. 9. Migration
  10. 10. API
  11. 11. Cockpit The migration plan can be executed in batch or downloaded as JSON.
  12. 12. Now let‘s get serious!
  13. 13. © OPITZ CONSULTING 2017 Seite 13 Challenges in real-life project  Automate it  Identify Changes  Do not miss any change  Not mixing migration and production code  Challenges of instance migration Best Practices to deal with frequent model changes
  14. 14. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes “question” (CC-BY) by Mario Mancuso Why do we need automation?
  15. 15. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Automate it  Manual effort  1 Process  1 Change per Process  3 Environments 3 manual process migrations
  16. 16. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Automate it  Manual effort  5 Process  2 Change per Process  4 Environments 40 manual process migrations
  17. 17. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes “CHANGE” (CC-BY-NC-ND) by Martin Deutsch How do we identify process changes?
  18. 18. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Identify Changes  For Example  1 Environment  2 Process Changes  Engine detects changes  Create a new Process Definition version Deployment sequence Semantical version Camunda Process Definition version 1 v1 v1 2 v2 v2
  19. 19. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Identify Changes  And if we re-deploy?  Detects only changes to previous version on each deployment  Can’t guarantee the semantical uniqueness of a version across multiple environments Deployment sequence Semantical version Camunda Process Definition version 1 v1 v1 2 v2 v2 3 v1 v3 4 v2 v4 v1 v1 =
  20. 20. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Identify Changes  Use Camunda VersionTag  In Modeler „Properties Panel“  Idea! (CC-BY-ND) by Cristian Carrara
  21. 21. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Identify Changes  Independent from Definition Version  Semantic Naming Convention necessary  E.g. Release & Sprint Number, Git Hash, Git Tag, Maven Version  Change only on relevant commit in Master Branch
  22. 22. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes How do we ensure that we don't miss any Change? „IMG_7181“ (CC-BY-NC-ND) by Dora Wu
  23. 23. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Don’t miss any Change  For Example  1 Team  2 changes in a process  During 1 Sprint  Start with v1  Change v1 to v2 PDCA (CC-BY) by Jurgen Appelo
  24. 24. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Don’t miss any Change  Change v2 to v3 PDCA (CC-BY) by Jurgen Appelo
  25. 25. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Don’t miss any Change  Document Change sequence  Changes must be archived  Migrate iteratively every change PDCA (CC-BY) by Jurgen Appelo
  26. 26. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Don’t miss any Change  What if another Teams modify another processes in same sprint?  How can we centralize all changes during a sprint? Team A Invoice Process Order ProcessTeam B
  27. 27. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Don’t miss any Change  Archive changed model in zip file (local or remote)  Create Migration Plan for each change & add Version Tag  Link each archive and migration plan in central changelog file
  28. 28. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes How do we ensure that migration is not mixed with productive code? “Think of a number.....” (CC-BY-NC-ND) by Mister G.C.
  29. 29. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Not mixing migration and production code P = Production Code M = Migration Code Always running Runs only once on Deploy or on Rlease
  30. 30. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes "310/366 - Fortbewegungsmittel / Vehicles" (CC-BY) by Boris Thaser And More… Camunda REST API is not delivered and therefore also no migration API via REST Execution without Application Server Administrators intervention only in exceptional cases Central logging (e.g., no mailing of log files) Containerizable with Docker
  31. 31. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Not mixing migration and production code  Setup a Migration Tool with Spring Boot  Parallel to the productive code  Dockerized  Automate execution with CI/CD flow  Central Logging Interacts or
  32. 32. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes “Signage 55 speed limit” (CC-BY) by David Lofink Challenges of instance migration
  33. 33. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Challenges of instance migration  Process needs further data for new features  Process variables must also be modified  Instances could not be migrated only with Camunda Migration API  E.g. Modify an Event to a Task  Use Camunda Modification API “Restrictions” (CC-BY) by Davidlohr Bueso
  34. 34. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Challenges of instance migration  Add “return points” temporary as process variable  Can be defined in so-called modification plans  Modify & Migrate to re-run new added validation (Example)
  35. 35. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Demo
  36. 36. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Demo  Approve Order  Deploy Archive  Local & Remote  Logging in PaperTrail  Start with v1  Change v1 to v2  Extend to reopen rejected orders  Notify only when reopened
  37. 37. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Demo  Change v2 to v3  Extend to validate incoming orders
  38. 38. © OPITZ CONSULTING 2017 Seite 38 Conclusion  Extendable Process Engine  Flexible & well documented APIs  Base for continuous improvement  Automated Migration  Benefit  You don’t have to version the Sourcecode, because you’re always on the latest process definition version  @Camunda  Extend Migration API and Modification API with VersionTag and ProcessDefinitionKey Best Practices to deal with frequent model changes
  39. 39. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes That’s it….Many Thanks! Applause (CC-BY-NC-ND) by Kevin Labianco
  40. 40. © OPITZ CONSULTING 2017 Seite 40Best Practices to deal with frequent model changes Q & A You have Questions… …We have Answers
  41. 41. © OPITZ CONSULTING 2017 Best Practices to deal with frequent model changes Todays speakers Bernd Rücker Co-Founder camunda @berndruecker bernd.ruecker@camunda.comHalil Hancioglu Senior Consultant @ Opitz Consulting Deutschland GmbH @satspeedy halil.hancioglu@opitz-consulting.com

×