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

BENEVOL 2016 - Safer Software Upgrades With Con...

BENEVOL 2016 - Safer Software Upgrades With Continuous Deployment and Model Driven Development

Efficient and seamless upgrades will enable Continuous Deployment. Doing upgrades often makes the upgrade smaller and easier, which will lead to safer upgrades. Model-Driven Development leads to higher abstraction, which will lead to safer upgrades, because more is automated.

This was presented at Benevol (http://benevol2016.org/)

Michiel Overeem

December 08, 2016
Tweet

More Decks by Michiel Overeem

Other Decks in Technology

Transcript

  1. Current state of our ERP product  Windows application, Web

    capabilities built on top  MS SQL as datastore  4 a 5 upgrades a year  Patches on demand  Upgrades have downtime
  2. Current state of our ERP product  Windows application, Web

    capabilities built on top  MS SQL as datastore  4 a 5 upgrades a year  Patches on demand  Upgrades have downtime Cloud first
  3. Current state of our ERP product  Windows application, Web

    capabilities built on top  MS SQL as datastore  4 a 5 upgrades a year  Patches on demand  Upgrades have downtime Model driven
  4. How to keep Profit NEXT running while everything changes? Enterprise

    Application Software in a model-driven, cloud-based platform
  5. Application (code + data) Application (code + data) model model

    Cloud manager model generator deployer Application (code + data) model model model model model Application (code + data) Application (code + data) Application (code + data) Application (code + data) Application (code + data) Anatomy of Profit NEXT Wait, should we generate or interpret this model?
  6. Tabel met resultaten 32 papers, 124 opinions, 12 quality characteristics

    M. Overeem, S. Jansen, An Exploration of the ‘It’ in ‘It Depends’: Generative versus Interpretive MDD, MODELSWARD 2017 But meta-model, architecture, platform play a role!
  7. Model Modelv2 Application Evolved into Translated into Translated into Deployed

    to Upgraded on M Mv2 Yoder, J. W., & Johnson, R. The Adaptive Object-Model Architectural Style. WICSA3 ’02 improved turn-around times & process sharing (multi-tenancy)
  8. Model Modelv2 Application Data Applicationv2 Datav2 Evolved into Translated into

    Stores data Stores data Is converted to Translated into
  9. Event sourcing explained accountId Balance owner 1234567 0 Michiel Current

    view only Event stream Event BankAccountCreated (accountId: 1234567, owner: Michiel); DepositPerformed (accountId : 1234567, amount: 100, balance: 100); WithdrawalPerformed (accountId: 1234567, amount: 50, balance: 50); OwnerChanged (accountId: 1234567, newOwner: Marten); accountId Balance owner 1234567 50 Marten
  10. Streams in a store Store Backaccount Stream #1234567 BankAccountCreated Backaccount

    Stream #7654321 DepositPerformed WithdrawalPerformed BankAccountCreated DepositPerformed DepositPerformed
  11. Challenges for Profit Next • Much more data than traditional

    current view. • No standardized language (like SQL) that helps in expressing transformations. • Data changes cannot be scheduled, zero- downtime is needed.
  12. Basic & Complex Event Basic & Complex Stream Basic Store

    Complex Store Executed by Lazy transformation Upcasting Multiple versions Basic & Complex Event Basic & Complex Stream Basic Store Complex Store Executed by Executed by Lazy transformation Upcasting In place transfor- mation Multiple versions Copy and transfor- mation Basic & Complex Event Basic & Complex Stream Basic Store Complex Store Deployed with Executed by Executed by Data upgrade Application upgrade Lazy transformation Upcasting In place transfor- mation Multiple versions Copy and transfor- mation Basic & Complex Event Basic & Complex Stream Basic Store Complex Store Big Flip Rolling Upgrade Blue-Green Combined with Deployed with Executed by Executed by Data upgrade Application upgrade Lazy transformation Upcasting In place transfor- mation Multiple versions Copy and transfor- mation Basic & Complex Event Basic & Complex Stream Basic Store Complex Store Big Flip Rolling Upgrade Blue-Green Expand- Contract Blue- Green Deployed with 1. Operations to express data conversion, categorized on single versus multiple stream. 2. Techniques that can execute the single- stream-operations. 3. Techniques that can execute the multiple-stream-operations. 4. Strategies to deploy the upgraded application. 5. Strategies to execute the data conversion. M. Overeem, M. Spoor, S. Jansen, The Dark Side of Event Sourcing: Managing Data Conversion, SANER 2017
  13. Basic & Complex Event Basic & Complex Stream Basic Store

    Complex Store Executed by Lazy transformation Upcasting Multiple versions Basic & Complex Event Basic & Complex Stream Basic Store Complex Store Executed by Executed by Lazy transformation Upcasting In place transfor- mation Multiple versions Copy and transfor- mation Basic & Complex Event Basic & Complex Stream Basic Store Complex Store Deployed with Executed by Executed by Data upgrade Application upgrade Lazy transformation Upcasting In place transfor- mation Multiple versions Copy and transfor- mation Basic & Complex Event Basic & Complex Stream Basic Store Complex Store Big Flip Rolling Upgrade Blue-Green Combined with Deployed with Executed by Executed by Data upgrade Application upgrade Lazy transformation Upcasting In place transfor- mation Multiple versions Copy and transfor- mation Basic & Complex Event Basic & Complex Stream Basic Store Complex Store Big Flip Rolling Upgrade Blue-Green Expand- Contract Blue- Green Deployed with 1. Operations to express data conversion, categorized on single versus multiple stream. 2. Techniques that can execute the single- stream-operations. 3. Techniques that can execute the multiple-stream-operations. 4. Strategies to deploy the upgraded application. 5. Strategies to execute the data conversion. M. Overeem, M. Spoor, S. Jansen, The Dark Side of Event Sourcing: Managing Data Conversion, SANER 2017 Switch the upgrade strategy (run-time versus deploy-time conversion) on the operations as needed.
  14. Model Modelv2 Application Data Applicationv2 Datav2 Evolved into Translated into

    Stores data Stores data Is upgraded to Is converted to Translated into M Mv2 Can we use the model diff for both application upgrade as data conversion?
  15. Model Modelv2 Application Data Applicationv2 Datav2 Evolved into Translated into

    Stores data Stores data Is upgraded to Is converted to Translated into M Mv2 How to garantuee safety on updating the interpreted model?
  16. Model Modelv2 Application Data Applicationv2 Datav2 Evolved into Translated into

    Stores data Stores data Is upgraded to Is converted to Translated into M Mv2 Can we use the same techniques for changes originated in the platform