Azure Development and
Test Environment
Automation
Introduction
[Author]
[Title]
Agenda and Takeaways
Session Objectives:
Understand the main drivers for Dev/Ops
Understand the capabilities of Microsoft Azure (deployment, automation and orchestration
technologies)
Discuss use cases and scenarios
Q&A and white boarding
Key Takeaways:
Understand key scenarios for development and test environment automation in Azure
Understand how to implement a Dev/Ops approach for development and test automation
Agenda
Introduction to Dev/Ops
Introduction to Automation & Orchestration
of Azure
Azure Resource Groups
Azure Automation
PowerShell Desired State Configuration
Development and Test Environment
Automation
Introduction to
Dev/Ops
People/Process is what % of
downtime?
PROCESS
OPERATIONS
APPLICATION FAILURE OPERATOR ERROR
• Change management • Forget something
• Overloaded • Lack of procedures
• Weak problem • Backup
detection errors/security
40% 40%
OTHER 20%
• Hardware/OS
• Network
• Power and disaster
Gartner Security Conference presentation "Operation Zero
Downtime," D. Scott
There is no problem
Resolving issues without DevOps
with my code, you’re
either deploying
wrong or there is a
problem with your
infrastructure.
Infrastructure looks
good, must be a code
problem.
Customer finds Operations gets
problem notified
with your of application
application. problem.
DEV OPS
Conflicts across Dev, Ops, and
Business Ops: “You’re Dev: “I need 5
losing us more features
money with all on the
these application by
outages!” next week.”
You’re causing me
outages with all I’m just trying to crank
your frequent out the code quickly to
updates to keep the boss happy.
production… BUSINESS You’re
only slowing me down!
behind my back!
OPS DEV
DevOps: the three stage
conversation
1 People 2 Process 3 Products
The three ways
DEV
(Business)
OPS
(Customer
)
THE
THEFIRST
THE SECOND
THIRD WAY
WAY
WAY
Continual
Flow/systems
Feedback/
experimentation
thinking
amplify
and learning
ITIL and DevOps PROCESS
SERVICE DELIVERY PROCESSES
Service Continuity Management Service Level Financial Management
Availability Management Management Capacity Management
CONTROL PROCESSES
Configuration Management
Change Management
RELATIONSHIP RESOLUTION
PROCESSES PROCESSES
Business Relationship RELEASE Incident Management
Management PROCESS Problem Management
Release Management
Supplier Management Knowledge
Management
How can Operations help with
DevOps?
Accelerate Optimize Improve Increase
1
delivery 2
resources 3
availability 4
applicatio
n quality
SLA
Do
these…
DevOps benefits
Key findings:
Organizations that implemented
DevOps reported: ORGANIZATIONS THAT HAVE
IMPLEMENTED DEVOPS SAW THESE
Improved quality of software BENEFITS:
deployments IMPROVED QUALITY OF
SOFTWARE DEPLOYMENTS 65%
High performance and reliability
MORE FREQUENT
SOFTWARE RELEASES 63%
TOP 5 TOOLS USED TO SUPPORT IMPROVED VISIBILITY INTO IT
DEVOPS INITIATIVES PROCESS AND 61%
REQUIREMENTS
CULTURAL CHANGE
VERSION CONTROL SYSTEMS
84 COLLABORATION/ 55%
COOPERATION
%
MORE
CONFIGURATION MANAGEMENT 78%
RESPONSIVENESS TO 55%
BUSINESS NEEDS
Source: [Link]
MORE AGILE
TICKETING SYSTEM 68% DEVELOPMENT 51%
MORE AGILE CHANGE
Ship code 30x faster RESOURCE MANAGEMENT 45%
and complete those deployments 8,000 times faster than MONITORING 60% PROCESS
their peers.
IMPROVED
PROVISIONING 56% QUALITY OF CODE 38%
Have 50% fewer failures
and restore service 12 times faster than their peers.
Microsoft’s ALM framework
Requirement
Plan s Operate + learn
Development Collaboration Production
Develop + test Release
ALM framework
Cloud
Source Build
On-premises
Operations
Test/issues Deployment Application
Process tools
Open source ecosystem
GitHub Puppet Public Cloud
Chef
Codeplex Jenkins Hudson Labs
Microsoft Azure
Configuratio Alerting
n
Grunt Gradle
Jenkins Hudson
Linux
Zabbix Cacti
Source Build On-premises Monitor
Gradle Vagrant Travis
Fog Grunt
Ops
Visual Puppet
Studio Labs Eclipse Selenium
Test/issues Deploy App
Redmine JIRA
Process tools
Microsoft ecosystem
Release Management
for Visual Studio Microsoft Azure
Team Foundation ONE
Team Foundation Server
CONSISTENT
PLATFORM Visual Studio
SERVICE
Server ON-
PREMISES PROVIDER Online
OR Release Management Application
for Visual Studio Automation Insights
TFV GIT Service
C
System
Operations Manager
Repository Build Center
PowerShe WAML
ll
Team Foundation
Server xPlat CLI Ops
Microsoft Test Manager
Resourc
Microsoft Monitoring e Groups
Agent Release Management
for Visual Studio
Test Deploy App
Service
Manager
Process tools
On-premises
Release Management
for Visual Studio
Team Foundation Private Cloud System
Team Foundation Operations
Center Manager
Server
Version Control
Power Shell DSC System
Virtual Machine Manager
Center
Repository Build
Microsoft Test
Manager
Team Foundation Ops
Server
Microsoft
Monitoring Agent
Test Deploy App
Learn
Process tools
Cloud
IaaS
Visual Studio
Online Application
Puppet PowerShell Insights
Labs DSC
IIS VM SQL VM
PaaS – Cloud
Service
Repository Build Azure Resource
Groups
PaaS – Website
Visual Studio Online
Application Insights
Ops
Microsoft Monitoring
Agent
Test Deploy App
Learn
DevOps goals and success metrics
Increase Reduce change Reduce change Reduce mean-
deployment lead-time (react fail rate time-to-detect
frequency faster to & repair (MTTD,
dynamic MTTR)
business needs)
Agility performance indicators Reliability performance indicators
Introduction to
Automation and
Orchestration of
Azure
Process automation that simplifies
cloud management
Optimize and Deliver flexible Lower costs and
extend existing and reliable improve
investments services predictability
Integration Orchestration Automation
Integrate into existing Accelerate time to value Enable service owners to
systems with PowerShell with flexible process focus on work that adds
integration modules workflows business value
Build additional PS Improve service Reduce error-prone manual
modules to enable reliability across activities while lowering
integrating into other multiple tools, systems, costs
systems and department silos
Azure Resource Management
Tools
Microsoft Azure Command Line Visual Studio
SERVICE MANAGEMENT API
RESOURCE MANAGER
ADFS
Cloud On-Premises
AAD
RESOURCE PROVIDER CONTRACT
Provider
Rest Points
i
Azure Resource
Groups
Introducing Resource
Manager
Application Lifecycle Container
Declarative solution for Deployment and Configuration
Consistent Management Layer
Resource
Groups
RESOURCE GROUP
Tightly coupled containers
of multiple resources of
similar or different types
Every resource *must* exist
in one and only one
resource group
Resource groups can span
regions
Coupling for Resources
Resource Group is a unit of management
Lifecycle: deployment, update, delete, status
Identity: resources can talk to each other
Grouping: Metering, billing, quota: applied & rolled up to
group
Azure Automation
Azure Automation Capabilities
Runbook Authoring in Azure: Support requirements for scale and H/A. modules and runbooks for Azure services
Create runbooks to automate all aspects Built on PowerShell Workflow. Isolation for or to connect into 3rd party systems
of cloud operations, from deployment, runbook jobs
monitoring, and optimizations
Integration into other systems:
Highly Available Engine: Import PS modules and create additional Azure
Automation
Monitoring
Systems
Backup Patch Staged
Remediate
SQL Azure Azure VMs deploymen
alert on a
on a without t of a
service
schedule downtime service
Change
Control
Systems
Anything
Typical Azure Automation
Scenarios
Patch / Update / Change Control & Monitoring &
Backup Provisioning Remediation
Orchestration
Patch Azure IaaS VMs without Deploy a VM on an Azure / On- Alert on a VM then turn on
downtime, leveraging Traffic Premise cloud and enable tracing, collect logs, upload to
manager. monitoring for the VM. Azure Storage and make
available in Visual Studio for
Deploy a new service to Azure troubleshooting.
Enable regeneration of and configure the end points
storage account keys while for CPU and Memory alerts.
avoiding downtime in the Monitor for when a new
application. Deploy application from Git, service gets created, and
run validation tests, and swap configure it for the right
to production if tests pass. tracing / backup policy.
SQL Backup on a schedule.
Monitor SharePoint online for
an approval to update a Notify users of a subscription
Backup and restore IaaS VMs. service and update the who have underutilized VMs
service once approved. and perform remediation.
PowerShell Desired
State Configuration
(DSC)
What is DSC?
The “End Game”
This technology was the “final destination” in the “Monad Manifesto.”
That’s the document written by Windows PowerShell inventor Jeffrey
Snover, wherein he described his vision for changing administration in a
Microsoft environment.
In some respects, DSC eliminates the need for some
administrators to even learn Windows PowerShell. It’s that
important.
Moving to DSC…
Depend Configuration
en
Resolut cy Intent
In ion
te r
n r o
t Er
g & g DSC Engine
gin dlin
o g an Dependency Resolution
L H Rebo
Resili ot Logging & Error
Re ency Handling
Au pea Reboot Resiliency
t o ta
m bl Repeatable Automation
at e
i
Technology on Resources
Specific Technology Specific
Traditional Scripts
Think About It
Configuration is Just a Text File!
If you’re configuring everything on your servers by means of DSC, then all
of your configurations are just text files.
They’re searchable. Index-able. Human-readable.
Easily modified by tools! Imagine a GUI where you set up configurations,
and it just writes out text files.
Easily modified by tools!!! Imagine a wizard that adds a new user… but
really just modifies configuration scripts targeting your domain controllers,
file servers, and whatever else. Configuring anything becomes a matter of
modifying text files.
DSC & Azure – better together
Development & Test
Environment
Automation
Questions
?