Chapter
Chapter 1: Introducing DevOps
Software delivery challenges
Monolithic design and deployments
Collaboration and communication
Application lifecycle management
Automating processes and tools
Innovation and continuous learning
Staging environment deployment
Chapter 2: DevOps Tools and Technologies
Infrastructure as a Service (IaaS)
Platform as a Service (PaaS)
Software as a Service (SaaS)
Advantages of using cloud computing
Windows Server as a hosting platform
Windows Containers and Docker
Configuration management tools
Visual Studio Team Services
Source code management service
Team Foundation Version Control
Executing Build Definitions
Agents, agent pools, and agent queues
Queuing Build Definitions
Configuring a Build definition
Release Management service
Executing release definitions
Release Management architecture
Release definition configuration
Setting up a cloud environment
Visual Studio Team Services
Chapter 3: DevOps Automation Primer
Resource and resource instances
Azure Resource Manager architecture
Azure Resource Manager features
Role-Based Access Control
Azure Resource Manager templates
Expressions and functions
Azure PowerShell development environment
Writing tests with Pester
Desired State Configuration
Pull configuration example
DscLocalConfigurationManager() attribute
ConfigurationRepositoryWeb
Pushing LCM Configuration
Chapter 4: Nano, Containers, and Docker Primer
Docker Hub/Docker Registry
Installing a Windows Server 2016 Container on Azure
Provisioning Azure virtual machines
Installing Windows Nano Server on Azure
Container life cycle management
Docker registry management
Shell and Exec instruction forms
Chapter 5: Building a Sample Application
Experiencing the application
Preparing development environment
Installing SQL Server Management Studio
Creating Azure SQL Server and SQL database
Understanding database schema
Setting up Visual Studio solution
Modify web.config connection string
Publish profile for web application
Running the sample application
Understanding Visual Studio Solution
Unit testing DrugController
Mocking Drug data access class
Drug controller unit tests
Chapter 6: Source Code Control
Source Configuration Management
Visual Studio Team Services
Installing Git for Windows on the development environment
Adding Online Pharmacy to the VSTS Git repository using Visual Studio 2015
Managing a Git Repository using VSTS
Submitting code changes to a Git repository
Pulling code changes from a Git repository
Onboarding another developer for the same application
Cloning and adding a solution to the VSTS Git repository
Adding a project to the VSTS Git repository using the command-line tool
Cloning and adding a solution to VSTS Git repository using the Git command-line tool
Chapter 7: Configuration Management
Objectives of Infrastructure as Code
Revisiting sample application architecture
Desired State Configuration Pull Server
Azure virtual machines and containers
Azure public load balancer
Storing secrets and credentials
Secure login to Azure subscription
Storage account keys and shared access signature tokens
Network Security Groups and firewalls
The IT administrator and deployment role
Steps for deployment for an IT administrator
Microsoft.OperationalInsights/workspaces
Microsoft.KeyVault/vaults
Microsoft.KeyVault/vaults secrets
Steps for deployment of the operator or release pipeline
New-TemplateDeployment.ps1
OnlineMedicine.parameters.json
Microsoft.Compute/availabilitySets
Microsoft.Storage/storageAccounts
Microsoft.Network/virtualNetworks
Microsoft.Network/networkSecurityGroups
Microsoft.Network/publicIPAddresses
Microsoft.Network/networkInterfaces
Microsoft.Compute/virtualMachines
Microsoft.Compute/virtualMachines/extensions – CustomScriptExtension
Microsoft.Compute/virtualMachines/extensions – MicrosoftMonitoringAgent
Microsoft.Network/publicIPAddresses – for load balancer
Microsoft.Network/loadBalancers
Microsoft.Network/publicIPAddresses – web application public IP addresses
Microsoft.Network/networkInterfaces – web application NICs
Microsoft.Compute/virtualMachines – web application virtual machines
Microsoft.Compute/virtualMachines/extensions – CustomScriptExtension
Microsoft.Compute/virtualMachines/extensions – MicrosoftMonitoringAgent
Microsoft.Sql/servers, databases, firewallRules
Chapter 8: Configuration Management and Operational Validation
Steps for deployment through the release pipeline
ChangeConnectionString.ps1
PreparePesterEnvironment.ps1
Unit testing availability set
Unit testing virtual networks
Unit testing Network Security Groups
Unit testing load balancer
Unit testing Azure SQL Firewall
Unit testing the count of virtual machines
Unit testing virtual machine 01
Unit testing virtual machine 02
Unit testing the DSC Pull Server virtual machine
Unit testing the DSC Pull Server operating system
Unit testing the web application operating system
Environment operational validation
The operational validation folder structure
The operational validation of the web application on the first virtual machine
The operational validation of the web application on the second virtual machine
The operational validation of the web application using an Azure load balancer
Unit and operational validation tests
Chapter 9: Continuous Integration
Why continuous integration?
High confidence and cadence
Reduction of technical debt
Principles of Continuous Integration
Continuous integration process
Types of continuous integration
Integration with source code configuration management
Integration with work item management
Visual Studio Build activity for the OnlinePharmacy project
Visual Studio Build activity for the OnlinePharmacy test project
The Visual Studio Test activity for OnlinePharmacy project binaries
Replace Tokens activity for updating the web application's name
Archive Files activity for deployment.zip
Copy and Publish Build Artifacts activity
General, retention, and history
Chapter 10: Continuous Delivery and Deployment
Why continuous delivery and deployment?
Detecting deployment issues early
Eliminating surprises and risks
Pushing frequent changes to production
Removing risky manual deployments
Moving away from human dependency
The principles of continuous deployment
Continuous deployment process
Continuous delivery process
Using Azure automation for DSC Pull Server
Using Docker hub/Docker registry
Using Docker management tools such as Swarm or Kubernetes
Azure Resource Manager service endpoint
Release pipeline definition
General, retention, and history
Azure PowerShell – test ARM template deployment
Azure PowerShell – deploy test environment
PowerShell – prepare Pester environment
Copy files – copy operational validation module
Azure PowerShell – execute Pester and operational validation tests
Azure PowerShell – test ARM template deployment
Azure PowerShell – deploy test environment
PowerShell – prepare Pester environment
Copy Files – copy operational validation module
Azure PowerShell – execute Pester and operational validation tests
Release pipeline execution
Release pipeline strategies
Chapter 11: Monitoring and Measuring
Changes to sample application
Application Insights dashboard