How we moved
our environments
to the cloud
Session framing
Agenda
Azure Pipelines
Green-field
Initial State
Hosting
DB
LanguagesOS
Tools
Issues Problems
Rare and troublesome releases
Incongruent environments
Resistance to change
‘Don’t touch it’ mindset
Lack of Scalability
Technical debt
© Lara Paulussen
Change
© Fr. Lawrence Lew,
Infrastructure Application stack Pipelines
Azure Pipelines
Unique naming
Seclude
Regions gotchas
Central US
Environments
East US 2 West EU
Central US East US 2 West EU
C E
Sandbox LegacySandbox
U
Q
D
I
Central US
Environments
East US 2 West EU
Central US East US 2 West EU
C E U
Q
D
I
Control costs
Tips
Summary Cloud works
Plan
Design
Control
Terraform DSL
resource azurerm_virtual_machine vm_demo
demovm
northeurope
tf-demo
azurerm_network_interface.vm_demo.id
Standard_B2s
MicrosoftWindowsServer
WindowsServerSemiAnnual
Datacenter-Core-1803-smalldisk
latest
demovm-osdisk
ReadWrite
FromImage
demovm-datadisk
Empty
100
DEMOVM
var.vm_admin_username
var.vm_admin_password
true
false
How it works
Language Limits (HCL <0.12)
Critical choices
Summary
Terraform is easy
Don’t push too hard
Treat as usual code
Desired State Configuration (DSC)
Configuration MyBox
{
# 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"
}
#...
}

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
Working together

Alternatives
Summary This worked for us
There are other ways
Biggest effort
Ready to host apps
Gray area: pipeline deploy
Formerly
known as
Azure Pipelines
Deployment Groups Azure Pipelines
Configuration Values Azure Pipelines
Summary Source control
Source control
Source control
Deployment groups
Key Vault
Money Project approved on cost reduction
Estimate an X% saving on operational expenses
Side effects
Version control migration Azure Repos
and the
road goes
on…
Bio in pictures
giulio.dev@casavian.eu
@giulio_vian
https://www.slideshare.net/giuliov
http://blog.casavian.eu/
https://tfsaggregator.github.io
Hardware spec:
1KB RAM (upg. 16KB)
4KB ROM
First computer Companies Communities
To know more
https://www.amazon.com/Continuous-
Delivery/dp/0321601912/
https://www.amazon.com/DevOps-Handbook-World-
Class-Reliability-Organizations/dp/1942788002/
To know more (cont’d)
https://www.amazon.co.uk/gp/product/1491977086/
https://leanpub.com/the-dsc-book
1491977086/
Links
https://continuousdelivery.com/
https://www.terraform.io/
https://github.com/giuliov
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/
The End
How we moved our environments to the cloud

How we moved our environments to the cloud

Editor's Notes

  • #8 Una cattedrale in costruzione
  • #9 Windows e SQL fan la parte del leone
  • #10 Detonator plunger “If ain’t broke, don’t fix it”