Azure and the Cloud for the Insurance Industry

 

Detailed Syllabus

Day 1   Introduction

Lecture: Platform overview, problems addressed and not addressed by Azure. Workload patterns that work well in the cloud: on-off, growing fast, predictable burst, unpredictable burst.  Potential disadvantages of the cloud: resource availability, data sensitivity, legal complications.  Options for geo-location. Overview of Azure architecture: compute service, storage service, and fabric. Definition of a role instance, usage of web roles and worker roles. Building of Hello, World for Azure, upload to Azure, running it from Azure. Usage of new Azure developer portal.  

Day 1 :  Storage, Part 1, Non-Relational

Lecture:  Storage is THE primary requirement for successful cloud hosting, and scalability the primary design goal. Relational and non-relational kingdoms of cloud storage. Types of non-relational structures: blobs, tables, and queues. Availability via RESTful services, with or without compute instance.  Use of local mock storage in the development fabric, differences from actual cloud storage. Security of storage data.  Usage of blob storage: concept of a blob, blob containers and metadata, flavors of blobs (block and page). Creation and destruction of blobs, uploading and downloading data with blobs. Concept of a blob drive, examination of its usage, discussion of where it is and isn’t appropriate.  Usage of table storage: concept of a non-relational table, internal structure of a table, performing queries, adding and deleting records,  mandatory and optional properties, misuse of the word “entity”. Examination of tools to monitor contents of blobs and tables.  (Because of the large amount of material in this lesson, discussion of queues is deferred until the lesson on the asynchronous pattern.)

Lab:  Guestbook application demonstrating blobs and tables.

Day 2  Storage, Part 2, Relational

Lecture: Introduction to SQL Azure. Application topologies: code far, code near, and hybrid. Structure behind the scenes of SQL Azure. Provisioning of resources in SQL Azure. Capabilities and limitations, changes in design and architecture necessary when switching from non-cloud apps. Discussion of the SQL features supported and not supported by SQL Azure. Built-in limitations of database size, need for design changes to match this architecture.  Difficulties of scaling out the relational model. Discussion of partitioning and sharding, possible need for federated data. Looking for and tracking hot spots. Schema management, fan-out queries, repartitioning. Examination of tools to monitor contents of SQL Azure databases. 

Lab: Hands-on lab providing simple use cases for SQL Azure.

Day 2 Morning: Asynchronous Operations

Lecture: The Asynchronous operation pattern is probably the most important one that you will use, and hence deserves more detailed study. Examination of the asynchronous pattern, its advantages and disadvantages, the circumstances under which this pattern works best – providing fast apparent response to the user, performing long-running work in background, spreading load out over available resources, and improving throughput of short operations (classic example: bank teller lines).   Usages of queues, creating and deleting queues, monitoring their contents with tools. Reading and writing with queues, removal of messages on read, reappearance of messages if not confirmed in time.  Need for time independence, design of operations for idempotency. Use of compensating messages for eventual consistency. Handling of poison messages,  checking for dequeue count, deleting from the original queue and placing into a special poison queue for eventual human assistance.  Optimization of worker role utilization. Splitting large computing problems into many chunks for parallel processing.

Lab:  Hands-on lab using queues for image processing.   

Day 3 : Implementig ACORD Standards on Azure

Lecture: Hosting options, .aspx and WCF. Construction of the  service on top of the host. Serialization and deserialization of ACORD XML data. Generation and usage of wrapper classes. Designing coordinated interfaces, designing for testability. performance considerations. Scaling out versus scaling up. 

Lab: Implement sample ACORD service

Day 3 Afternoon: Managing, Monitoring, and Debugging Azure Applications

Lecture: Quick review of packaging and configuration.  Concept of a fault domain and upgrade domain. Options for deploying services: Delete and create, swap from staging, upgrade in place, sometimes partially.  Use of management tools and API. Windows Azure diagnostics, recording of events, use of diagnostic monitor. Local buffers, calculation of cost for each type of logging. Use of remote desktop.

Lab: Deploying, starting, updating, and shutting down an Azure application