Course Outline
Module 1: Cloud Computing
Cloud computing has been labeled the next big thing in the computing industry. What exactly is cloud computing? What are the benefits of cloud computing? Why would my organization and I want to explore cloud computing? Will it help us solve some of our IT problems? Of what potential issues should we be aware? This introductory module addresses the what’s and why’s of cloud computing. It also introduces Microsoft’s Windows Azure cloud computing product. How does the Microsoft solution compare to other cloud computing platforms? What exactly is Windows Azure?
Lessons
- Define cloud computing.
- Learn the benefits of cloud computing.
- Understand the different types of cloud computing services.
- Explore where computing clouds might exist.
- Hear about potential concerns with cloud computing.
- Learn where cloud computing can and cannot be applied.
- Place Windows Azure in light of general cloud computing.
- Know how Windows Azure compares to other cloud environments.
Lab : Windows Azure Account Setup (Optional)
- Understand how to create a Windows Azure account.
- Explore the types of Windows Azure accounts.
- Learn how to access and use the Windows Azure Developer Portal.
- Examine the Windows Azure Developer Portal.
After completing this module, students will be able to:
- Understand the different types of cloud computing offerings.
- Explain how Windows Azure fits into the cloud computing landscape.
- Set up a Windows Azure account.
Module 2: Windows Azure Architecture
Several components and technologies make up the Windows Azure Platform. In this module, you get a glimpse of a Windows Azure. You also explore the components that make up the Windows Azure Platform. Specifically, you look at the Microsoft data centers and the hardware and software that host Windows Azure applications and data. You also look at the development environment. What does it take to produce Windows Azure applications? Finally, you explore the various parts of the Windows Azure platform to include Windows Azure, SQL Azure and the App Fabric.
Lessons
- See a simple Windows Azure application.
- Learn about the Microsoft data centers.
- Explore the hardware, servers and virtualization (the Fabric) that host cloud applications and data.
- Understand the role of the Fabric Controller in managing the Windows Azure cloud.
- Know the general architecture and components of the Windows Azure Platform.
- Understand the tools used to create and deploy Windows Azure services and data stores.
- Understand the different types of roles in Windows Azure (Web, worker, VM).
- Understand the types of storages provided by the Windows Azure Platform (Azure Storage, SQL Azure, etc.)
Lab : Introduction to Windows Azure
- Explore your first Windows Azure project in Visual Studio.
- See how to test a cloud application in Visual Studio.
- Learn how to publish a cloud application.
- Examine the process of deploying an application via the Developer Portal.
- Learn how to remove a service from the cloud.
After completing this module, students will be able to:
- Understand the pieces of the Windows Azure platform.
- Explore the Windows Azure Developer Portal.
- Setup a cloud project in Visual Studio.
- Understand the difference between the Compute and Storage Emulators and Windows Azure.
Module 3: Windows Azure Web Roles
In this module you explore the details of Web roles introduced in the last module. Web roles are essentially Web sites or HTTP services running in the cloud. As part of your exploration of Web roles, you learn some of the Windows Azure API you can use in roles and about how to configure roles. While Web roles run in Microsoft data centers, you test and debug them in your local machine using the Compute Emulator. So, in this module, you also explore details about the Compute Emulator and how to explore what’s going on in the Compute Emulator as your code executes.
Lessons
- Explore the purpose of Windows Azure Web roles.
- Understand how to create Web roles in a cloud service project.
- See how to configure a Web role.
- Learn how to test Web roles run in the Compute Emulator.
- Start exploring the Windows Azure API.
- Examine how to build Web roles with multiple Web sites.
Lab : Building a Web Role
- Create a Cloud Application using Windows Azure Tools for Visual Studio.
- Explore the Web role project.
- Configure a Web role project.
- See a multi-instance role running in the Compute Emulator.
- Modify the application to use a custom configuration setting.
- Optionally, see a Web role cloud project deployed to Windows Azure.
After completing this module, students will be able to:
- Explore migrating ASP.NET applications to Windows Azure.
- Build a simple Windows Azure cloud application.
- Dynamically configure a Windows Azure cloud application through the Developer Portal.
- Determine the costs of running an application in Windows Azure.
Module 4: Local Storage
Most applications use files from the server’s file system for something. Cache, simple reference data, logging, etc. are all possible uses of files and file space in a “normal” .NET application. Windows Azure computing instances (Web or worker roles) run on a VM, but share the physical server’s resources. So how does a Windows Azure application use and access a file system? This chapter covers Windows Azure local storage. That is how applications can access, to some extent, files in the cloud. This chapter also covers a number of limitations of using local storage as well as the good and bad uses of local storage. Additionally, you learn about alternatives to local storage; most notably a product called Windows Azure Drive.
Lessons
- Examine Windows Azure local storage.
- See how local storage differs from normal server file systems.
- Learn how to configure local storage.
- Understand the limitations of local storage and where/when to use it.
- Explore the API to access local storage.
- Learn about Windows Azure Drive (formerly X-Drive).
Lab : Using Local Storage
- Configure a Web Role to have local storage.
- Alter the Web role code to read and write to local storage.
- Explore the relationship of local storage to roles and role instances.
- Explore how to clean local storage on role instance recycling.
- Optionally, deploy the local storage using cloud project to the Windows Azure cloud.
After completing this module, students will be able to:
- Create local storage for use by a Windows Azure application.
- See Windows Azure scalability through multiple role instances.
- Design applications use of the file system using local storage or Azure Drive.
Module 5: Windows Azure Administration
There are multiple administrator roles in Windows Azure. Some administrators are responsible for paying for the services used in Windows Azure. Other administrators deploy applications and data. Still other administrators need to manage and maintain the applications and data put in the cloud. This chapter covers a number of miscellaneous administration tasks and items with regard to Windows Azure. In addition, this chapter addresses some additional administrative capabilities that don’t always apply to the development of an Azure application, but may be helpful in the care and management of Azure applications in general.
Lessons
- Explore the various Windows Azure subscription administrators.
- Understand Windows Azure OS Families and Guest OS Versions.
- See how to Remote Desktop to a Windows Azure virtual machine.
- Learn how to define a startup task for a role.
Lab : Configuring and Using Remote Desktop
- Learn how to create a new hosted service without deploying code.
- See how to create and add a PFX certificate to a hosted service.
- Publish and deploy a Windows Azure project configured for Remote Desktop connections.
- Optionally learn how to configure remote access through the Portal.
- Optionally setup a co-administrator for your subscription.
After completing this module, students will be able to:
- Better manage Windows Azure administrative accounts.
- Know how to deploy an application to the cloud directly from Visual Studio.
- Configure applications for Remote Desktop access.
- Explore a virtual server running Azure applications using Remote Desktop.
Module 6: Windows Azure Storage and Queues
Windows Azure Storage provides highly scalable and available data storage to both cloud and on-premise services. It is not relational database storage. In fact, some types of Windows Azure Storage are quite different from relational or structured storage. In this module, you explore what Windows Azure Storage is, why you want to use, and how to access it. Once you have a general understanding of Windows Azure Storage, you explore in detail the first of three types of Windows Azure Storage; namely queue storage. Queues provide interoperable message communication between services and are not unlike what you might have seen if you have used MSMQ or IBM’s MQ Series.
Lessons
- Understand the purpose of Windows Azure Storage.
- Learn how to create a Windows Azure Storage account.
- Explore Windows Azure Storage costs.
- Understand the Storage Emulator, how to use it, and how it is different from Windows Azure Storage.
- See how to access Windows Azure Storage using both the REST API and the Storage Client Library.
- Examine Windows Azure Storage Queues.
- Learn how to get messages in and out of Windows Azure Queues.
Lab : Learning Windows Azure Storage and Queues
- Use a Web role to create a queue and add messages to the queue.
- Learn how to add another Web role to your cloud service project.
- Use a Web role to read and display messages in the queue.
- Observe the difference between getting and peeking at messages in a queue.
- Optionally, see how to create a Storage Account service.
- Optionally, examine how to create an Affinity Group.
- Optionally, learn where to find storage account URLs and access keys.
- Optionally, deploy the cloud service project to the Windows Azure cloud.
- Explore Windows Azure Storage with external utilities.
After completing this module, students will be able to:
- Setup Windows Azure message queue.
- Create a Windows Azure Storage Account.
- Use the Windows Azure Client library to access Windows Azure storage
- Deploy applications to Windows Azure that use Windows Azure Storage.
- Understand the difference between the Storage Emulator and Windows Azure Storage.
- Explore Windows Azure Storage with external tools.
Module 7: Blob Storage
In this module, you learn about the second of three Windows Azure Storage data storage facilities called blob storage. Blob storage provides a place to store any type of data (MP3 file, PDF document, flat text, etc). All instances of the application share this common storage. In fact, the storage can even be accessed by applications outside of the cloud.
Lessons
- Understand the rationale for using blob storage.Learn about the different types of blobs: block and page blobs.
- Examine blob storage containers and how they are used to organize and control access to blobs.
- Explore how to access blob storage with both the Storage Client and REST API.
Lab : Using Blob Storage
- Use a Web role to create a blob container and set permissions on the container.
- Learn how to upload blobs into a container.
- Use a Web role to retrieve a blob by its name (reference).
- Work with blob metadata.
- Explore the REST API used to access blob storage.
After completing this module, students will be able to:
- Access blob data from Windows Azure or on-premise applications.
- Use the Windows Azure Client library or REST to access blob storage.
Module 8: Table Storage
Table storage is the last of Windows Azure Storage data services explored in this class. Table storage provides structured storage similar, but not the same, as a traditional database may offer. In many ways, table storage is simpler and more scalable than a traditional database. It also costs less to put data in table storage than a relational database in the cloud. In this module, you learn how to use Windows Azure table storage. You also learn how it differs from SQL Azure. You also learn how to use table storage to implement sessions used by multiple roles.
Lessons
- Explore Windows Azure Storage’s structural data service.
- Understand the reason for table storage.
- Examine the differences between table storage and traditional relational databases (as exhibited by SQL Azure).
- Learn how to access table storage with both the Storage Client and REST API.
- Understand entities as they relate to table storage.
- Examine how to save and retrieve entities in table storage.
Lab : Using Table Storage
- Define an entity class.
- Build a TableServiceContext object to negotiate data in and out of table storage.
- Learn how to save entity data to table storage.
- Explore queries to fetch entity data from table storage.
After completing this module, students will be able to:
- Design applications that need structured tabular data.
- Create and use tables in Windows Azure.
- Design entities that are stored in table storage.
Module 9: Worker Roles
Web roles exist to serve HTTP content. Worker roles, on the other hand, are processing work horses that can do just about anything you would like them to do. Generally speaking, worker roles serve as backend processors. By default, worker roles don’t even have an interface with which to communicate with them. The standard and accepted means to communicate with worker roles is to have them react to messages deposited into a Windows Azure Storage queue. In this module, you explore worker roles: their purpose, how to create and configure them, and how to communicate with them.
Lessons
- Explore the purpose of Windows Azure worker roles.
- Understand how to create worker roles in a cloud service project.
- See how to configure a worker role.
- Learn how to test worker roles run in the Compute Emulator.
- Learn how to use Windows Azure Storage queues and messages to communicate with worker roles.
- Explore how to setup worker role endpoints.
- Learn how to communicate with worker role internal and input endpoints.
Lab : Building a Worker Role
- Create a worker role and add it to your cloud project.
- Explore the contents of a worker role project.
- Configure a worker role to monitor a queue for messages.
- Re-explore the use of queue storage in role-to-role communications.
- Re-explore table storage.
After completing this module, students will be able to:
- Build backend processors in Windows Azure.
- Design and build complete end-to-end applications for Windows Azure.
- Better use queue and table storage.
- Create role to role communications in Windows Azure.
Module 10: SQL Azure Introduction
In this module you learn about SQL Azure. SQL Azure is a relational database in the cloud. Use SQL Azure to support applications in the cloud or on-premise. Use SQL Azure as a backup storage facility. Use SQL Azure as an easily and quickly provisioned database for prototyping, rapid development, and testing. SQL Azure is a highly scalable, available relational database maintained and operated by Microsoft yet familiar to SQL Server users.
Lessons
- Learn what SQL Azure is and why you want to use it.
- Understand SQL Azure in comparison to SQL Server and Windows Azure table storage.
- Learn how to provision a SQL Azure server and databases.
- Examine costs associated with SQL Azure.
- See how to use familiar tools and APIs to work in SQL Azure.
- Explore how to create and manage database objects in SQL Azure.
- Know how to limit SQL Azure access.
- Understand options for performing database backups.
- See how to migrate data to SQL Azure.
Lab : Introduction to SQL Azure
- Add a SQL Azure subscription to your current Windows Azure account subscription
- Create a SQL Azure server and administrator.
- Create a database in SQL Azure.
- Add a table to the SQL Azure database.
- Explore Database Manager for accessing and managing SQL Azure databases and tables.
After completing this module, students will be able to:
- Make design decisions between table storage and SQL Azure.
- Determine the cost of storing data in Windows Azure.
- Setup SQL Azure databases through the Developer Portal.
- Migrate data from on-premise SQL Server databases to SQL Azure.
Module 11: Diagnostics
Most developers are accustomed to debugging applications. Debugging in the cloud is a bit more complex. Most developers are also familiar with the process of collecting various logs to analyze problems that occur in hardware and software systems. Windows Azure has log files. Unfortunately, since the hardware and file system of the Windows Azure data center systems are not directly at your disposal, getting data from the log files requires a little more work. In this optional module, you learn about the Windows Azure Diagnostic Service. The API provided through this service grants you access to collect all the log data you would normally desire from your Windows system. The diagnostic service also provides the means to move that data to Windows Azure Storage so it may be externally accessed.
Lessons
- Learn how to accomplish debugging and logging in Windows Azure.
- Examine Windows Azure Diagnostic Service.
- Understand the role of the Diagnostic Agent process in the diagnostic service.
- Learn how to configure the diagnostic service.
- See how to transfer diagnostic data to Windows Azure Storage.
Lab : Diagnostics
- See how Visual Studio cloud templates provide default diagnostic monitoring setup.
- Add trace statements to cloud code.
- Learn how to schedule diagnostic data to be transferred to Windows Azure Storage.
- Learn how to perform an on-demand transfer of diagnostic data to storage.
After completing this module, students will be able to:
- Design and build logging and debugging needs into their applications.
- Use Windows Azure Diagnostic Services to capture log/diagnostic data.
- Transfer data from Windows Azure to specified storage