Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Things to think about while architecting azure solutions

2,346 views

Published on

Published in: Technology
  • Login to see the comments

  • Be the first to like this

Things to think about while architecting azure solutions

  1. 1. Things to think about whilearchitecting Azure solutions<br />
  2. 2. Famous Last Words…<br />“It is a very humbling experience to make a multimillion-dollar mistake, but it is also very memorable….”<br />(Fred Brooks - “Mythical Man-Month” p.47)<br />
  3. 3. So, What is Software Architecture exactly?<br />
  4. 4. Software architecture is the fundamentalorganization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution<br />
  5. 5. Architecture forces<br />Stakeholders<br />Quality <br />Attributes<br />Constraints<br />Principles<br />Community <br />experience<br />Architect<br />Architecture<br />Patterns & <br />Anti-patterns<br />Key<br />people<br />Technology<br />A “deliverable”<br />Produce<br />Is an input <br />
  6. 6.
  7. 7. Dequeue/Delete pattern<br />The Network is reliable<br />
  8. 8. Dequeue/Delete pattern<br />The Network is reliable<br />Still a problem <br />If we crash here<br />
  9. 9. Idempotencyf(x) = f(f(x))<br />
  10. 10. Messages Process At Least Once<br />Debit bank account $100 message<br />Worker role reads message<br />Balance debited $100<br />Worker role is torn before message can be deleted<br />3 minutes later, message re-appears on queue<br />Worker role reads message<br />Balance debited $100<br />Message deleted from queue<br />Chaos ensues.....<br />Customer calls bank.....<br />Web Role<br />Worker Role<br />Balance = $1000<br />Balance = $900<br />Balance = $800<br />Worker Role<br />Web Role<br />Worker Role<br />Worker Role<br />Queue<br />Storage<br />LB<br />LB<br />
  11. 11. Solving the Idempotency Problem<br />Debit bank account $100 message with transaction ID<br />Worker role reads message. Checks transaction ID not present.<br />Writes transaction ID with state ‘Started’ to ‘Replay Log’<br />Balance debited $100<br />Worker role is torn before message can be deleted<br />3 minutes later, message re-appears on queue<br />Worker role reads message. Checks transaction ID. It is present in state started.<br />Compensating message written to another queue<br />Message deleted from queue<br />Compensatory message processed.<br />Balance = $1000<br />Balance = $900<br />Web Role<br />Worker Role<br />Worker Role<br />Web Role<br />Storage<br />Worker Role<br />Worker Role<br />Query<br />Query<br />Queue<br />Queue<br />Table<br />LB<br />LB<br />
  12. 12. Latency is zero<br />
  13. 13. It might be infinite for all purposes but it costs…<br />Bandwidth is infinite <br />
  14. 14. Authentication with ACS<br />The Network is Secure<br />Slide by Alik Levin<br />
  15. 15. Service Bus<br />Provides secure messaging and connectivity across different network topologies<br />Enables hybrid applications that span on-premises and the cloud<br />Enables various communication protocols and patterns for developers to engage in reliable messaging<br />Topology doesn’t change<br />
  16. 16. Enabling hybrid applications<br />Datacenter<br />Partner<br />LOB app<br />Mobile Device<br />LOB web service<br />
  17. 17. Enabling hybrid applications<br />Datacenter<br />Partner<br />ACS<br />LOB app<br />SB<br />Mobile Device<br />LOB web service<br />
  18. 18. Enabling hybrid applications<br />Datacenter<br />Partner<br />ACS<br />LOB app<br />SB<br />Mobile Device<br />LOB web service<br />
  19. 19. Enabling hybrid applications<br />Partner<br />Datacenter<br />ACS<br />LOB app<br />SB<br />Mobile Device<br />LOB web service<br />
  20. 20. Enabling hybrid applications<br />Partner<br />Datacenter<br />ACS<br />LOB app<br />SB<br />Mobile Device<br />LOB web service<br />
  21. 21. Electricity <br />Power Grid<br />Demo<br />
  22. 22. Don’t assume specific instances<br />Virtual IP : 1.1.1.2<br />Virtual IP : 1.1.1.3<br />Virtual IP : 1.1.1.4<br />Worker Role<br />Worker Role<br />Web Role<br />Service <br />Service <br />IIS<br />Instance<br />Instance<br />Windows Kernel<br />Windows Kernel<br />Windows Kernel<br />TCP/IP<br />TCP/IP<br />TCP/IP<br />TCP/IP<br />TCP/IP<br />NLB Driver<br />NIC Driver<br />NIC Driver<br />NIC Driver<br />Virtual NIC<br />Virtual NIC<br />Virtual NIC<br />Virtual IP : 1.1.1.1<br />
  23. 23. Inter-role communications<br />
  24. 24. Reduced Headache on the one handNew challenges on the other<br />There is one administrator<br />
  25. 25. Azure MMC Snap-in <br />http://code.msdn.microsoft.com/windowsazuremmc<br />
  26. 26. Cerebrata – Azure Diagnostics Manager<br />http://www.cerebrata.com/Products/AzureDiagnosticsManager/Default.aspx<br />
  27. 27. Distribution cost in serialization, time on the wire, security <br />Transport cost is zero<br />
  28. 28. A lot of calls to fulfill a business function<br />
  29. 29. Bring Data close to computation<br />
  30. 30. It isn’t – but it’s abstractedunless of course you use Azure connect<br />The Network is homogenous <br />Quickly connect on-premise computers with the cloud, no networking configuration required<br />Supports standard IP protocols; secured using end-to-end IPSec<br />Integrated with the Windows Azure Service Model; all role types supported<br />
  31. 31. Deployment view<br />Consider xsmall instances for development<br />Test if you can use less than medium for production <br />
  32. 32. Cost considerations<br />You pay when you’re deployed (there is no “shelving”)<br />Shutdown doesn’t help<br />(keep CPUs running..)<br />
  33. 33. 2 Small instances cost the same as 1 medium instance<br />
  34. 34. 2 instances can give you better availability<br />Need to be on different fault and upgrade domains<br />
  35. 35. I/O performance on smaller instances might be problematic<br />
  36. 36. You can control Azure from scripts and code (even dev fabric)<br />Testing<br />
  37. 37. Demo Cloudoscope Acceptance Tests<br />
  38. 38. Illustrations<br />Slide 11 http://www.sxc.hu/photo/1201443<br />Slide http://www.sxc.hu/photo/1160486<br />

×