Preface |
|
xv | |
Acknowledgments |
|
xvi | |
About this book |
|
xvii | |
About the author |
|
xxi | |
|
Part 1 Azure core services |
|
|
1 | (72) |
|
|
3 | (11) |
|
1.1 Is this book for you? |
|
|
3 | (1) |
|
|
4 | (1) |
|
|
4 | (1) |
|
|
5 | (1) |
|
|
5 | (1) |
|
Source code and supplementary materials |
|
|
5 | (1) |
|
1.3 Creating your lab environment |
|
|
5 | (2) |
|
Creating a free Azure account |
|
|
5 | (2) |
|
Bonus lab exercise: Creating a free GitHub account |
|
|
7 | (1) |
|
1.4 A little helping hand |
|
|
7 | (1) |
|
1.5 Understanding the Azure platform |
|
|
8 | (6) |
|
|
10 | (1) |
|
|
11 | (3) |
|
2 Creating a virtual machine |
|
|
14 | (19) |
|
2.1 Virtual machine configuration basics |
|
|
15 | (5) |
|
Regions and availability options |
|
|
15 | (1) |
|
|
16 | (1) |
|
|
17 | (1) |
|
|
18 | (1) |
|
|
19 | (1) |
|
2.2 Creating an SSH key pair for authentication |
|
|
20 | (2) |
|
2.3 Creating a VM from your web browser |
|
|
22 | (2) |
|
2.4 Connecting to the VM and installing the web server |
|
|
24 | (3) |
|
Connecting to the VM with SSH |
|
|
24 | (2) |
|
Installing the web server |
|
|
26 | (1) |
|
2.5 Allowing web traffic to reach the VM |
|
|
27 | (2) |
|
Creating a rule to allow web traffic |
|
|
28 | (1) |
|
Viewing the web server in action |
|
|
28 | (1) |
|
2.6 Lab: Creating a Windows VM |
|
|
29 | (1) |
|
2.7 Cleaning up resources |
|
|
30 | (1) |
|
2.8 Houston, we have a problem |
|
|
31 | (2) |
|
|
33 | (14) |
|
3.1 Azure Web Apps overview and concepts |
|
|
34 | (3) |
|
Supported languages and environments |
|
|
34 | (1) |
|
Staging different versions with deployment slots |
|
|
35 | (1) |
|
|
35 | (2) |
|
|
37 | (5) |
|
|
37 | (2) |
|
Deploying a sample HTML site |
|
|
39 | (3) |
|
3.3 Viewing diagnostic logs |
|
|
42 | (2) |
|
3.4 Lab: Creating and using a deployment slot |
|
|
44 | (3) |
|
4 Introduction to Azure Storage |
|
|
47 | (11) |
|
|
47 | (3) |
|
|
48 | (1) |
|
Temporary disks and data disks |
|
|
49 | (1) |
|
|
50 | (1) |
|
|
50 | (2) |
|
|
52 | (5) |
|
|
53 | (2) |
|
|
55 | (1) |
|
Storage availability and redundancy |
|
|
56 | (1) |
|
4.4 Lab: Exploring Azure Storage |
|
|
57 | (1) |
|
|
57 | (1) |
|
|
57 | (1) |
|
5 Azure Networking basics |
|
|
58 | (15) |
|
5.1 Virtual network components |
|
|
58 | (6) |
|
Virtual networks and subnets |
|
|
59 | (2) |
|
Virtual network interface cards |
|
|
61 | (1) |
|
Public IP address and DNS resolution |
|
|
62 | (2) |
|
5.2 Securing and controlling traffic with network security groups |
|
|
64 | (4) |
|
Creating a network security group |
|
|
64 | (2) |
|
Associating a network security group with a subnet |
|
|
66 | (1) |
|
Creating network security group filtering rules |
|
|
67 | (1) |
|
5.3 Building a sample web application with secure traffic |
|
|
68 | (4) |
|
Creating remote access network connections |
|
|
68 | (1) |
|
|
69 | (1) |
|
Using the SSH agent to connect to your VMs |
|
|
70 | (2) |
|
5.4 Lab: Installing and testing the LAMP web server |
|
|
72 | (1) |
|
Part 2 High availability and scale |
|
|
73 | (116) |
|
|
75 | (15) |
|
6.1 The Azure Resource Manager approach |
|
|
75 | (6) |
|
Designing around the application lifecycle |
|
|
76 | (2) |
|
Securing and controlling resources |
|
|
78 | (1) |
|
Protecting resources with locks |
|
|
79 | (1) |
|
Managing and grouping resources with tags |
|
|
80 | (1) |
|
6.2 Azure Resource Manager templates |
|
|
81 | (6) |
|
Creating and using templates |
|
|
82 | (2) |
|
Creating multiples of a resource type |
|
|
84 | (1) |
|
Tools to build your own templates |
|
|
85 | (2) |
|
Storing and using templates |
|
|
87 | (1) |
|
6.3 Lab: Deploying Azure resources from a template |
|
|
87 | (3) |
|
7 High availability and redundancy |
|
|
90 | (16) |
|
7.1 The need for redundancy |
|
|
90 | (2) |
|
7.2 Infrastructure redundancy with Availability Zones |
|
|
92 | (4) |
|
Creating network resources across an Availability Zone |
|
|
94 | (1) |
|
Creating VMs in an Availability Zone |
|
|
95 | (1) |
|
7.3 VM redundancy with Availability Sets |
|
|
96 | (6) |
|
|
96 | (1) |
|
|
97 | (1) |
|
Distributing VMs across an Availability Set |
|
|
98 | (3) |
|
View distribution of VMs across an Availability Set |
|
|
101 | (1) |
|
7.4 Lab: Deploying highly available VMs from a template |
|
|
102 | (4) |
|
8 Load-balancing applications |
|
|
106 | (18) |
|
8.1 Azure load-balancer components |
|
|
106 | (13) |
|
Creating a frontend IP pool |
|
|
108 | (2) |
|
Creating and configuring health probes |
|
|
110 | (2) |
|
Defining traffic distribution with load-balancer rules |
|
|
112 | (2) |
|
Routing direct traffic with Network Address Translation rules |
|
|
114 | (2) |
|
Assigning groups of VMs to backend pools |
|
|
116 | (3) |
|
8.2 Creating and configuring VMs with the load balancer |
|
|
119 | (3) |
|
8.3 Lab: Viewing templates of existing deployments |
|
|
122 | (2) |
|
9 Applications that scale |
|
|
124 | (17) |
|
9.1 Why build scalable, reliable applications? |
|
|
124 | (5) |
|
|
125 | (2) |
|
Scaling web apps vertically |
|
|
127 | (1) |
|
Scaling resources horizontally |
|
|
128 | (1) |
|
9.2 Virtual machine scale sets |
|
|
129 | (7) |
|
Creating a virtual machine scale set |
|
|
131 | (2) |
|
|
133 | (3) |
|
|
136 | (3) |
|
9.4 Lab: Installing applications on your scale set or web app |
|
|
139 | (2) |
|
Virtual machine scale sets |
|
|
139 | (1) |
|
|
140 | (1) |
|
10 Global databases with Cosmos DB |
|
|
141 | (17) |
|
|
141 | (4) |
|
Structured (SQL) databases |
|
|
142 | (1) |
|
Unstructured (NoSQL) databases |
|
|
142 | (1) |
|
|
143 | (1) |
|
Bringing it all together with Cosmos DB |
|
|
144 | (1) |
|
10.2 Creating a Cosmos DB account and database |
|
|
145 | (7) |
|
Creating and populating a Cosmos DB database |
|
|
145 | (4) |
|
Adding global redundancy to a Cosmos DB database |
|
|
149 | (3) |
|
10.3 Accessing globally distributed data |
|
|
152 | (4) |
|
10.4 Lab: Deploying a web app that uses Cosmos DB |
|
|
156 | (2) |
|
11 Managing network traffic and routing |
|
|
158 | (17) |
|
|
158 | (2) |
|
11.2 Delegating a real domain to Azure DNS |
|
|
160 | (2) |
|
11.3 Global routing and resolution with Traffic Manager |
|
|
162 | (12) |
|
Creating Traffic Manager profiles |
|
|
164 | (3) |
|
Globally distributing traffic to the closest instance |
|
|
167 | (7) |
|
11.4 Lab: Deploying web apps to see Traffic Manager in action |
|
|
174 | (1) |
|
12 Monitoring and troubleshooting |
|
|
175 | (14) |
|
|
175 | (3) |
|
12.2 Performance metrics and alerts |
|
|
178 | (4) |
|
Viewing performance metrics with the VM diagnostics extension |
|
|
178 | (3) |
|
Creating alerts for performance conditions |
|
|
181 | (1) |
|
12.3 Azure Network Watcher |
|
|
182 | (6) |
|
|
183 | (1) |
|
Viewing effective NSG rules |
|
|
184 | (2) |
|
Capturing network packets |
|
|
186 | (2) |
|
12.4 Lab: Creating performance alerts |
|
|
188 | (1) |
|
|
189 | (62) |
|
13 Backup, recovery, and replication |
|
|
191 | (15) |
|
|
191 | (10) |
|
|
193 | (3) |
|
|
196 | (2) |
|
|
198 | (3) |
|
|
201 | (3) |
|
13.3 Lab: Configuring a VM for Site Recovery |
|
|
204 | (2) |
|
|
206 | (10) |
|
14.1 What is data encryption? |
|
|
206 | (2) |
|
|
208 | (1) |
|
14.3 Storage Service Encryption |
|
|
209 | (2) |
|
|
211 | (3) |
|
Storing encryption keys in Azure Key Vault |
|
|
211 | (2) |
|
|
213 | (1) |
|
14.5 Lab: Encrypting a VM |
|
|
214 | (2) |
|
15 Securing information with Azure Key Vault |
|
|
216 | (18) |
|
15.1 Securing information in the cloud |
|
|
216 | (5) |
|
Software vaults and hardware security modules |
|
|
217 | (2) |
|
Creating a key vault and secret |
|
|
219 | (2) |
|
15.2 Managed identities for Azure resources |
|
|
221 | (3) |
|
15.3 Obtaining a secret from within a VM with managed identity |
|
|
224 | (5) |
|
15.4 Creating and injecting certificates |
|
|
229 | (3) |
|
15.5 Lab: Configuring a secure web server |
|
|
232 | (2) |
|
16 Azure Security Center and updates |
|
|
234 | (17) |
|
16.1 Azure Security Center |
|
|
234 | (3) |
|
|
237 | (4) |
|
16.3 Azure Update Management |
|
|
241 | (8) |
|
Combined Azure management services |
|
|
243 | (2) |
|
Reviewing and applying updates |
|
|
245 | (4) |
|
16.4 Lab: Enabling JIT and updates for a Windows VM |
|
|
249 | (2) |
|
|
251 | (84) |
|
17 Machine learning and artificial intelligence |
|
|
253 | (16) |
|
17.1 Overview and relationship of AI and ML |
|
|
254 | (5) |
|
|
254 | (1) |
|
|
255 | (1) |
|
Bringing AI and ML together |
|
|
256 | (1) |
|
Azure ML tools for data scientists |
|
|
257 | (2) |
|
17.2 Azure Cognitive Services |
|
|
259 | (1) |
|
17.3 Building an intelligent bot to help with pizza orders |
|
|
260 | (7) |
|
Creating an Azure web app bot |
|
|
260 | (1) |
|
Language and understanding intent with LUIS |
|
|
261 | (3) |
|
Building and running a web app bot with LUIS |
|
|
264 | (3) |
|
17.4 Lab: Adding channels for bot communication |
|
|
267 | (2) |
|
|
269 | (15) |
|
18.1 What is Azure Automation? |
|
|
269 | (5) |
|
Creating an Azure Automation account |
|
|
271 | (1) |
|
Azure Automation assets and runbooks |
|
|
272 | (2) |
|
18.2 Azure Automation sample runbook |
|
|
274 | (4) |
|
Running and viewing output from a sample runbook |
|
|
276 | (2) |
|
18.3 PowerShell Desired State Configuration (DSC) |
|
|
278 | (4) |
|
Defining and using PowerShell DSC and an Azure Automation pull server |
|
|
280 | (2) |
|
18.4 Lab: Using DSC with Linux |
|
|
282 | (2) |
|
|
284 | (16) |
|
19.1 What are containers? |
|
|
284 | (3) |
|
19.2 The microservices approach to applications |
|
|
287 | (2) |
|
19.3 Azure Container Instances |
|
|
289 | (4) |
|
19.4 Azure Kubernetes Service |
|
|
293 | (5) |
|
Creating a cluster with Azure Kubernetes Services |
|
|
294 | (1) |
|
Running a basic website in Kubernetes |
|
|
295 | (3) |
|
19.5 Lab: Scaling your Kubernetes deployments |
|
|
298 | (2) |
|
20 Azure and the Internet of Things |
|
|
300 | (17) |
|
20.1 What is the Internet of Things? |
|
|
300 | (3) |
|
20.2 Centrally managing devices with Azure IoT Hub |
|
|
303 | (3) |
|
20.3 Creating a simulated Raspberry Pi device |
|
|
306 | (3) |
|
20.4 Streaming Azure IoT hub data into Azure web apps |
|
|
309 | (6) |
|
20.5 Azure IoT component review |
|
|
315 | (1) |
|
20.6 Lab: Exploring use cases for IoT |
|
|
316 | (1) |
|
|
317 | (18) |
|
21.1 What is serverless computing? |
|
|
317 | (2) |
|
21.2 Azure messaging platforms |
|
|
319 | (6) |
|
|
320 | (1) |
|
Azure Event Hubs and Service Bus |
|
|
321 | (1) |
|
Creating a service bus and integrating it with an IoT hub |
|
|
322 | (3) |
|
21.3 Creating an Azure logic app |
|
|
325 | (3) |
|
21.4 Creating an Azure function app to analyze IoT device data |
|
|
328 | (4) |
|
|
332 | (1) |
|
Additional learning materials |
|
|
333 | (1) |
|
|
333 | (1) |
|
|
333 | (2) |
Index |
|
335 | |