SlideShare uma empresa Scribd logo
1 de 41
PowerShell Summit
2016
Configuration
Management with Azure
Automation DSC
JOE LEVY @JODOGLEVY
ED WILSON @SCRIPTINGGUYS
Cloud & On-Premises, Windows & Linux
Session Objectives And Takeaways
 Provide an overview of Azure Automation
 Demonstrate heterogeneous IT management using PowerShell and PowerShell
DSC in Azure Automation
 Azure Automation provides PowerShell as a Service -- a central, secure location
for all your PowerShell assets, executions, and reports, that is scalable, reliable
and highly-available
 Azure Automation DSC provides a reliable, highly-available, scalable DSC
pull and reporting service that can be used to deliver, monitor, and update
infrastructure aligned with IT rules
 Azure Automation simplifies automation and configuration across clouds,
platforms, and datacenters
The Problem*
“Keeping the 1000s of servers running my services
configured correctly is incredibly complicated and error-
prone.”
The Problem – In Detail
• Many servers to configure, in various “roles”
• More servers to configure as infrastructure scales to meet applications’ capacity demands
• Servers within a role need to be configured exactly the same
• Servers in different roles configured differently
• Other employees, and internal software, have access to these VMs and may change things
• As applications’ demands change, configurations must be updated to support these changes
• Different teams responsible for different “pieces” of the configurations
Azure Automation
Overview
Lower costs and
improve predictability
Automation
Enable service owners to focus on
work that adds business value
Reduce error-prone manual
activities while lowering costs
Ensure new and existing systems
stay in the correct state
Process & desired state automation that simplifies
cloud & on-premises management
Optimize and extend
existing investments
Integration
Integrate into existing systems &
components with PowerShell
modules and DSC resources
Build additional PS modules to
enable integrating into other
systems / components
Deliver flexible and
reliable services
Orchestration
Accelerate time to value with
flexible workflows &
declarative configurations
Improve service reliability
across multiple tools, systems,
and department silos
Operations Management Suite
Operations
Management Suite
Linux
Patching
Inventory
Wire Data
Remote OS
Management
Configuration
Containers
Alerting
CMDB
PowerShell++
PowerShell
•Runbooks - PowerShell scripts that automate complex, end-to-end
processes
•Configurations – PowerShell DSC Configurations to enforce how
machines should be configured
Centralized, secure
store
•Credentials
•Certificates
•Variables
•Connections
•PS Modules / PS DSC resources
•Draft / published versions
•Schedules
Highly Available,
Scalable, Manageable
•Execution environment for PowerShell
•PS DSC Pull / Reporting server
•REST API, C# SDK, cmdlets, and portal for managing all aspects of the
service
Historical Analysis
•Historical view of runbook job executions
•View runbook version used for each job
•High-level & granular views of DSC node compliance, now and in the
past
PowerShell
Centralized,
secure store
Highly
Available,
Scalable,
Manageable
Historical
Analysis
Microsoft
Azure
Automation
Scale instantly, as your needs change
Get new features frequently & automatically
Automate with no installation required
No infrastructure to maintain
Free tier lets you ‘try before you buy’Simplicity
Velocity
Multiple regions, for policy compliance & DR
Integrate ‘behind the firewall’ on-premises
Ubiquity
PowerShell, as a service
Features introduced last PS Summit
Runbook Gallery
PowerShell script runbooks
PowerShell ISE add-on for Azure
Automation
Hybrid Worker
• Support for testing runbook jobs
• Deploy Hybrid agent through OM
• Schedule support
Graphical Authoring
• Support for choosing Assets as input to activity
parameter
• Support for choosing runbook input parameter as input
to activity parameter
• Activity-level tracing during testing to aid debugging
• Import / Export graph runbooks
Azure Automation DSC public preview
Source Control support
Portal / Service Improvements
• View job source
• Additional region support (South Central US)
Extensibility
• Azure ARM cmdlet support for Automation
• ARM C# SDK for using Azure Automation
Orchestrator Migration
• Support for modules and standard activities from SCO to Azure
Automation
• Export Orchestrator runbooks and import into Azure Automation
(beta version)
Features introduced since then
Module Gallery
PowerShell v5 support
• Side by side module versioning
• PowerShell classes
• PSWF improvements
• New cmdlets (Convert-String)
• PS DSC improvements (PSRunAsCredential)
Graphical authoring improvements
Hybrid Worker reliability improvements
Audit Logs
Automation PowerShell ISE add on support for
certificate, connection assets
Role-Based Access Control
• Standard Azure role support
• “Operator” role - only start/schedule runbooks
Azure “run as account” autocreation
Azure Automation DSC GA
OMS Log Analytics & Azure Alerts integration
• Enable automation runbooks to be triggered from OMS Log
Analytics or Azure alerts
Diagnostic Logs
• Job Stream/Operational Logs -> Customer’s Storage Account
AzureRM modules shipping in the service
Automation UX goes GA in the new Azure portal
Hybrid worker “run as”, webhook support
Azure Automation GA in China, India region support
The Problem
“Keeping the 1000s of servers running my services
configured correctly is incredibly complicated and error-
prone.”
Solving with
runbooks
DEMO
Downsides
• Have to write TEST, SET, REPORT logic
• Have to schedule execution to happen continually
• Have to open inbound ports on all machines to manage
• Have to give Automation inbound access to all machines to
manage
• Can’t easily grok configuration requirements just by
skimming
• Can’t easily grok changes to configuration requirements by
diffing different versions over time
• Have to write imperative PowerShell even though really just
trying to define a declarative “desired state”
Azure Automation DSC
PowerShell Desired
State Configuration:
Overview
PS DSC configuration management
Development Test Production
Configuration and Continuous Deployment
Intent Environment
Configuration
(Dev -> Test -> Production)
$SiteName = “TestWebApp”
$SitePath = “d:inetpubtestsite”
Servers = 3
…
Structural
Configuration
Website IIS {
Ensure = "Present“
Name = $SiteName
Path = $SitePath
}
…
Make It So Idempotent
Automation
foreach -parallel ($featureName in $Name)
{
$feature = Get-WindowsFeature -Name $featureName
if(($Ensure -eq "Present") -and (!$feature.Installed))
{
Install-WindowsFeature -Name $featureName
}
….
}
…
PowerShell DSC Lifecycle
Configuration
Applied To:
.MOF config document
WebService
Compiled
Node
Via Push
or Pull
Solving with
PowerShell DSC
DEMO
Can PowerShell DSC be
used at enterprise
scale?
Using PS DSC requires management of lots of items
Configuration
Applied To:
Node Configurations
(.MOF config document)
WebService
Compiled
Nodes
1…N of these
1…N of these per
configuration
(+ checksum files for each)
1…N of these per
node configuration
Via Push
or Pull
Not manageable at scale
Which users can create / edit which configurations? Which users can compile which configurations (to create node
configurations), and apply these node configurations to nodes?
What nodes map to what node configurations? How do I prevent malicious nodes from accessing others?
Who edited what configurations when? Who compiled what configurations, to generate which node configurations,
when?
What nodes are compliant or not, pending changes, or failed to become compliant? What specifically is each not
compliant with? What services and roles are overall in compliance or not?
How do I make sure to only cause configuration changes during maintenance windows?
How do I manage configuration changes across upgrade domains within a service?
How do I manage configuration change dependencies across nodes in a service?
Azure Automation DSC
Manage physical hosts and VMs in any cloud or on-premises
Windows or Linux
Import
Authoring
Compiling
Versioning
Distribution to nodes
Reporting
Easy node onboarding
Azure Automation DSC
Configuration
(script)
DSC
Resources
Authoring
Azure
VM
Physical
server
On-prem
VM
MOF
MOFNode
Configuration
(MOF)
Zip
Zip
Zip
Rest Endpoint
Staging
Reports
Azure Automation DSC
 Now generally available
 Free tier: Up to 5 managed DSC nodes
per subscription
 Basic tier: Unlimited managed DSC
nodes, $6 / node / month, prorated daily
 New features for GA:
 Reliability improvements
 Improved reporting
 Support for report-only endpoint
 Azure VM Scale Sets support
Azure Automation Resource Tree
 Runbook
 Job
 Asset
 Module
 DSC Resource
 Credential
 Connection
 Schedule
 Variable
 Certificate
 DSC Configuration
 Compilation job
 Node Configuration
 Nodes
Bold = new for DSC support
Solving with
Automation DSC
DEMO
Use PS DSC to declaratively configure VMs / physical hosts
Use runbooks to orchestrate complex processes across systems
Use PS DSC within Azure Automation runbooks to configure machines as part of
larger processes
Ex: The multi-step process of deploying new DSC configurations to production servers:
1. Monitor source control for new commits to DSC repository of an organization
2. When new commit, store the DSC in Azure Automation DSC, set up to be pulled by the stage environment VMs
3. Run test suite to confirm service in stage environment is functioning properly
4. If tests fail, alert developers
5. If tests pass, wait for maintenance window and then set up the DSC in Azure Automation to be pulled by production
VMs, in a way that maintains service availability
DSC and Runbooks – better together
Azure Resource Manager templates vs DSC
Use PS DSC to declaratively configure VMs / physical hosts
Use ARM templates to declaratively configure cloud resources
- Create Azure VMs
- Create Azure Networks
- Create Az Storage accounts
- Create Az Automation accounts
- Create Azure VMs configured to use Automation DSC for
configuration management
Migrating from
PowerShell DSC to
Automation DSC
DEMO
Onboarding
Linux/On-Prem
Requirements for DSC for Linux
Required package Description Minimum version
Glibc GNU C Library 2.4 - 31.30
python Python 2.4 - 3.4
omi
Open Management
Infrastructure
1.0.8-4
openssl OpenSSL Libraries 0.9.8e or 1.0
python-ctypes Python CTypes library Must match Python version
libcurl cURL http client library 7.15.1
unzip
De-archiver for .zip files
like resource modules
n/a
dsc-1.1.1.packages.tar.gz PowerShell DSC 1.1.1
Installing PowerShell DSC for Linux
 sudo apt-get -y Glibc
 sudo apt-get -y python
 sudo apt-get -y omi
 sudo apt-get -y openssl
 sudo apt-get -y python-ctypes
 sudo apt-get -y libcurl
 sudo apt-get -y unzip
 mkdir /Downloads
 cd /Downloads
 sudo curl -O https://github.com/Microsoft/PowerShell-DSC-for-Linux/releases/download/v1.1.1-70/dsc-
1.1.1.packages.tar.gz
 sudo tar -xzvf dsc-1.1.1.packages.tar.gz ; mv ./dsc/* ./ ; make ; make reg
 You will also need an omiserver startup script as well.
Use Register.py to onboard
 Configures to pull from Azure Automation DSC
 Configures to report to Azure Automation DSC
 /opt/microsoft/dsc/Scripts/Register.py <Automation account registration
key> <Automation account registration URL>
Azure DSC Gotachas
• Node Configurations (MOFs), not Configurations, are what should be assigned to
nodes in Automation DSC
• Node Configurations (MOFs) are namespaced by configuration name in
Automation DSC (ex: MyConfiguration.webserver)
• Only machines with WMF 5 installed can communicate with Automation DSC
• Automation DSC does not currently support composite configurations or partial
configurations (but does support composite resources)
• Currently, nodes must be reregistered with Automation DSC after one year, due
to certificate expiration
• Compiling Configurations that use credentials in Automation DSC requires
passing in ConfigurationData via PS cmdlets
In Review
 Provide an overview of Azure Automation
 Demonstrate heterogeneous IT management using PowerShell and PowerShell DSC in
Azure Automation
 Azure Automation provides PowerShell as a Service -- a central, secure location for all
your PowerShell assets, executions, and reports, that is scalable, reliable and highly-
available
 Azure Automation DSC provides a reliable, highly-available, scalable DSC pull and
reporting service that can be used to deliver, monitor, and update infrastructure
aligned with IT rules
 Azure Automation simplifies automation and configuration across clouds,
platforms, and datacenters
Join OMS Customer
Days!
APRIL 26-27
IF INTERESTED, COME TALK TO ME AFTER…
OMS Team blog

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

DevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesDevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best Practices
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
DevOps for Azure
DevOps for AzureDevOps for Azure
DevOps for Azure
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
 
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
 
Azure cli-azure devops
Azure cli-azure devopsAzure cli-azure devops
Azure cli-azure devops
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Mastering Best Azure DevOps Online Training and Certification - Dot Net Tricks
Mastering Best Azure DevOps Online Training and Certification - Dot Net TricksMastering Best Azure DevOps Online Training and Certification - Dot Net Tricks
Mastering Best Azure DevOps Online Training and Certification - Dot Net Tricks
 
Accelerating Innovation with DevOps on AWS
Accelerating Innovation with DevOps on AWSAccelerating Innovation with DevOps on AWS
Accelerating Innovation with DevOps on AWS
 
Why AvePoint chose Azure for its Office 365 solutions
Why AvePoint chose Azure for its Office 365 solutionsWhy AvePoint chose Azure for its Office 365 solutions
Why AvePoint chose Azure for its Office 365 solutions
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
DevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as codeDevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as code
 
Power of Azure Devops
Power of Azure DevopsPower of Azure Devops
Power of Azure Devops
 
Database deployments - dotnetsheff
Database deployments - dotnetsheffDatabase deployments - dotnetsheff
Database deployments - dotnetsheff
 
Azure DevOps Extensions
Azure DevOps ExtensionsAzure DevOps Extensions
Azure DevOps Extensions
 
Contract-based Testing Approach as a Tool for Shift Lef
Contract-based Testing Approach as a Tool for Shift LefContract-based Testing Approach as a Tool for Shift Lef
Contract-based Testing Approach as a Tool for Shift Lef
 
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
 
Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWSAccelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWS
 
Infrastructure as Code (BBWorld/DevCon13)
Infrastructure as Code (BBWorld/DevCon13)Infrastructure as Code (BBWorld/DevCon13)
Infrastructure as Code (BBWorld/DevCon13)
 
Alex Magnay - Azure Infrastructure as Code with Hashicorp Terraform
Alex Magnay - Azure Infrastructure as Code with Hashicorp TerraformAlex Magnay - Azure Infrastructure as Code with Hashicorp Terraform
Alex Magnay - Azure Infrastructure as Code with Hashicorp Terraform
 

Destaque

Development of a Cloud-Based Configuration Management Database
Development of a Cloud-Based Configuration Management DatabaseDevelopment of a Cloud-Based Configuration Management Database
Development of a Cloud-Based Configuration Management Database
David Rubino
 
AWS March 2016 Webinar Series - Best Practices for Managing Security Operatio...
AWS March 2016 Webinar Series - Best Practices for Managing Security Operatio...AWS March 2016 Webinar Series - Best Practices for Managing Security Operatio...
AWS March 2016 Webinar Series - Best Practices for Managing Security Operatio...
Amazon Web Services
 

Destaque (13)

Development of a Cloud-Based Configuration Management Database
Development of a Cloud-Based Configuration Management DatabaseDevelopment of a Cloud-Based Configuration Management Database
Development of a Cloud-Based Configuration Management Database
 
AWS Config Rules - Advanced AWS Meetup
AWS Config Rules - Advanced AWS MeetupAWS Config Rules - Advanced AWS Meetup
AWS Config Rules - Advanced AWS Meetup
 
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
 
Azure Functions VS AWS Lambda: overview and comparison
Azure Functions VS AWS Lambda: overview and comparisonAzure Functions VS AWS Lambda: overview and comparison
Azure Functions VS AWS Lambda: overview and comparison
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 
AWS re:Invent 2016: How to Automate Policy Validation (SEC311)
AWS re:Invent 2016: How to Automate Policy Validation (SEC311)AWS re:Invent 2016: How to Automate Policy Validation (SEC311)
AWS re:Invent 2016: How to Automate Policy Validation (SEC311)
 
AWS re:Invent 2016: Automated Governance of Your AWS Resources (DEV302)
AWS re:Invent 2016: Automated Governance of Your AWS Resources (DEV302)AWS re:Invent 2016: Automated Governance of Your AWS Resources (DEV302)
AWS re:Invent 2016: Automated Governance of Your AWS Resources (DEV302)
 
Automated Governance of Your AWS Resources
Automated Governance of Your AWS ResourcesAutomated Governance of Your AWS Resources
Automated Governance of Your AWS Resources
 
AWS re:Invent 2016: Continuous Compliance in the AWS Cloud for Regulated Life...
AWS re:Invent 2016: Continuous Compliance in the AWS Cloud for Regulated Life...AWS re:Invent 2016: Continuous Compliance in the AWS Cloud for Regulated Life...
AWS re:Invent 2016: Continuous Compliance in the AWS Cloud for Regulated Life...
 
AWS November Webinar Series - Introducing Config Rules
AWS November Webinar Series - Introducing Config RulesAWS November Webinar Series - Introducing Config Rules
AWS November Webinar Series - Introducing Config Rules
 
AWS March 2016 Webinar Series - Best Practices for Managing Security Operatio...
AWS March 2016 Webinar Series - Best Practices for Managing Security Operatio...AWS March 2016 Webinar Series - Best Practices for Managing Security Operatio...
AWS March 2016 Webinar Series - Best Practices for Managing Security Operatio...
 
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...
 
AWS re:Invent 2016: Using AWS Lambda to Build Control Systems for Your AWS In...
AWS re:Invent 2016: Using AWS Lambda to Build Control Systems for Your AWS In...AWS re:Invent 2016: Using AWS Lambda to Build Control Systems for Your AWS In...
AWS re:Invent 2016: Using AWS Lambda to Build Control Systems for Your AWS In...
 

Semelhante a WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC

Developing and deploying windows azure applications
Developing and deploying windows azure applicationsDeveloping and deploying windows azure applications
Developing and deploying windows azure applications
Manish Corriea
 
Microsoft SQL Azure - Building Applications Using SQL Azure Presentation
Microsoft SQL Azure - Building Applications Using SQL Azure PresentationMicrosoft SQL Azure - Building Applications Using SQL Azure Presentation
Microsoft SQL Azure - Building Applications Using SQL Azure Presentation
Microsoft Private Cloud
 

Semelhante a WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC (20)

The Evolution of SQL Server as a Service - SQL Azure Managed Instance
The Evolution of SQL Server as a Service - SQL Azure Managed InstanceThe Evolution of SQL Server as a Service - SQL Azure Managed Instance
The Evolution of SQL Server as a Service - SQL Azure Managed Instance
 
Azure System Management
Azure System ManagementAzure System Management
Azure System Management
 
Azure provisioning at your control
Azure provisioning at your controlAzure provisioning at your control
Azure provisioning at your control
 
Azure for SharePoint Developers - Workshop - Part 3: Web Services
Azure for SharePoint Developers - Workshop - Part 3: Web ServicesAzure for SharePoint Developers - Workshop - Part 3: Web Services
Azure for SharePoint Developers - Workshop - Part 3: Web Services
 
Become an Automation Ninja in 60 Minutes
Become an Automation Ninja in 60 MinutesBecome an Automation Ninja in 60 Minutes
Become an Automation Ninja in 60 Minutes
 
Automated DevOps Workflows with Chef on AWS
Automated DevOps Workflows with Chef on AWSAutomated DevOps Workflows with Chef on AWS
Automated DevOps Workflows with Chef on AWS
 
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
 
Automatyzacja Microsoft Azure z wykorzystaniem Azure Automation
Automatyzacja Microsoft Azure z wykorzystaniem Azure AutomationAutomatyzacja Microsoft Azure z wykorzystaniem Azure Automation
Automatyzacja Microsoft Azure z wykorzystaniem Azure Automation
 
Configuration Management in the Cloud - AWS Online Tech Talks
Configuration Management in the Cloud - AWS Online Tech TalksConfiguration Management in the Cloud - AWS Online Tech Talks
Configuration Management in the Cloud - AWS Online Tech Talks
 
Azure automation
Azure automationAzure automation
Azure automation
 
Developing and deploying windows azure applications
Developing and deploying windows azure applicationsDeveloping and deploying windows azure applications
Developing and deploying windows azure applications
 
Azure SQL Database Managed Instance - technical overview
Azure SQL Database Managed Instance - technical overviewAzure SQL Database Managed Instance - technical overview
Azure SQL Database Managed Instance - technical overview
 
Amazon EC2 Systems Manager for Hybrid Cloud Management at Scale
Amazon EC2 Systems Manager for Hybrid Cloud Management at ScaleAmazon EC2 Systems Manager for Hybrid Cloud Management at Scale
Amazon EC2 Systems Manager for Hybrid Cloud Management at Scale
 
Amazon EC2 Systems Manager for Hybrid Cloud Management at Scale
Amazon EC2 Systems Manager for Hybrid Cloud Management at ScaleAmazon EC2 Systems Manager for Hybrid Cloud Management at Scale
Amazon EC2 Systems Manager for Hybrid Cloud Management at Scale
 
MS_Azure_Migrate_L300_Refreshed_-_To_be_published.pptx
MS_Azure_Migrate_L300_Refreshed_-_To_be_published.pptxMS_Azure_Migrate_L300_Refreshed_-_To_be_published.pptx
MS_Azure_Migrate_L300_Refreshed_-_To_be_published.pptx
 
Secure Management of Fleet at Scale
Secure Management of Fleet at ScaleSecure Management of Fleet at Scale
Secure Management of Fleet at Scale
 
Microsoft SQL Azure - Building Applications Using SQL Azure Presentation
Microsoft SQL Azure - Building Applications Using SQL Azure PresentationMicrosoft SQL Azure - Building Applications Using SQL Azure Presentation
Microsoft SQL Azure - Building Applications Using SQL Azure Presentation
 
Mmik_Powershell_DSC_Azure_DSC
Mmik_Powershell_DSC_Azure_DSCMmik_Powershell_DSC_Azure_DSC
Mmik_Powershell_DSC_Azure_DSC
 
Mmik powershell dsc_slideshare_v1
Mmik powershell dsc_slideshare_v1Mmik powershell dsc_slideshare_v1
Mmik powershell dsc_slideshare_v1
 
ENT401 Deep Dive with Amazon EC2 Systems Manager
ENT401 Deep Dive with Amazon EC2 Systems ManagerENT401 Deep Dive with Amazon EC2 Systems Manager
ENT401 Deep Dive with Amazon EC2 Systems Manager
 

Mais de WinOps Conf

Mais de WinOps Conf (15)

Rik Hepworth - ARM Yourself for Effective Azure Provisioning
Rik Hepworth - ARM Yourself for Effective Azure ProvisioningRik Hepworth - ARM Yourself for Effective Azure Provisioning
Rik Hepworth - ARM Yourself for Effective Azure Provisioning
 
Trond Hindenes - 18 months of learning: Notes from implementing Ansible in a ...
Trond Hindenes - 18 months of learning: Notes from implementing Ansible in a ...Trond Hindenes - 18 months of learning: Notes from implementing Ansible in a ...
Trond Hindenes - 18 months of learning: Notes from implementing Ansible in a ...
 
Flynn Bundy - 60 micro-services in 6 months
Flynn Bundy - 60 micro-services in 6 months Flynn Bundy - 60 micro-services in 6 months
Flynn Bundy - 60 micro-services in 6 months
 
Ian Margetts - ASOS’ Journey to Continuous Deployment
Ian Margetts - ASOS’ Journey to Continuous DeploymentIan Margetts - ASOS’ Journey to Continuous Deployment
Ian Margetts - ASOS’ Journey to Continuous Deployment
 
Connon MacRae - Evolution of Ticketmaster's journey to DevOps
Connon MacRae - Evolution of Ticketmaster's journey to DevOpsConnon MacRae - Evolution of Ticketmaster's journey to DevOps
Connon MacRae - Evolution of Ticketmaster's journey to DevOps
 
Eduardo Piairo - Deployment pipeline for databases (Azure SQL Database, SQL S...
Eduardo Piairo - Deployment pipeline for databases (Azure SQL Database, SQL S...Eduardo Piairo - Deployment pipeline for databases (Azure SQL Database, SQL S...
Eduardo Piairo - Deployment pipeline for databases (Azure SQL Database, SQL S...
 
Ed Elliott - Practical DSC in Azure
Ed Elliott - Practical DSC in AzureEd Elliott - Practical DSC in Azure
Ed Elliott - Practical DSC in Azure
 
Kathleen Wilson - Evolve Cloud Operations and Enable Agile with Modern Servic...
Kathleen Wilson - Evolve Cloud Operations and Enable Agile with Modern Servic...Kathleen Wilson - Evolve Cloud Operations and Enable Agile with Modern Servic...
Kathleen Wilson - Evolve Cloud Operations and Enable Agile with Modern Servic...
 
Neil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep DiveNeil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep Dive
 
Jeffrey Snover - Empowering DevOps with Azure Stack
Jeffrey Snover - Empowering DevOps with Azure StackJeffrey Snover - Empowering DevOps with Azure Stack
Jeffrey Snover - Empowering DevOps with Azure Stack
 
New Relic - Digital Intelligence - Meetup #12
New Relic - Digital Intelligence - Meetup #12New Relic - Digital Intelligence - Meetup #12
New Relic - Digital Intelligence - Meetup #12
 
WinOps Conf 2016 - Peter Mounce - DoS yourself in production every night to p...
WinOps Conf 2016 - Peter Mounce - DoS yourself in production every night to p...WinOps Conf 2016 - Peter Mounce - DoS yourself in production every night to p...
WinOps Conf 2016 - Peter Mounce - DoS yourself in production every night to p...
 
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
 
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps successWinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
 
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows ConferenceWinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC

  • 2. Configuration Management with Azure Automation DSC JOE LEVY @JODOGLEVY ED WILSON @SCRIPTINGGUYS Cloud & On-Premises, Windows & Linux
  • 3. Session Objectives And Takeaways  Provide an overview of Azure Automation  Demonstrate heterogeneous IT management using PowerShell and PowerShell DSC in Azure Automation  Azure Automation provides PowerShell as a Service -- a central, secure location for all your PowerShell assets, executions, and reports, that is scalable, reliable and highly-available  Azure Automation DSC provides a reliable, highly-available, scalable DSC pull and reporting service that can be used to deliver, monitor, and update infrastructure aligned with IT rules  Azure Automation simplifies automation and configuration across clouds, platforms, and datacenters
  • 4. The Problem* “Keeping the 1000s of servers running my services configured correctly is incredibly complicated and error- prone.”
  • 5. The Problem – In Detail • Many servers to configure, in various “roles” • More servers to configure as infrastructure scales to meet applications’ capacity demands • Servers within a role need to be configured exactly the same • Servers in different roles configured differently • Other employees, and internal software, have access to these VMs and may change things • As applications’ demands change, configurations must be updated to support these changes • Different teams responsible for different “pieces” of the configurations
  • 7. Lower costs and improve predictability Automation Enable service owners to focus on work that adds business value Reduce error-prone manual activities while lowering costs Ensure new and existing systems stay in the correct state Process & desired state automation that simplifies cloud & on-premises management Optimize and extend existing investments Integration Integrate into existing systems & components with PowerShell modules and DSC resources Build additional PS modules to enable integrating into other systems / components Deliver flexible and reliable services Orchestration Accelerate time to value with flexible workflows & declarative configurations Improve service reliability across multiple tools, systems, and department silos
  • 8. Operations Management Suite Operations Management Suite Linux Patching Inventory Wire Data Remote OS Management Configuration Containers Alerting CMDB
  • 9. PowerShell++ PowerShell •Runbooks - PowerShell scripts that automate complex, end-to-end processes •Configurations – PowerShell DSC Configurations to enforce how machines should be configured Centralized, secure store •Credentials •Certificates •Variables •Connections •PS Modules / PS DSC resources •Draft / published versions •Schedules Highly Available, Scalable, Manageable •Execution environment for PowerShell •PS DSC Pull / Reporting server •REST API, C# SDK, cmdlets, and portal for managing all aspects of the service Historical Analysis •Historical view of runbook job executions •View runbook version used for each job •High-level & granular views of DSC node compliance, now and in the past PowerShell Centralized, secure store Highly Available, Scalable, Manageable Historical Analysis Microsoft Azure Automation
  • 10. Scale instantly, as your needs change Get new features frequently & automatically Automate with no installation required No infrastructure to maintain Free tier lets you ‘try before you buy’Simplicity Velocity Multiple regions, for policy compliance & DR Integrate ‘behind the firewall’ on-premises Ubiquity PowerShell, as a service
  • 11. Features introduced last PS Summit Runbook Gallery PowerShell script runbooks PowerShell ISE add-on for Azure Automation Hybrid Worker • Support for testing runbook jobs • Deploy Hybrid agent through OM • Schedule support Graphical Authoring • Support for choosing Assets as input to activity parameter • Support for choosing runbook input parameter as input to activity parameter • Activity-level tracing during testing to aid debugging • Import / Export graph runbooks Azure Automation DSC public preview Source Control support Portal / Service Improvements • View job source • Additional region support (South Central US) Extensibility • Azure ARM cmdlet support for Automation • ARM C# SDK for using Azure Automation Orchestrator Migration • Support for modules and standard activities from SCO to Azure Automation • Export Orchestrator runbooks and import into Azure Automation (beta version)
  • 12. Features introduced since then Module Gallery PowerShell v5 support • Side by side module versioning • PowerShell classes • PSWF improvements • New cmdlets (Convert-String) • PS DSC improvements (PSRunAsCredential) Graphical authoring improvements Hybrid Worker reliability improvements Audit Logs Automation PowerShell ISE add on support for certificate, connection assets Role-Based Access Control • Standard Azure role support • “Operator” role - only start/schedule runbooks Azure “run as account” autocreation Azure Automation DSC GA OMS Log Analytics & Azure Alerts integration • Enable automation runbooks to be triggered from OMS Log Analytics or Azure alerts Diagnostic Logs • Job Stream/Operational Logs -> Customer’s Storage Account AzureRM modules shipping in the service Automation UX goes GA in the new Azure portal Hybrid worker “run as”, webhook support Azure Automation GA in China, India region support
  • 13. The Problem “Keeping the 1000s of servers running my services configured correctly is incredibly complicated and error- prone.”
  • 15. Downsides • Have to write TEST, SET, REPORT logic • Have to schedule execution to happen continually • Have to open inbound ports on all machines to manage • Have to give Automation inbound access to all machines to manage • Can’t easily grok configuration requirements just by skimming • Can’t easily grok changes to configuration requirements by diffing different versions over time • Have to write imperative PowerShell even though really just trying to define a declarative “desired state”
  • 18. PS DSC configuration management Development Test Production
  • 19. Configuration and Continuous Deployment Intent Environment Configuration (Dev -> Test -> Production) $SiteName = “TestWebApp” $SitePath = “d:inetpubtestsite” Servers = 3 … Structural Configuration Website IIS { Ensure = "Present“ Name = $SiteName Path = $SitePath } … Make It So Idempotent Automation foreach -parallel ($featureName in $Name) { $feature = Get-WindowsFeature -Name $featureName if(($Ensure -eq "Present") -and (!$feature.Installed)) { Install-WindowsFeature -Name $featureName } …. } …
  • 20. PowerShell DSC Lifecycle Configuration Applied To: .MOF config document WebService Compiled Node Via Push or Pull
  • 22. Can PowerShell DSC be used at enterprise scale?
  • 23. Using PS DSC requires management of lots of items Configuration Applied To: Node Configurations (.MOF config document) WebService Compiled Nodes 1…N of these 1…N of these per configuration (+ checksum files for each) 1…N of these per node configuration Via Push or Pull
  • 24. Not manageable at scale Which users can create / edit which configurations? Which users can compile which configurations (to create node configurations), and apply these node configurations to nodes? What nodes map to what node configurations? How do I prevent malicious nodes from accessing others? Who edited what configurations when? Who compiled what configurations, to generate which node configurations, when? What nodes are compliant or not, pending changes, or failed to become compliant? What specifically is each not compliant with? What services and roles are overall in compliance or not? How do I make sure to only cause configuration changes during maintenance windows? How do I manage configuration changes across upgrade domains within a service? How do I manage configuration change dependencies across nodes in a service?
  • 25. Azure Automation DSC Manage physical hosts and VMs in any cloud or on-premises Windows or Linux Import Authoring Compiling Versioning Distribution to nodes Reporting Easy node onboarding
  • 27. Azure Automation DSC  Now generally available  Free tier: Up to 5 managed DSC nodes per subscription  Basic tier: Unlimited managed DSC nodes, $6 / node / month, prorated daily  New features for GA:  Reliability improvements  Improved reporting  Support for report-only endpoint  Azure VM Scale Sets support
  • 28. Azure Automation Resource Tree  Runbook  Job  Asset  Module  DSC Resource  Credential  Connection  Schedule  Variable  Certificate  DSC Configuration  Compilation job  Node Configuration  Nodes Bold = new for DSC support
  • 30. Use PS DSC to declaratively configure VMs / physical hosts Use runbooks to orchestrate complex processes across systems Use PS DSC within Azure Automation runbooks to configure machines as part of larger processes Ex: The multi-step process of deploying new DSC configurations to production servers: 1. Monitor source control for new commits to DSC repository of an organization 2. When new commit, store the DSC in Azure Automation DSC, set up to be pulled by the stage environment VMs 3. Run test suite to confirm service in stage environment is functioning properly 4. If tests fail, alert developers 5. If tests pass, wait for maintenance window and then set up the DSC in Azure Automation to be pulled by production VMs, in a way that maintains service availability DSC and Runbooks – better together
  • 31. Azure Resource Manager templates vs DSC Use PS DSC to declaratively configure VMs / physical hosts Use ARM templates to declaratively configure cloud resources - Create Azure VMs - Create Azure Networks - Create Az Storage accounts - Create Az Automation accounts - Create Azure VMs configured to use Automation DSC for configuration management
  • 32. Migrating from PowerShell DSC to Automation DSC DEMO
  • 34. Requirements for DSC for Linux Required package Description Minimum version Glibc GNU C Library 2.4 - 31.30 python Python 2.4 - 3.4 omi Open Management Infrastructure 1.0.8-4 openssl OpenSSL Libraries 0.9.8e or 1.0 python-ctypes Python CTypes library Must match Python version libcurl cURL http client library 7.15.1 unzip De-archiver for .zip files like resource modules n/a dsc-1.1.1.packages.tar.gz PowerShell DSC 1.1.1
  • 35. Installing PowerShell DSC for Linux  sudo apt-get -y Glibc  sudo apt-get -y python  sudo apt-get -y omi  sudo apt-get -y openssl  sudo apt-get -y python-ctypes  sudo apt-get -y libcurl  sudo apt-get -y unzip  mkdir /Downloads  cd /Downloads  sudo curl -O https://github.com/Microsoft/PowerShell-DSC-for-Linux/releases/download/v1.1.1-70/dsc- 1.1.1.packages.tar.gz  sudo tar -xzvf dsc-1.1.1.packages.tar.gz ; mv ./dsc/* ./ ; make ; make reg  You will also need an omiserver startup script as well.
  • 36. Use Register.py to onboard  Configures to pull from Azure Automation DSC  Configures to report to Azure Automation DSC  /opt/microsoft/dsc/Scripts/Register.py <Automation account registration key> <Automation account registration URL>
  • 37. Azure DSC Gotachas • Node Configurations (MOFs), not Configurations, are what should be assigned to nodes in Automation DSC • Node Configurations (MOFs) are namespaced by configuration name in Automation DSC (ex: MyConfiguration.webserver) • Only machines with WMF 5 installed can communicate with Automation DSC • Automation DSC does not currently support composite configurations or partial configurations (but does support composite resources) • Currently, nodes must be reregistered with Automation DSC after one year, due to certificate expiration • Compiling Configurations that use credentials in Automation DSC requires passing in ConfigurationData via PS cmdlets
  • 38. In Review  Provide an overview of Azure Automation  Demonstrate heterogeneous IT management using PowerShell and PowerShell DSC in Azure Automation  Azure Automation provides PowerShell as a Service -- a central, secure location for all your PowerShell assets, executions, and reports, that is scalable, reliable and highly- available  Azure Automation DSC provides a reliable, highly-available, scalable DSC pull and reporting service that can be used to deliver, monitor, and update infrastructure aligned with IT rules  Azure Automation simplifies automation and configuration across clouds, platforms, and datacenters
  • 39. Join OMS Customer Days! APRIL 26-27 IF INTERESTED, COME TALK TO ME AFTER…
  • 40.

Notas do Editor

  1. Joe
  2. Joe
  3. Ed
  4. Ed
  5. Joe
  6. Joe
  7. Joe
  8. Joe
  9. Joe
  10. Joe
  11. Joe PS summit 2015 was in September
  12. Joe
  13. Joe
  14. Ed
  15. Ed
  16. Ed
  17. Ed
  18. Ed
  19. Ed
  20. Ed
  21. Joe
  22. Joe
  23. Joe
  24. Joe
  25. Joe Note that AA handles to deploy to pull server process. No more dealing with config ids, checksum, etc
  26. Joe
  27. Joe
  28. Joe
  29. Joe
  30. Joe
  31. Ed
  32. Ed
  33. Joe
  34. Ed
  35. Joe
  36. Joe/Ed