Table of contents : Learn Azure in a Month of Lunches, Second Edition contents preface acknowledgments about this book Roadmap About the examples and source code liveBook discussion forum about the author Part 1 Azure core services 1 Before you begin 1.1 Is this book for you? 1.2 How to use this book 1.2.1 The main chapters 1.2.2 Try it now 1.2.3 Hands-on labs 1.2.4 Source code and supplementary materials 1.3 Creating your lab environment 1.3.1 Creating a free Azure account 1.3.2 Bonus lab exercise: Creating a free GitHub account 1.4 A little helping hand 1.5 Understanding the Azure platform 1.5.1 Virtualization in Azure 1.5.2 Management tools 2 Creating a virtual machine 2.1 Virtual machine configuration basics 2.1.1 Regions and availability options 2.1.2 VM images 2.1.3 VM sizes 2.1.4 Azure storage 2.1.5 Virtual networking 2.2 Creating an SSH key pair for authentication 2.3 Creating a VM from your web browser 2.4 Connecting to the VM and installing the web server 2.4.1 Connecting to the VM with SSH 2.4.2 Installing the web server 2.5 Allowing web traffic to reach the VM 2.5.1 Creating a rule to allow web traffic 2.5.2 Viewing the web server in action 2.6 Lab: Creating a Windows VM 2.7 Cleaning up resources 2.8 Houston, we have a problem 3 Azure Web Apps 3.1 Azure Web Apps overview and concepts 3.1.1 Supported languages and environments 3.1.2 Staging different versions with deployment slots 3.1.3 App service plans 3.2 Creating a web app 3.2.1 Creating a basic web app 3.2.2 Deploying a sample HTML site 3.3 Viewing diagnostic logs 3.4 Lab: Creating and using a deployment slot 4 Introduction to Azure Storage 4.1 Managed Disks 4.1.1 OS disks 4.1.2 Temporary disks and data disks 4.1.3 Disk-caching options 4.2 Adding disks to a VM 4.3 Azure Storage 4.3.1 Table storage 4.3.2 Queue storage 4.3.3 Storage availability and redundancy 4.4 Lab: Exploring Azure Storage 4.4.1 VM-focused 4.4.2 Developer-focused 5 Azure Networking basics 5.1 Virtual network components 5.1.1 Virtual networks and subnets 5.1.2 Virtual network interface cards 5.1.3 Public IP address and DNS resolution 5.2 Securing and controlling traffic with network security groups 5.2.1 Creating a network security group 5.2.2 Associating a network security group with a subnet 5.2.3 Creating network security group filtering rules 5.3 Building a sample web application with secure traffic 5.3.1 Creating remote access network connections 5.3.2 Creating VMs 5.3.3 Using the SSH agent to connect to your VMs 5.4 Lab: Installing and testing the LAMP web server Part 2 High availability and scale 6 Azure Resource Manager 6.1 The Azure Resource Manager approach 6.1.1 Designing around the application lifecycle 6.1.2 Securing and controlling resources 6.1.3 Protecting resources with locks 6.1.4 Managing and grouping resources with tags 6.2 Azure Resource Manager templates 6.2.1 Creating and using templates 6.2.2 Creating multiples of a resource type 6.2.3 Tools to build your own templates 6.2.4 Storing and using templates 6.3 Lab: Deploying Azure resources from a template 7 High availability and redundancy 7.1 The need for redundancy 7.2 Infrastructure redundancy with Availability Zones 7.2.1 Creating network resources across an Availability Zone 7.2.2 Creating VMs in an Availability Zone 7.3 VM redundancy with Availability Sets 7.3.1 Fault domains 7.3.2 Update domains 7.3.3 Distributing VMs across an Availability Set 7.3.4 View distribution of VMs across an Availability Set 7.4 Lab: Deploying highly available VMs from a template 8 Load-balancing applications 8.1 Azure load-balancer components 8.1.1 Creating a frontend IP pool 8.1.2 Creating and configuring health probes 8.1.3 Defining traffic distribution with load-balancer rules 8.1.4 Routing direct traffic with Network Address Translation rules 8.1.5 Assigning groups of VMs to backend pools 8.2 Creating and configuring VMs with the load balancer 8.3 Lab: Viewing templates of existing deployments 9 Applications that scale 9.1 Why build scalable, reliable applications? 9.1.1 Scaling VMs vertically 9.1.2 Scaling web apps vertically 9.1.3 Scaling resources horizontally 9.2 Virtual machine scale sets 9.2.1 Creating a virtual machine scale set 9.2.2 Creating autoscale rules 9.3 Scaling a web app 9.4 Lab: Installing applications on your scale set or web app 9.4.1 Virtual machine scale sets 9.4.2 Web apps 10 Global databases with Cosmos DB 10.1 What is Cosmos DB? 10.1.1 Structured (SQL) databases 10.1.2 Unstructured (NoSQL) databases 10.1.3 Scaling databases 10.1.4 Bringing it all together with Cosmos DB 10.2 Creating a Cosmos DB account and database 10.2.1 Creating and populating a Cosmos DB database 10.2.2 Adding global redundancy to a Cosmos DB database 10.3 Accessing globally distributed data 10.4 Lab: Deploying a web app that uses Cosmos DB 11 Managing network traffic and routing 11.1 What is Azure DNS? 11.2 Delegating a real domain to Azure DNS 11.3 Global routing and resolution with Traffic Manager 11.3.1 Creating Traffic Manager profiles 11.3.2 Globally distributing traffic to the closest instance 11.4 Lab: Deploying web apps to see Traffic Manager in action 12 Monitoring and troubleshooting 12.1 VM boot diagnostics 12.2 Performance metrics and alerts 12.2.1 Viewing performance metrics with the VM diagnostics extension 12.2.2 Creating alerts for performance conditions 12.3 Azure Network Watcher 12.3.1 Verifying IP flows 12.3.2 Viewing effective NSG rules 12.3.3 Capturing network packets 12.4 Lab: Creating performance alerts Part 3 Secure by default 13 Backup, recovery, and replication 13.1 Azure Backup 13.1.1 Policies and retention 13.1.2 Backup schedules 13.1.3 Restoring a VM 13.2 Azure Site Recovery 13.3 Lab: Configuring a VM for Site Recovery 14 Data encryption 14.1 What is data encryption? 14.2 Encryption at rest 14.3 Storage Service Encryption 14.4 VM encryption 14.4.1 Storing encryption keys in Azure Key Vault 14.4.2 Encrypting an Azure VM 14.5 Lab: Encrypting a VM 15 Securing information with Azure Key Vault 15.1 Securing information in the cloud 15.1.1 Software vaults and hardware security modules 15.1.2 Creating a key vault and secret 15.2 Managed identities for Azure resources 15.3 Obtaining a secret from within a VM with managed identity 15.4 Creating and injecting certificates 15.5 Lab: Configuring a secure web server 16 Azure Security Center and updates 16.1 Azure Security Center 16.2 Just-in-time access 16.3 Azure Update Management 16.3.1 Combined Azure management services 16.3.2 Reviewing and applying updates 16.4 Lab: Enabling JIT and updates for a Windows VM Part 4 The cool stuff 17 Machine learning and artificial intelligence 17.1 Overview and relationship of AI and ML 17.1.1 Artificial intelligence 17.1.2 Machine learning 17.1.3 Bringing AI and ML together 17.1.4 Azure ML tools for data scientists 17.2 Azure Cognitive Services 17.3 Building an intelligent bot to help with pizza orders 17.3.1 Creating an Azure web app bot 17.3.2 Language and understanding intent with LUIS 17.3.3 Building and running a web app bot with LUIS 17.4 Lab: Adding channels for bot communication 18 Azure Automation 18.1 What is Azure Automation? 18.1.1 Creating an Azure Automation account 18.1.2 Azure Automation assets and runbooks 18.2 Azure Automation sample runbook 18.2.1 Running and viewing output from a sample runbook 18.3 PowerShell Desired State Configuration (DSC) 18.3.1 Defining and using PowerShell DSC and an Azure Automation pull server 18.4 Lab: Using DSC with Linux 19 Azure containers 19.1 What are containers? 19.2 The microservices approach to applications 19.3 Azure Container Instances 19.4 Azure Kubernetes Service 19.4.1 Creating a cluster with Azure Kubernetes Services 19.4.2 Running a basic website in Kubernetes 19.5 Lab: Scaling your Kubernetes deployments 20 Azure and the Internet of Things 20.1 What is the Internet of Things? 20.2 Centrally managing devices with Azure IoT Hub 20.3 Creating a simulated Raspberry Pi device 20.4 Streaming Azure IoT hub data into Azure web apps 20.5 Azure IoT component review 20.6 Lab: Exploring use cases for IoT 21 Serverless computing 21.1 What is serverless computing? 21.2 Azure messaging platforms 21.2.1 Azure Event Grid 21.2.2 Azure Event Hubs and Service Bus 21.2.3 Creating a service bus and integrating it with an IoT hub 21.3 Creating an Azure logic app 21.4 Creating an Azure function app to analyze IoT device data 21.5 Don’t stop learning 21.5.1 Additional learning materials 21.5.2 GitHub resources 21.5.3 One final thought index