SlideShare a Scribd company logo
Moving a Windows
environment to the cloud
Giulio Vian
giuliovdev@hotmail.com
@giulio_vian
http://blog.casavian.eu/
Tips & traps
Initial State
Moving a Windows environment to the cloud - DevOps Galway Meetup
IaaS
Automation Pillars
Provisioning
Configuration
Deployment
Azure Pipelines
Technologies
Automation Pillars
Network
Virtual Machines
OS Config, Libraries, Runtimes
Apps
Cloud Services
DatabasesAzure Pipelines
Moving a Windows environment to the cloud - DevOps Galway Meetup
Boundaries
Subscriptions
=>Isolation
Resource Groups
=>Security Boundaries
Uniqueness
Storage Accounts
Key Vaults
Function Apps
Data Lake Store
Container Registries
SQL Server Names
Regions idiosyncrasies
Paired regions
VM families and size
Tips
Blob & File Storage
bootstrapping
Key Vault
Terraform
DSC
Azure DevOps Pipelines
Better luck next
time
Error: Error applying plan:
azurerm_lb_probe.lb_probe_http: Error
Creating/Updating LoadBalancer
network.LoadBalancersClient#CreateOrUp
date: Failure sending request:
StatusCode=0 -- Original Error: Put
https://management.azure.com/subscript
ions/12345678-9abc-def0-1234-
56789abcdef0/resourceGroups/qa/provide
rs/Microsoft.Network/loadBalancers/qa-
loadbalancer?api-version=2017-09-01:
http: ContentLength=1655 with Body
length 0
Provisioning
Terraform DSL
resource "azurerm_virtual_machine" "vm_demo" {
name = "demovm"
location = “northeurope"
resource_group_name = "tf-demo"
network_interface_ids =
["${azurerm_network_interface.vm_demo.id}"]
vm_size = "Standard_B2s"
storage_image_reference {
publisher = "MicrosoftWindowsServer"
offer = "WindowsServerSemiAnnual"
sku = "Datacenter-Core-1803-smalldisk"
version = "latest"
}
storage_os_disk {
name = "demovm-osdisk"
caching = "ReadWrite"
create_option = "FromImage"
}
storage_data_disk {
name = "demovm-datadisk"
create_option = "Empty"
lun = 0
disk_size_gb = "10"
}
os_profile {
computer_name = "DEMOVM"
admin_username = "${var.vm_admin_username}"
admin_password = "${var.vm_admin_password}"
}
os_profile_windows_config {
provision_vm_agent = true
enable_automatic_upgrades = false
}
}
Language Limits
Loop are hard
Nested loop almost impossible
Ifs are hard
HCL parser idiosyncrasies
Regex might be troublesome
 is not unusual
Caveat
Refactoring is hard
Careful with naming
State mismatch
Active Directory is a gift
and a curse
Monk © USA networks
Configuration = Application stack Pillar
Desired State Configuration (DSC)
Configuration FourthCoffee
{
# Install the IIS role
WindowsFeature IIS
{
Ensure = "Present"
Name = "Web-Server"
}
# Install the ASP .NET 4.5 role
WindowsFeature AspNet45
{
Ensure = "Present"
Name = "Web-Asp-Net45"
}
#...
}
Reboots
Modes
Local / Push
Pull
ConfigurationMode
ApplyOnly
ApplyAndMonitor 
ApplyAndAutocorrect
PowerShell Gallery
Ansible
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
- name: get latest version
yum:
name: httpd
state: latest
- name: write the config file
template:
src: /srv/httpd.j2
dest: /etc/httpd.conf
notify:
- restart apache
- name: ensure running
service:
name: httpd
state: started
handlers:
- name: restart apache
service:
name: httpd
state: restarted
Deployment = CI/CD Pipeline Pillar
Azure Pipelines
Formerly known as
Deployment groups
Local agent
Service account
Azure Pipelines
Configuration data
Variable groups
Recursive, not Nested
Secure/secret/hidden
variables
Azure Key Vault
Azure Pipelines
Wrap-up
26
Myth #7 DevOps is Only for Open
Source Software
People
Teamwork
Endorsement
Investment
Training
Resources
Tools
Quality
Technical debt
Bio in pictures
31
giulio.dev@casavian.eu
@giulio_vian
http://blog.casavian.eu/
https://tfsaggregator.github.io
Hardware spec:
1KB RAM (upg. 16KB)
4KB ROM
First computer Companies Communities
To know more
Continuous Delivery: Reliable Software
Releases through Build, Test, and
Deployment Automation — J.Humble,
D.Farley (Addison-Wesley)
https://www.amazon.com/Continuous-
Delivery/dp/0321601912/
The DevOps Handbook — G.Kim, P.Debois,
J.Willis, J.Humble (IT Revolution Press)
https://www.amazon.com/DevOps-Handbook-
World-Class-Reliability-
Organizations/dp/1942788002/
32
To know more (cont’d)
Terraform - Up and Running: Writing
Infrastructure as Code — Y.Brikman
(O′Reilly)
https://www.amazon.co.uk/gp/product/1491
977086/
The DSC Book — Don Jones and Melissa
Januszko (O′Reilly)
https://leanpub.com/the-dsc-book
1491977086/
33
To know more (cont’d again)
Refactoring Databases — Scott J Ambler and
Pramod J. Sadalage (Addison-Wesley)
https://www.amazon.com/Refactoring-Databases-
Evolutionary-paperback-Addison-Wesley/dp/0321774515/
DevOps on the Microsoft Stack — Wouter de
Kort (Apress)
https://www.amazon.com/DevOps-Microsoft-Stack-Wouter-
Kort/dp/1484214471/
Beginning Build and Release Management with
TFS 2017 and VSTS — Chandrasekara, Chaminda
(Apress)
http://www.apress.com/gp/book/9781484228104
34
Links
https://continuousdelivery.com/
https://www.terraform.io/
https://github.com/giuliov/terraform-fun
https://azure.microsoft.com/en-us/services/key-vault/
https://docs.microsoft.com/en-us/azure/best-practices-availability-paired-
regions
https://martinfowler.com/articles/evodb.html
http://www.powershellgallery.com/
https://docs.microsoft.com/en-us/powershell/dsc/overview
https://itrevolution.com/devops-handbook-debunking-devops-myths/
https://docs.ansible.com/
35
Brick by brick

More Related Content

PDF
SQL Server Exploitation, Escalation, Pilfering - AppSec USA 2012
PPTX
Building drupal web farms with IIS - part 1
PPTX
Sherlock Homepage - A detective story about running large web services - NDC ...
PDF
Managing Infrastructure as Code
ODP
The secret life of a dispatcher (Adobe CQ AEM)
PDF
Getting Started with Ansible
PPTX
Azure: Docker Container orchestration, PaaS ( Service Farbic ) and High avail...
PPTX
Get more than a cache back! The Microsoft Azure Redis Cache (NDC Oslo)
SQL Server Exploitation, Escalation, Pilfering - AppSec USA 2012
Building drupal web farms with IIS - part 1
Sherlock Homepage - A detective story about running large web services - NDC ...
Managing Infrastructure as Code
The secret life of a dispatcher (Adobe CQ AEM)
Getting Started with Ansible
Azure: Docker Container orchestration, PaaS ( Service Farbic ) and High avail...
Get more than a cache back! The Microsoft Azure Redis Cache (NDC Oslo)

What's hot (16)

KEY
Using Apache as an Application Server
PDF
Configuring was webauth
PPTX
Whats new in ASP.NET 4.0
PDF
S903 palla
PPTX
DerbyCon2016 - Hacking SQL Server on Scale with PowerShell
PPT
Mmik powershell dsc_slideshare_v1
PPT
slides (PPT)
PPTX
Sonar qube
PPTX
Sherlock Homepage - A detective story about running large web services - WebN...
PDF
Apache Web server Complete Guide
PPTX
Web api scalability and performance
PDF
Let's Code our Infrastructure!
PPTX
Powerhsell dsc for chef veterans
PDF
SahanaCamp NYC Day 2 PM: Deploying Sahana Eden
PPTX
2016 aRcTicCON - Hacking SQL Server on Scale with PowerShell (Slide Updates)
PDF
Apache web server tutorial for linux
Using Apache as an Application Server
Configuring was webauth
Whats new in ASP.NET 4.0
S903 palla
DerbyCon2016 - Hacking SQL Server on Scale with PowerShell
Mmik powershell dsc_slideshare_v1
slides (PPT)
Sonar qube
Sherlock Homepage - A detective story about running large web services - WebN...
Apache Web server Complete Guide
Web api scalability and performance
Let's Code our Infrastructure!
Powerhsell dsc for chef veterans
SahanaCamp NYC Day 2 PM: Deploying Sahana Eden
2016 aRcTicCON - Hacking SQL Server on Scale with PowerShell (Slide Updates)
Apache web server tutorial for linux
Ad

Similar to Moving a Windows environment to the cloud - DevOps Galway Meetup (20)

PPTX
Moving a Windows environment to the cloud
PPTX
How we moved our environments to the cloud
PPTX
There and Back Again (My DevOps journey) - DevOps Days Copenhagen 2018
PPTX
Managing IT environment complexity in a Multi-Cloud World
PPTX
DevOps: a story about automation, open source & the Cloud
PPTX
Deploying Azure DevOps using Terraform
PPTX
Infrastructure as Code in your CD pipelines - London Microsoft DevOps 0423
PDF
OSS on Azure - Microsoft Open Technologies の Ross Gardler さんを囲む会 改め 『Microsof...
PDF
FAUG IaC Presentation
PPTX
Azure for SharePoint Developers - Workshop - Part 3: Web Services
PPTX
Azure deployments and ARM templates
PDF
Terraforming your Infrastructure on GCP
PPTX
OpenStack & the Evolving Cloud Ecosystem
PDF
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...
PPTX
Microsoft Azure & Hybrid Cloud
PPTX
Open stack presentation
PDF
Advanced dev ops governance with terraform
PDF
Continuous Integration and Continuous Delivery on Azure
PDF
Smart Platform Infrastructure with AWS
PDF
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...
Moving a Windows environment to the cloud
How we moved our environments to the cloud
There and Back Again (My DevOps journey) - DevOps Days Copenhagen 2018
Managing IT environment complexity in a Multi-Cloud World
DevOps: a story about automation, open source & the Cloud
Deploying Azure DevOps using Terraform
Infrastructure as Code in your CD pipelines - London Microsoft DevOps 0423
OSS on Azure - Microsoft Open Technologies の Ross Gardler さんを囲む会 改め 『Microsof...
FAUG IaC Presentation
Azure for SharePoint Developers - Workshop - Part 3: Web Services
Azure deployments and ARM templates
Terraforming your Infrastructure on GCP
OpenStack & the Evolving Cloud Ecosystem
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...
Microsoft Azure & Hybrid Cloud
Open stack presentation
Advanced dev ops governance with terraform
Continuous Integration and Continuous Delivery on Azure
Smart Platform Infrastructure with AWS
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...
Ad

More from Giulio Vian (20)

PPTX
Come implementare la governance nella vostra piattaforma e lavorare felici se...
PDF
Is Technical Debt the right metaphor for Continuous Update?
PPTX
Is Technical Debt the right metaphor for Continuous Update - AllDayDevOps 2022
PPTX
Software rotting - DevOpsCon Berlin
PPTX
Software rotting
PPTX
Software rotting - 28 Apr - DeveloperWeek Europe 2022
PPTX
L'impatto della sicurezza su DevOps
PPTX
L'impatto della sicurezza su DevOps
PPTX
A map for DevOps on Microsoft Stack - MS DevSummit
PPTX
Perché è così difficile il deploy dei database - DevCast DevOps Serie
PPTX
Database deployments - dotnetsheff
PPTX
Database deployment: still hard after all these years - Data Saturday #1
PPTX
Pipeline your Pipelines - 2020 All Day DevOps
PPTX
How to write cloud-agnostic Terraform code - Incontro DevOps Italia 2020
PPTX
Top 10 pipeline mistakes - dotnetsheff
PPTX
Introduction to Terraform with Azure flavor
PPTX
How collaboration works between Dev and Ops - DevOps Agile Testing and Test S...
PPTX
Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...
PPTX
Pipeline your pipelines!
PPTX
Why is DevOps vital for my company’s business
Come implementare la governance nella vostra piattaforma e lavorare felici se...
Is Technical Debt the right metaphor for Continuous Update?
Is Technical Debt the right metaphor for Continuous Update - AllDayDevOps 2022
Software rotting - DevOpsCon Berlin
Software rotting
Software rotting - 28 Apr - DeveloperWeek Europe 2022
L'impatto della sicurezza su DevOps
L'impatto della sicurezza su DevOps
A map for DevOps on Microsoft Stack - MS DevSummit
Perché è così difficile il deploy dei database - DevCast DevOps Serie
Database deployments - dotnetsheff
Database deployment: still hard after all these years - Data Saturday #1
Pipeline your Pipelines - 2020 All Day DevOps
How to write cloud-agnostic Terraform code - Incontro DevOps Italia 2020
Top 10 pipeline mistakes - dotnetsheff
Introduction to Terraform with Azure flavor
How collaboration works between Dev and Ops - DevOps Agile Testing and Test S...
Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...
Pipeline your pipelines!
Why is DevOps vital for my company’s business

Recently uploaded (20)

PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
System and Network Administration Chapter 2
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
AI in Product Development-omnex systems
PPTX
L1 - Introduction to python Backend.pptx
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Essential Infomation Tech presentation.pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Transform Your Business with a Software ERP System
PDF
Design an Analysis of Algorithms II-SECS-1021-03
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Internet Downloader Manager (IDM) Crack 6.42 Build 41
System and Network Administration Chapter 2
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Which alternative to Crystal Reports is best for small or large businesses.pdf
Design an Analysis of Algorithms I-SECS-1021-03
AI in Product Development-omnex systems
L1 - Introduction to python Backend.pptx
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Essential Infomation Tech presentation.pptx
Upgrade and Innovation Strategies for SAP ERP Customers
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Softaken Excel to vCard Converter Software.pdf
Odoo Companies in India – Driving Business Transformation.pdf
Operating system designcfffgfgggggggvggggggggg
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Transform Your Business with a Software ERP System
Design an Analysis of Algorithms II-SECS-1021-03

Moving a Windows environment to the cloud - DevOps Galway Meetup