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

Lessons Learned: Migrating an N-tier web application to microservices with NServiceBus

Lessons Learned: Migrating an N-tier web application to microservices with NServiceBus

In this session at Microsoft TechDays 2015 in The Hague, I explained how I transformed an existing N-tier web application to a more scalable and manageable architecture in the microservices style. I presented the reasons for migrating and a 5-step migration plan.

Roy Cornelissen

May 28, 2015
Tweet

More Decks by Roy Cornelissen

Other Decks in Programming

Transcript

  1. If you expect (or know) that your system is complex

    and/or has to scale in multiple dimensions
  2. Big Ol’ Database Integration Layer Service Layer Presentation Layer Silverlight

    Planning UI Integration Service WCF Application Logic Webservices
  3. Big Ol’ Database Integration Layer Service Layer Presentation Layer Silverlight

    Planning UI Integration Service WCF Application Logic Webservices horizontal Common Budget Payment Schedule
  4. Services keep their own state Events are used to notify

    changes Each service will have its own database Services use events to replicate data
  5. Message Bus Big Ol’ Database Legacy logic Common Budget Payment

    Schedule Presentation Layer Budget UI Scheduling UI Organization UI Payment UI Budget Webservice Scheduling Webservice Organization Webservice Payment Webservice
  6. Message Bus Big Ol’ Database Legacy logic Common Budget Payment

    Schedule Presentation Layer Budget UI Scheduling UI Organization UI Payment UI Budget Webservice Scheduling Webservice Organization Webservice Payment Webservice Export
  7. Message Bus Big Ol’ Database Legacy logic Common Budget Payment

    Schedule Presentation Layer Budget UI Scheduling UI Organization UI Payment UI Budget Webservice Scheduling Webservice Organization Webservice Payment Webservice Export Composite UI
  8. Message Bus Big Ol’ Database Legacy logic Common Budget Payment

    Schedule Presentation Layer Budget UI Scheduling UI Organization UI Payment UI Budget Webservice Scheduling Webservice Organization Webservice Payment Webservice Export
  9. Service endpoints Presentation Layer Budget Scheduling Payment Organization Budget UI

    Scheduling UI Organization UI Payment UI Budget Webservice Scheduling Webservice Organization Webservice Payment Webservice Message Bus
  10. 1. Define boundaries and publish events 2.Use these events to

    develop new features 3.Think about composite UI 4.Migrate existing logic to background 5.Split up the database
  11. Get access to 2 full days of Udi Dahan's Advanced

    Distributed Systems Design video course. Sign up here: http://go.particular.net/DutchTechDays Access code: HIHIWE Expiration date: 15/6/2015
  12. Your feedback is important! Scan the QR Code and let

    us know via the TechDays App. Laat ons weten wat u van de sessie vindt! Scan de QR Code via de TechDays App. Bent u al lid van de Microsoft Virtual Academy?! Op MVA kunt u altijd iets nieuws leren over de laatste technologie van Microsoft. Meld u vandaag aan op de MVA Stand. MVA biedt 7/24 gratis online training on-demand voor IT- Professionals en Ontwikkelaars.