7. Full IIS vs. Hosted Web Core Multiple sites or virtual applications activation of WCF services over non-HTTP transports Simple, less resources
8. Tip: Enable Full IIS <Sites> <Site name="Web"> <Bindings> <Binding name="Endpoint1" endpointName="Endpoint1" /> </Bindings> </Site> </Sites> Add Sites to the csdef file….
9. Tip: Shy away from session state ASP.NET cache is not shared between instances as well Move session to SQL azure Velocity for Azure is coming later in the year You can use memcached meanwhile
10. Tip: Move configuration from app.config/web.config Changes in web.config – mean redeployment Move
11. Tip: native code ISAPI filters are tricky to import …Consider rewriting
12. Can you Azure this? <html> <head><title>Hello World PHP</title></head> <body> <?phpecho 'Today is '. date('Y-m-d') .""; ?> </body> </html>
13. Add a Webrole.config… <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.webServer> <fastCgi> <application fullPath="%RoleRoot%pproothphp-cgi.exe"/> </fastCgi> </system.webServer> </configuration> …and enable native code in the .csdef <WebRolename="WebRole"enableNativeCodeExecution="true
15. Run under full IIS to get scale out and management capabilities Service 1 Service 1 Service 2 Service 2 Service 3 Service 3 Web Role (full IIS) Web Role (full IIS)
16. Tip: Make your WCF accessible to silverlight clients <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-http-request-headers-from domain="*" headers="*"/> </cross-domain-policy Drop crossdomain.xml in the root directory of the WebRole
18. VM Role vs. Worker Role – another look VM role you can do anything but things are not persisted VM role needs manual maintenance (e.g. upgrades to OS)
19. Worker Role includes facilities to make migration simpler CloudDrive Mapping logs to table storage
20. Tip: pay attention to how you configure your logging By the way this setup cost 5.25$ per year (per instance and just for the transactions)
29. Tip: SQL Retry SQL Connections: Retry on failure Connections can drop for variety of reasons Idleness Transient (network) errors Intentional throttling First step: reconnect immediately Handles idleness- and transient-disconnects Gateway handles connection retry for app Connections attempted for ~30s before failure What to do on connection failure? Wait (10 seconds), then retry Change your workload if throttled
31. Existing apps were developed in an age of abundance in resources Cloud apps should be more cost aware
32. What else? Monitoring Application Lifecycle Management (including system & performance testing) Archiving Authentication and authorization (between tiers as well as of users) CDNs Charging model Configuration Data Access Layer Data encryption Data partitioning Data storage and transactions Dependencies and 3rd party components Deployment, continuous integration & automation Diagnostics, logging & instrumentation Elasticity (dynamic, scheduled, or manual) Geographical co-location Idempotency Import/export routines Message security Message size Multi-tenancy Network latency Page weight Reporting Session state SLAs (availability, performance, etc) SQL features Windows Services & batch jobs http://blogs.msdn.com/b/simonince/archive/2010/04/13/checklist-discussing-an-azure-migration.aspx
33. E.g. Can’t host SMTP server in the cloud Can open TCP connection from Azure to the outside world … (and find a SMTP server)
34. e.g. remember Authentication with ACS Slide by Alik Levin