Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Learning Microsoft Azure
Learning Microsoft Azure

Learning Microsoft Azure: A comprehensive guide to cloud application development using Microsoft Azure

eBook
€8.99 €29.99
Paperback
€36.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Learning Microsoft Azure

Chapter 2. Designing a System for Microsoft Azure

There are challenges in designing any software system, whether it is a small system with a single website and database backend or a large distributed multi-tier system with multiple applications and storage solutions that span multiple business domains and geographic locations. We face some of the same issues and challenges while designing a system for Microsoft Azure as we would face on an on-premises system, such as how to divide our system into different applications, services, and databases, and we may have some new or different challenges such as making the system scalable (larger organizations often support scalability to some degree with multiple web servers and load balancing, but Microsoft Azure offers advanced scaling options such as scheduled and metric-based scaling) and tackling authentication on a cloud system.

All real-life systems are rarely implemented using the same technology and are likely to incorporate new...

Designing scalable and resilient systems

One of the main features of the Microsoft Azure technology is scalability. By carefully designing our system, we can build it to manually or automatically scale (elastic scaling) to meet our business requirements as the business grows, or to cope with peaks in system load. Databases and storages can also be designed to be distributed across databases and storage partitions, allowing large volumes of data to scale while maintaining performance.

Note

Scale out means increasing computing capacity by increasing the number of compute instances in a system (for websites and cloud services, this would mean increasing the number of virtual machines). Scale up means increasing the computational resources of a compute instance (for websites and cloud services, this would mean more CPU/memory/disk allocation for a virtual machine instance).

By breaking down large systems into smaller, decoupled subsystems, which interact with each other in an asynchronous fault...

Systems architecture

IT systems can vary dramatically in their scale, the number of business domains they span, the number of platforms they include, and the number of geographical locations they serve. Some parts of the system may need to communicate with each other; some parts are entirely self-sufficient and need no interaction with other systems. When working on a larger system, we are likely to be integrating existing legacy systems into a new system or integrating new systems into a legacy system.

The complexity and size of many systems can reflect the level of automation versus a manual process within a business. Commonly, larger organizations will have the capital to invest in automated systems, which relieve the requirement for a number of manual processes, but will introduce some more specialized administrative overhead.

A large system may look very complicated as a whole, but we can break down any system into smaller subsystems, making it easier to design and helping to create...

A case study of a small business system

A small business, for example, an independent stationary shop that consists of a few employees with a shop (bricks and mortar) and an online shop (website) requires a small system, which can allow customers to order stationary online, track orders, manage stock for both shops, and produce monthly reports.

System requirements

If we break down the business requirements, we can understand more about the type of system:

  • Customer website
  • Administration system
  • Manually order stock from suppliers
  • Manually arrange delivery
  • Low order volume (less than 100 units per day)
  • No need for legacy system integration requirement
  • No interest in owning IT infrastructure
  • Very limited budget for IT

Although it is listed last, the budget requirement will probably be the main factor in designing a system. If service providers have an initial budget of $5,000 to get a system built, and they only want to spend a maximum of $100 a month on running the system, then we're not looking...

A case study of an enterprise system – Azure Bakery

I've tried to come up with a good case study, which will allow us to implement a large number of Microsoft Azure features and services in a realistic way. I wanted to use something that will have long-running processes over distributed systems so that we could incorporate features from websites through Service Bus queues, worker processes, and mobile applications. I came up with an idea of an industrial bakery, which should be a concept that is easy to understand and doesn't need specialist domain knowledge as with many of the systems we work on in our daily jobs!

System requirements

The Azure Bakery makes products such as cakes and pies and deals with large customers such as supermarkets and smaller bakeries that require additional stock (this justifies the supply business unit). To make the bakery more realistic, it's split into three distinct business domains:

  • Sales: This domain is responsible for selling products...

Designing platform environments

While we're preparing our development environment, it's a good time to talk about planning our platform environments (in an on-premises or IaaS system, we may say server environments). These environments are used to host our system during the different phases of their life cycle between development and production (or live).

The scales of a business and budget are the major factors in this decision process; if we have a large business and a large system, it might take a number of testers to test the changes made to a system and do full regression tests when needed. If the budget for a system is tight, it may not be possible to have a perfect set of environments, so compromises may have to be made. We also need to remember that we're not just talking about a single website; we need to include databases, table storage, worker roles, Service Bus queues and topics, and so on. We'll look at different types of environments and examples of environment...

Designing scalable and resilient systems


One of the main features of the Microsoft Azure technology is scalability. By carefully designing our system, we can build it to manually or automatically scale (elastic scaling) to meet our business requirements as the business grows, or to cope with peaks in system load. Databases and storages can also be designed to be distributed across databases and storage partitions, allowing large volumes of data to scale while maintaining performance.

Note

Scale out means increasing computing capacity by increasing the number of compute instances in a system (for websites and cloud services, this would mean increasing the number of virtual machines). Scale up means increasing the computational resources of a compute instance (for websites and cloud services, this would mean more CPU/memory/disk allocation for a virtual machine instance).

By breaking down large systems into smaller, decoupled subsystems, which interact with each other in an asynchronous fault...

Systems architecture


IT systems can vary dramatically in their scale, the number of business domains they span, the number of platforms they include, and the number of geographical locations they serve. Some parts of the system may need to communicate with each other; some parts are entirely self-sufficient and need no interaction with other systems. When working on a larger system, we are likely to be integrating existing legacy systems into a new system or integrating new systems into a legacy system.

The complexity and size of many systems can reflect the level of automation versus a manual process within a business. Commonly, larger organizations will have the capital to invest in automated systems, which relieve the requirement for a number of manual processes, but will introduce some more specialized administrative overhead.

A large system may look very complicated as a whole, but we can break down any system into smaller subsystems, making it easier to design and helping to create a...

A case study of a small business system


A small business, for example, an independent stationary shop that consists of a few employees with a shop (bricks and mortar) and an online shop (website) requires a small system, which can allow customers to order stationary online, track orders, manage stock for both shops, and produce monthly reports.

System requirements

If we break down the business requirements, we can understand more about the type of system:

  • Customer website

  • Administration system

  • Manually order stock from suppliers

  • Manually arrange delivery

  • Low order volume (less than 100 units per day)

  • No need for legacy system integration requirement

  • No interest in owning IT infrastructure

  • Very limited budget for IT

Although it is listed last, the budget requirement will probably be the main factor in designing a system. If service providers have an initial budget of $5,000 to get a system built, and they only want to spend a maximum of $100 a month on running the system, then we're not looking at a...

Left arrow icon Right arrow icon

Description

If you are a developer interested in building systems for Microsoft Azure, with an understanding of efficient cloud-based application development, then this is the book for you.

What you will learn

  • Design scalable, resilient systems for Azure
  • Create MVC websites and cloud services
  • Build Azure SQL Databases with Entity Framework Code First Migrations
  • Use Azure Service Bus to decouple system tiers
  • Integrate client applications with Web API and SignalR on Azure
  • Build apps with mobile services and notifications hub
  • Implement Azure Active Directory across the entire system

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Oct 16, 2014
Length: 430 pages
Edition : 1st
Language : English
ISBN-13 : 9781782173380
Vendor :
Microsoft
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Oct 16, 2014
Length: 430 pages
Edition : 1st
Language : English
ISBN-13 : 9781782173380
Vendor :
Microsoft
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 103.97
Microsoft Azure Development Cookbook Second Edition
€41.99
Microsoft Azure Security
€24.99
Learning Microsoft Azure
€36.99
Total 103.97 Stars icon
Banner background image

Table of Contents

13 Chapters
1. Getting Started with Microsoft Azure Chevron down icon Chevron up icon
2. Designing a System for Microsoft Azure Chevron down icon Chevron up icon
3. Starting to Develop with Microsoft Azure Chevron down icon Chevron up icon
4. Creating and Managing a Windows Azure SQL Server Database Chevron down icon Chevron up icon
5. Building Azure MVC Websites Chevron down icon Chevron up icon
6. Azure Website Diagnostics and Debugging Chevron down icon Chevron up icon
7. Azure Service Bus Topic Integration Chevron down icon Chevron up icon
8. Building Worker Roles Chevron down icon Chevron up icon
9. Cloud Service Diagnostics, Debugging, and Configuration Chevron down icon Chevron up icon
10. Web API and Client Integration Chevron down icon Chevron up icon
11. Integrating a Mobile Application Using Mobile Services Chevron down icon Chevron up icon
12. Preparing an Azure System for Production Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.1
(7 Ratings)
5 star 28.6%
4 star 57.1%
3 star 14.3%
2 star 0%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




deploymentMonkey Feb 05, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I am very pleased with the content and the way it is delivered.It is a great source of information for IT professionals who want to make a first step on Microsoft Azure with a single book and for those who want to use it as a reference book.It covers many of Microsoft Azure technologies including VMs,AD,SQL Azure etc and is full of configuration examples. Examples are really helpful to learn how to use the information provided in the book to the real-world needs.For me it's a must-have book to be one step ahead on Azure.
Amazon Verified review Amazon
Msingh1 Feb 07, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book gives a very comprehensive, step by step tutorial on how to build systems usingMicrosoft's Azure cloud platform. I found it particularly useful in learning how to create adatabase application using Azure's SQL server database. One section in the book, took theuser through the process of creating a real­life data model to deploying it on the cloud. It thendescribed how to create an MVC based azure website using this database, and integratingActive Directory for user authentication and authorization. The step by step instructions wereconcise and clear, and their use of appropriate screenshots, made it very easy to follow.There is so much more in this book. I highly recommend it to anyone who is looking to migratetheir on­ premise development to the cloud.
Amazon Verified review Amazon
Parenzan Marco Jan 12, 2015
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
The book presents the usage of many Azure services, composing an interesting and quite complex sample application through out the book.I appreciate the chapters about mobile and desktop applications as sample clients for cloud services, next to typical web app. I have appreciated the detailed description of deployment, debugging and authentication: I will use them as a reference guide.All chapters are easy to read. Some of them, like Cloud Services and Service Bus Topics, can be difficult to understand why applying them.The topic I really miss is a chapter about usage of Azure Storage at application level and storage opportunities in Azure in general (caching, NoSQL).It is a great book for anyone wants migrating his existing legacy asp.net web projects to Azure. It is not a book for who is searching an introduction to cloud principles, how to apply them in Azure and how to rethink application architecture.A worth read.
Amazon Verified review Amazon
Anastasios Piotopoulos Feb 04, 2015
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Cloud computing has already consolidated its presence in the tech industry, and it is quickly becoming a standard choice for hosting enterprise applications. The greatest advantage of the cloud is that resources are provisioned rapidly and on demand, without human intervention on the provider's part. Moreover, every provider offers a wide range of services that can significantly extend the capabilities of hosted application.In order to harvest the true power of the cloud, one needs thorough knowledge of distributed systems theory, awareness of which services are offered by the targeted cloud platform, plus a solid strategy for identifying and properly separating the concerns of a system. The ultimate goal for every cloud software architect is to design a reliable, highly-available system which can dynamically scale on demand to meet business needs.Azure is Microsoft's cloud platform. I have been designing and developing cloud applications on Azure for the last few years, starting as an early adopter and watching it grow rapidly ever since. Unfortunately, Azure's documentation focuses on each of the services offered separately, providing little to no advice on how to design a complete cloud solution. I ended up spending months researching, experimenting and brainstorming in order to come up with an acceptable architecture for a specific enterprise solution.Recently I came across a book called "Learning Microsoft Azure", written by Geoff Webber-Cross. Its purpose is to teach software engineers the main aspects of the Azure platform, and to do so in the context of the best architectural approach possible. It is a promising effort of great significance, and Geoff has done it wonderfully. The book is not just for Azure beginners; I was able to gain a lot from it, even after working on Azure for about three years on a daily basis.In Learning Microsoft Azure, Geoff helps you build pieces of an enterprise cloud application called "Azure Bakery". By the time you have worked through all the chapters, Geoff has introduced you to the three principal types of cloud service models (Infrastructure as a Service, Platform as a Service, Software as a Service) as well as to all major services that Azure provides (Websites, Cloud Services, Active Directory, Mobile Services, Virtual Machines, SQL, Storage, Service Bus, Diagnostics, Visual Studio Online and more). He also offers fully-functioning code samples leveraging the Azure SDK, plus demonstrating the capabilities of various other development frameworks, like ASP.NET MVC, WEB API and SignalR. Finally, Geoff offers a comprehensive guide on deploying applications to Azure, a process which requires great attention, especially when it is performed on live systems.I found that Chapter 8, regarding worker roles, is one of the most important chapters in the book. Worker roles are used to perform CPU- or network-intensive tasks in an asynchronous manner. Experience shows that almost every cloud application uses at least one worker role. Apart from the theoretical background offered on worker roles, Geoff demonstrates the internal lifecycle of a cloud service, along with some solid code practices to follow when developing one.Geoff provides an excellent starting point for creating sound and maintainable cloud architectures. Those architectures involve proper separation of concerns and allow various parts of a solution to scale independently. The book is targeted towards intermediate software engineers who are already proficient in OOP and C#. Keep in mind that many of the design decisions described within the book are transferable, meaning that they can be used while developing solutions for other cloud platforms.I enjoyed the book and I found it valuable. I consider it to be the missing manual for Microsoft Azure. I believe you will enjoy it too!
Amazon Verified review Amazon
Ricardo Peres Feb 11, 2015
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
IntroductionThis time, it is an introductory book, where the reader is introduced to Microsoft Azure, and guided as he/she develops a full solution for an imaginary industrial bakery, from end to end, including a mobile app. It covers technologies such as ASP.NET MVC 5, Windows Phone 8, Entity Framework Code First and Web API, always using C# and .NET as the backing framework. At the end of each chapter, there’s a questions and answers page where we can assess our level of understanding of the topics that were discussed in it.The author is Geoff Webber-Cross (@webbercross), which also authored another book on Azure and Windows Phone.Chapter 1: Getting Started with Microsoft AzureThe first chapter, as we might expect, does an introduction to cloud computing and the Microsoft Azure service, presents a decision framework for aiding in selecting a cloud service as opposed to on-premises, guides the reader in creating an Azure account including it’s many services and costs, and lists the most relevant terms that we will be encountering throughout the book.Chapter 2: Designing a System for Microsoft AzureHere we are presented with the sample scenario, its objectives and requirements and the architectural vision of it. Different views on the system and its subsystems are presented and for each the technical decisions are explained.Chapter 3: Starting to Develop with Microsoft AzureNext we setup the development environment, choose a Visual Studio edition, download the required SDK and create a project to be published in our Azure account. Visual Studio Online is also presented and it’s integration with Azure, namely, in order to ensure continuous integration and delivery.Chapter 4: Creating and Managing a Windows Azure SQL Server DatabaseHere we get an overview of the SQL functionality of Azure, how to create and manage databases using the portal, Visual Studio and the SQL Server Management Studio, then we learn how to use Entity Framework Code First to access and manipulate its data, and to migrate to and from different versions using the Migrations API.Chapter 5: Building Azure MVC WebsitesThis chapter explains how we can build an MVC application using OAuth authentication (social accounts such as Twitter, Facebook, Google and Microsoft Live). It goes on explaining how we can set up custom domains and SSL certificates for HTTPS and how to integrate the Azure Active Directory for single sign-on and custom permissions.Chapter 6: Azure Website Diagnostics and DebuggingThis one is about diagnosing problems and debugging our applications. It presents the basic built-in tracing and logging features of Azure and how we can obtain this information and goes on to show how we can use table storage and blobs for custom storing of structured logs and its querying. Kudu is briefly introduced and at the end we learn how to do remote debugging.Chapter 7: Azure Service Bus Topic IntegrationNext up is Service Bus, Azure’s enterprise service bus service. We learn how to configure it, create and manage topics using the portal and how to use the service from our MVC application and expose it as a service.Chapter 8: Building Worker RolesThe next chapter is about Worker Roles, a feature of Azure Websites that performs disconnected (non web-related) tasks. The reader is guided in creating a Worker Role with Visual Studio, executing it in the Emulator and publishing it to Azure. The example presented builds on the Service Bus topics discussed in the previous chapter. We also learn about other scheduling mechanism of Azure, Scheduler jobs, and implement an example using Queues.Chapter 9: Cloud Service Diagnostics, Debugging, and ConfigurationHere we learn about configuring and using the diagnostics features of Cloud Services, again expanding the concepts introduced in chapter 6. We talk about IntelliTrace and Remote Debugging and on how to connect to our virtual machines with Remote Desktop. Finally we are given an example on how to use script tasks to automate common needs.Chapter 10: Web API and Client IntegrationThis chapter introduces ASP.NET Web API, Microsoft’s latest technology for building REST web services and SignalR, for asynchronous, duplex, real-time communication between web clients and the server. The provided example shows how to integrate these two technologies to broadcast messages to connected clients, including a desktop Windows Presentation Framework (WPF) application. In the end we learn how to use the Active Directory to authorize accesses to our services.Chapter 11: Integrating a Mobile Application Using Mobile ServicesComing closer to the end, this chapter walks the reader on the various aspects of building a mobile client that connects to the cloud using Azure Mobile Services. We see how to implement a mobile-enabled web application and Web API service, how to publish it and how to implement a matching Windows Phone application, fully featured with push notifications. It also guides us on configuring the mobile service with Active Directory for authentication. At the end we are shown how to build a Windows Store app to interact with our application.Chapter 12: Preparing an Azure System for ProductionThe final chapter puts everything in place, explains how to setup different build configurations for different deployment environments and how to build and deliver deployment packages for Azure. At the very end we get a deployment checklist that may come in handy if ever we run into problems.ConclusionOverall, I enjoyed reading this book. It doesn’t cover all of Azure, but it does a very decent job in explaining how one can build a real-life application that works and handles most typical concerns, including support for mobile devices.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.