Azure migration

2,676 views
2,524 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,676
On SlideShare
0
From Embeds
0
Number of Embeds
101
Actions
Shares
0
Downloads
54
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • InterviewsArchitecture & design reviewAssessment tools (e.g. SQL Azure Migration wizard, TCO calculator)
  • Azure migration

    1. 1. ArnonRotem-Gal-Oz<br />VP Product Delivery<br />www.codevalue.net<br />Migrating Applications to Azure Cloud<br />
    2. 2. Azure migration is a porting project<br />Gap <br />Analysis<br />Risk <br />Reduction<br />Cost <br />Analysis<br /> Migration<br />
    3. 3. Choosing a porting model<br />
    4. 4. Web sites migrate into web roles<br />Web Role<br />Worker Role<br />VM Role<br />
    5. 5. Moving web sites to Azure is not very different then moving them to a web-farm<br />
    6. 6. Can’t use Web-sites <br />…Must use web applications (VS will port for you)<br />
    7. 7. Full IIS vs. Hosted Web Core <br />Multiple sites or virtual applications<br /> activation of WCF services over non-HTTP transports<br />Simple, less resources <br />
    8. 8. Tip: Enable Full IIS<br />    <Sites>      <Site name="Web">        <Bindings>          <Binding name="Endpoint1" endpointName="Endpoint1" />        </Bindings>      </Site>    </Sites><br />Add Sites to the csdef file….<br />
    9. 9. Tip: Shy away from session state<br />ASP.NET cache is not shared between instances as well<br />Move session to SQL azure<br />Velocity for Azure is coming later in the year<br />You can use memcached meanwhile<br />
    10. 10. Tip: Move configuration from app.config/web.config<br />Changes in web.config – mean redeployment<br />Move<br />
    11. 11. Tip: native code ISAPI filters are tricky to import<br />…Consider rewriting<br />
    12. 12. Can you Azure this?<br /><html> <head><title>Hello World PHP</title></head> <body> <?phpecho 'Today is '. date('Y-m-d') ."n"; ?> </body> </html><br />
    13. 13. Add a Webrole.config…<br /><?xml version="1.0" encoding="utf-8" ?><br /><configuration><br /><system.webServer><br /><fastCgi><br /><application<br />fullPath="%RoleRoot%approotphpphp-cgi.exe"/><br /></fastCgi><br /></system.webServer><br /></configuration><br />…and enable native code in the .csdef<br /><WebRolename="WebRole"enableNativeCodeExecution="true<br />
    14. 14. Stateless services <br />Web Role<br />Worker Role<br />VM Role<br />
    15. 15. Run under full IIS to get scale out and management capabilities <br />Service 1<br />Service 1<br />Service 2<br />Service 2<br />Service 3<br />Service 3<br />Web Role (full IIS)<br />Web Role (full IIS)<br />
    16. 16. Tip: Make your WCF accessible to silverlight clients <br /><?xml version="1.0" encoding="utf-8" ?><br /><!DOCTYPE cross-domain-policy SYSTEM <br />"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"><br /><cross-domain-policy><br /><allow-http-request-headers-from domain="*" headers="*"/><br /></cross-domain-policy<br />Drop crossdomain.xml in the root directory of the WebRole<br />
    17. 17. Stateful services/ “semi-stateful” services <br />Web Role<br />Worker Role<br />VM Role<br />
    18. 18. VM Role vs. Worker Role – another look<br />VM role you can do anything but things are not persisted <br />VM role needs manual maintenance (e.g. upgrades to OS)<br />
    19. 19. Worker Role includes facilities to make migration simpler<br />CloudDrive<br />Mapping logs to table storage <br />
    20. 20. Tip: pay attention to how you configure your logging<br />By the way this setup cost 5.25$ per year <br />(per instance and just for the transactions)<br />
    21. 21. Lavaflow Apps<br />http://www.antipatterns.com/lavaflow.htm<br />
    22. 22. The lavaflow apps migrate into VM role<br />Web Role<br />Worker Role<br />VM Role<br />
    23. 23. Don’t COM around here no more<br />(can’t update the registry)<br />Use COM+ and manifest / Native C++<br />Wrap with WCF host<br />
    24. 24. Db3<br />Archive<br />(Table Storage)<br />…<br />NT Service<br />IIS<br />Migrated SQL CLR Code<br />VM Role<br />NT Service<br />Db1<br />(SQL Azure)<br />Db2<br />(SQL Azure)<br />Db3<br />(SQL Azure<br />
    25. 25. Getting Azure’s SLA means at least 2 instances<br />Must make sure app can “scale” to two computers – even for VM role<br />
    26. 26. Tip: Why not host your own SQL?<br /><ul><li>Disks partitioning is unknown and does not come with an SLA
    27. 27. Not guaranteed to be persistent
    28. 28. Need to build availability on top </li></li></ul><li>SQL Migration Wizard<br />
    29. 29. Tip: SQL Retry <br />SQL Connections: Retry on failure<br />Connections can drop for variety of reasons<br />Idleness<br />Transient (network) errors<br />Intentional throttling<br />First step: reconnect immediately<br />Handles idleness- and transient-disconnects<br />Gateway handles connection retry for app<br />Connections attempted for ~30s before failure<br />What to do on connection failure?<br />Wait (10 seconds), then retry <br />Change your workload if throttled<br />
    30. 30. Backup <br />&<br /> Restore<br />
    31. 31. Existing apps were developed in an age of abundance in resources<br />Cloud apps should be more cost aware<br />
    32. 32. What else?<br />Monitoring<br /> Application Lifecycle Management (including system & performance testing)<br /> Archiving<br /> Authentication and authorization (between tiers as well as of users)<br />CDNs<br />Charging model<br />Configuration<br />Data Access Layer<br />Data encryption<br /> Data partitioning<br /> Data storage and transactions<br /> Dependencies and 3rd party components<br /> Deployment, continuous integration & automation<br />Diagnostics, logging & instrumentation<br /> Elasticity (dynamic, scheduled, or manual)<br /> Geographical co-location<br />Idempotency<br />Import/export routines<br /> Message security<br /> Message size<br /> Multi-tenancy<br />Network latency<br /> Page weight<br />Reporting<br /> Session state<br /> SLAs (availability, performance, etc)<br /> SQL features<br /> Windows Services & batch jobs<br />http://blogs.msdn.com/b/simonince/archive/2010/04/13/checklist-discussing-an-azure-migration.aspx<br />
    33. 33. E.g. Can’t host SMTP server in the cloud<br />Can open TCP connection from Azure to the outside world … (and find a SMTP server)<br />
    34. 34. e.g. remember <br />Authentication with ACS<br />Slide by Alik Levin<br />
    35. 35. Links<br />TCO calculator http://www.microsoft.com/windowsazure/economics/<br />Azure Migration Wizard - http://sqlazuremw.codeplex.com/<br />http://blogs.msdn.com/b/windowsazure/archive/2010/12/02/new-full-iis-capabilities-differences-from-hosted-web-core.aspx<br />Cloudoscope – http://www.cloudvalue.com<br />
    36. 36. Illustrations<br />All illustrations from iStockphotoexcept:<br />Slide 3 John Nyberg http://www.sxc.hu/photo/1329579<br />Slide 18 http://www.majorlycool.com/item/beautiful-but-deadly-lava-flow<br />Slide 26 http://www.sxc.hu/photo/1212823<br />Slide 28 http://www.sxc.hu/photo/1316747<br />

    ×