Building a Windows Azure Application Architecture Patterns Processes
Building a Windows Azure Application Architecture, Patterns, Processes Andreas Piefke, Architect (MYOB) 28/11/2011
Architecture Overview User Interface Biz Logic Database Sync
Architecture cont. Web Roles Business Services Collaboration Configuration/ Management Worker Roles Azure Storage SQL Azure Customer Databases Configuration/ Management Database Queues Tables
Patterns – Long Running Operations Initiates Operation Client Sends Message Queue Storage Receives Message Performs Worker Role Operation Web Role Polls for Completion Updates Job Status Checks Job Status Table Storage
Patterns – Data Transfer (Upload) Requests Shared Access Signature Creates Job Web Role Client Table Storage Uploads direct to BLOB Storage
Patterns – Communication with Internal Systems Updates Management Data Biz. Talk Receives Notifications Queue Storage Web Role Communication is always initiated by the internal system Management Database Web and Worker roles generate Notifications
Processes – Continuous Integration • CI runs automated deployment to Azure • Checks for deployment success • Runs smoke test to verify basic functionality
Processes - QA • Requires testing in multiple Environments – Compute Emulator • Multi-machine deployment – Windows Azure • Separate environment • Additional environment for System Integration • Automated Deployment
Processes – Monitoring and Debugging • Audit logging • Intelli. Trace • Tracing/Diagnostics – Configuration requires redeployment (check SDK 1. 6) – Custom configuration to allow enabling/disabling from service configuration
Processes – Testing in Azure • Multiple Environments in one Subscription – Hosted Services – Storage Account – Federated Identity • Package once as part of CI • Transform Service Configuration for specific environment
Challenges • Deployment Times • Certificates, Certificates • Encryption (where to hide a key) • Scaling and Autoscaling • Latency (where to host) – David Robinson quote: “You guys have crappy pipes”
Challenges cont. • Platform continues to evolve – Things can change – Example: New data management views for federation • Azure SDK Updates – Coordination across 6 teams + Dev. Ops – No side-by-side – CI environment with more than one SDK version
What would I do differently? • Use App. Fabric Queues instead of Storage queues • Use App. Fabric Workflow Foundation for long running processes
Tools • Cerebrata (now Redgate) – Azure Storage Studio – Azure Diagnostics Manager • SQL Azure Backup (Redgate) • Azure Storage Explorer • rinetd
Questions http: //au. linkedin. com/in/andreaspiefke
- Slides: 15