Learning Microsoft Azure

After 6 months of hard work and not much sleep, my new book Learning Microsoft Azure has been published by Packt Publishing and is available from the packt store and Amazon.


This is the Preface, which gives you a good idea of what's in the book:

Learning Microsoft Azure is a practical, hands-on book for learning how to build systems for Microsoft Azure. The book is themed around an enterprise case study based on a fictional industrial bakery called Azure Bakery which spans 3 business units: Sales, Production and Supply. The entire system is built on Microsoft Azure technology utilizing a broad range of services.

The Sales business unit is responsible for selling products to customers through the MVC5 Customer website where customers can make orders and view their status as the order moves through the system. Products are managed through another administrator website which implements Azure Active Directory authentication. A Windows Phone app with .Net Mobile service and Twitter authentication integrated with the Customer website allows customers to view order status on their phone and receive push notifications via the Notifications Hub when order status changes and new products are created. The Sales system has its own dedicated SQL Azure database and communicates with the other systems via a Service Bus Topic. A worker role is implemented to keep the Sales system updated as orders are processed through the enterprise system.

The Production business unit is responsible for manufacturing the products for the customer orders and has a worker role at the core of it which consumes customer orders from the Service Bus Topic, enters the orders into the Production SQL Azure database, creates batch schedules for baking products and allocates stock in the system. Production staff use an on-premises WPF client application with Azure Active Directory authentication to view batch schedules and manage stock via a Web API 2 service with SignalR hub and Azure Service Bus backplane allowing client applications to update in real-time.

The Supply business unit is responsible for picking and packing orders from the Production business unit and delivering them to the customers. A worker role consumes orders from the Service Bus Topic and stores customer details in Table Storage and automatically creating barcode labels stored in BLOB storage. Supply staff interact with the system via an Enterprise Windows Store app which is authenticated with Azure Active Directory and has a .Net Mobile Service backend.
As we’re building the system we learn about the topic we’re exploring and apply it to our system with detailed walk-throughs and relevant code samples. There are full working code samples for the entire system broken down chapter-by-chapter.
What this book covers

Chapter 1 - Getting Started with Microsoft Azure

An introduction to cloud computing and Microsoft Azure followed by how to choose a subscription and signing up for a subscription. We finish the chapter with a look around the portal and start looking at the different services Microsoft Azure has to offer.

Chapter 2 - Designing a System for Microsoft Azure

Designing scalable resilient systems for Microsoft Azure looking at methodologies for breaking systems into sub-systems and selecting appropriate Azure services to build them. The process will be applied to designing a small system for an independent stationers requiring a website and basic administration system, then extended to a full enterprise system where will we introduce the Azure Bakery case study.

Chapter 3 - Starting Developing with Microsoft Azure

This is the first taste of developing for Microsoft Azure, where the reader will prepare their development environment with the required tools and sign-up for a Visual Studio online account. We’ll create the foundations of the Sales Customer website and publish it to the cloud, then setup continuous deployment using Visual Studio Online Team Foundation build.

Chapter 4 - Creating and Managing an Azure SQL Server Database

We’ll create a database for the Sales business unit and build it using Entity Framework Code-First migrations. The chapter will examine different tools for working with the database from a developer and administrator point of view and look at options for database backup.

Chapter 5 - Building Azure MVC Websites

In this chapter the Sales Customer website and Administrator website are built with Twitter authentication for the Customer site and Azure Active Directory authentication for the Administrator site. We learn how to apply custom domain names and SSL certificates to Azure websites and learn how to do Azure AD group authorization in an MVC website.

Chapter 6 - Azure Website Diagnostics and Debugging

This chapter follows on from the previous chapter, exploring techniques and tools to help diagnose problems and debug Azure websites. We’ll look at enabling diagnostics in websites, working with log files and examining application logging and site diagnostics. Finally we’ll look at the Kudu service and remote debugging Azure websites.

Chapter 7 - Azure Service Bus Topic Integration

Starting with an overview of Service Bus Topics and creating a Topic for handling order messaging between the 3 business tiers, we’ll integrate the Sales Customer website into the Topic with a Subscription allowing newly created orders to be sent across the system where they wil be collecte by the Production system for manufacturing and the Supply system for producing address labels and planning deliveries. We’ll also create a messaging simulator created to allow the Topic to be loaded-up with high volumes of orders to help test the scalability and capacity of the system. Finally we’ll look at the features in the portal to help us monitor and manage our Service Bus Topic.

Chapter 8 - Building Worker Roles

After an introduction to cloud services and creating a worker role, we’ll create and run a basic cloud service locally on the compute emulator, then publish and run it in cloud. The Production Order processor is created next, which is responsible for receiving orders from the service Bus Topic, saving them to the Production database and creating product batch schedules and allocating stock. Finally we’ll test the cloud service in a scaled deployment using the simulator created in Chapter 7.

Chapter 9 - Cloud Service Diagnostics, Debugging and Configuration

This chapter follows on from the previous chapter, covering diagnostics, remote debugging and Intellitrace. We’ll learn how to deal with configuration changes made in the portal at runtime and implement startup tasks for performing customisations for preparing the server environment for the service.

Chapter 10 - Web API and Client Integration

An introduction to Web API and Signal R with an Azure Service Bus backplane followed by building a Web API Service and SignalR hub to allow the Production Management application to interact with the Production database and Service Bus Topic. The system will be authenticated with Azure AD authentication allowing production staff to login to the WPF client application using their Azure AD credentials.

Chapter 11 - Integrating a Mobile Application using Mobile Services

This chapter brings the whole system together with the addition of a Mobile Service and Windows Phone 8 application for the Sales system which allows users to login with the same credentials as the Customer website, view orders and receive order updates and product news via the Notifications Hub. The sales Mobile Service provides APIs for the Admin website and Order processor to interact with the Notifications Hub. Finally the chapter looks at building an Azure AD authenticated Mobile Service for the Supply Windows Store application for viewing orders and retrieving address labels from BLOB storage created by the Supply Order Processor.

Chapter 12 - Preparing and Azure System for Production

This final chapter looks at configuring systems for various environments including production and creating publishing packages using Visual Studio Online Team Foundation build server and producing database scripts in order for the system deployments to be managed in a controlled way by systems administrators or developers. We’ll learn about monitoring the different services implemented throughout the book once they are live and also cover guidelines for publishing web-connected mobile applications.