The session took a look at the Window Azure platform and asks the hard questions that everybody is thinking but nobody wants to ask. Is Windows Azure right for me? Should this application be migrated to Azure? Will Azure save me money? How do I manage my Azure implementations? Is Azure secure? The session look at real world implementations on the Windows Azure platform to try and answer some of these hard questions.
3. Me
• MCPD Windows Azure Development
• Solutions Architect at Infusion
– Windows 8 WinRT, Mobility, Kinect, Surface, WPF
– SharePoint, Dynamics CRM
• @RonaldWidha
4. 1
How much will it cost?
• Reality: It is very difficult to estimate the operational costs
of an existing on-premise application
• No matter what I say, PILOT!
• Then look for SLA and areas of saving
6. 1
How much will it cost?
Resource
Bandwidth Traffic between the user's In: Currently free
browser and the app Out: $0.15/GB
Storage Files, data (*), messages $0.15/GB x month
Transactions Each interaction with the $0.01/10,000 transactions
storage system is billed
Compute For the time (*) the app’s Small size role $0.12/hour
roles are running (VM) 2GB and 1 Core (*)
Database SQL Azure database – Web 1; 5; 10; 20; 30; 40; 50 GB
and Business Edition Up to 1 GB: $9.99
Accurate for the U.S. market as of August 2011
• Pay As You Go: Calculator
• Save 20% and up to 39% with 6 Month Plans
7. 1
How much will it cost?
• What did I not cover? – covered here
– Cache
– Service Bus
– CDN (*)
– Virtual Network
– Access Control
8. 2
So is Azure elastic?
• But with <insert name of hoster> this would be less!...
• Use the Autoscaling Application Block in EntLib 5 for Azure
– Maintain throughput
– Contain cost
– Also: throttle certain functionality or take actions
9. 2
So is Azure elastic?
• Rules for auto-scaling
– Constraint Rules: upper and lower bounds (A; B)
– Reactive Rules (C; D)
• Can use Perf. Counters Windows Azure Diagnostics table
• Storage of rules:
– Rules Store: XML file typically in Blob Storage
– Service (operational) Information Store
15. 3
What if I need to run some stuff on-prem?
• Benefits of Azure
– Cost savings by not requiring on-premises compute and data
storage resources.
– Reliability through hardware failure detection and automated
repair.
– Insurance against data loss through seamless and transparent
data replication.
– Massive up-and-down scalability of data and computational
services on-demand.
– Federated single-sign-on across business partner boundaries.
16. 3
What if I need to run some stuff on-prem?
• Going hybrid…
– Ownership of proprietary data or protection of proprietary
algorithms
– Contractual considerations between business partners
– Certain types of data and government agencies come under
regulations
– Privacy concerns, even if it is not government regulated
– Legacy applications in a “maintenance-only” phase
– Data may need to be shared locally with on –premise
applications
17. 3
What if I need to run some stuff on-prem?
• Service Bus Queues and Topics
18. 3
What if I need to run some stuff on-prem?
• Service Bus Relay
Useful when
you require a
low-latency
synchronous
connection or
bi-directional
message
exchange
Through
Firewall/NAT
19. 3
What if I need to run some stuff on-prem?
• SQL Azure Data Sync
20. 3
What if I need to run some stuff on-prem?
• Access Control Service with AD Federation Services
21. 3
What if I need to run some stuff on-prem?
• Windows Azure Connect
22. 4
What about e-mail?
• Should be easy right? Just add a reference to SmtpClient…
• Problems
– No SMTP or mail relay
– The IP problem:
• Host PTR record for reverse DNS lookup
• SenderID – TXT DNS
• Solution:
– SendGrid - 25,000 emails x month FRE
– PostMarkApp
• Receiving email is OK, you can listen on Port 25
23. 5
So how do I deploy?
• Local Compute and Storage emulator for development and
unit testing
• Two accounts (different Live IDs) for testing – including UAT
and production
24. 6
What about my domain name?
• App: http://<myapp>.cloudapp.net
• Storage: https://<mystorageaccount>.blob.core.windows.net
• Map to www.yourdomain.com
– CNAME or Alias record (preferred)
• Map www.yourdomain.com to myapp.cloudapp.net
• Add new CNAME record at registrar
• To redirect all traffic from a root domain, create URL Redirect or
URL Forward entry, or…
– A Record
• Map www.yourdomain.com or *.yourdomain.com to public IP of a
deployment
25. 7
How will users authenticate now?
• Access Control Service
– Integration with Windows Identity Foundation (WIF)
– Support for Active Directory Federation Services (AD FS) 2.0.
– Support for popular web identity providers (IPs) including
Windows Live ID, Google, Yahoo, and Facebook
– A Management Portal that allows administrative access to the
ACS settings
– An Open Data Protocol (OData)-based management service that
provides programmatic access to ACS settings
27. 8
Can I also secure my app?
• Get a certificate (min. 2048-bit encryption) from a CA
• Reference from Service Definition and Configuration; add
HTTPS endpoint
• Upload Deployment Package and Certificate to Portal
28. 9
I have all this media files too…
• Content Delivery Network (CDN) for Blobs and Static
Content from Compute
– US, EU, Asia, Australia and South America.. and Qatar! – List
• Scenarios:
– Heavy payload + many round trips
– Open Door Dubai: burst/launch
• Cache efficiency is non-deterministic, but influenced by
– Expiration header values
– Overall size of the content and Active working set
– Traffic
– Content churn
29. 9
I have all this media files too…
Standard pay-as-you-go monthly pricing for the CDN
$0.12per GB for data transfers from European and North
American locations (+ Azure to CDN cost)
$0.19per GB for data transfers from other locations
$0.01 per 10,000 transactions
CDN data transfer charges are based on the
data center location from where the traffic
was served, not the end user's location.
Costs:1 Bandwidth2 Storage3 Transactions4 CPU and RAM / Compute5 Database
Constrainttules timetableReactive rule operands listen to aspnetrequestsrejected listen to CPU custom operand action change scale change changeaction settingsThe hardest part is what to listen forDevOps CPU QueueYoyo - cooldown Continuous improvement
Study found that by migrating to the cloud, business effectively reduce the required capex & opex for hardware, Infrastructure software, IT resources
Connect to legacy appJoin domainService modelConnect agentInstall agentWindows azure connect
No dedicated IPAutomatically send receipts to customersAdminister distribution lists for sending monthly e-fliers and special offersCollect real-time metrics for things like blocked e-mail, and customer responsivenessGenerate reports to help identify trendsForwarding customer inquiriesReceiving email: http://blog.smarx.com/posts/emailtheinternet-com-sending-and-receiving-email-in-windows-azure