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