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.

Azure migration

3,275 views

Published on

Published in: Technology
  • Be the first to comment

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 />

×