SlideShare a Scribd company logo
1 of 27
Build your Environment
with PowerShell and
PowerShell DSC
Gian Maria Ricci
What is an Environment
• Set of resources needed for the software to run
– Hardware resources
– OS resources
– Software resources
• It has a specific purpose
– Production
– Testing / QA
– DEV
– …
• Needs to be managed
ENVIRONMENT AND
VIRTUALIZATION
Virtualization is silver bullet?
Environment as set of VMs
• A set of Virtual Machines, specifically prepared,
are an environment
• Thanks to cloning / virtual disk cloning we can
duplicate / recreate environment
• Advanced Virtualization Systems allows for “VM
Template” often called “Golden Images”
• You can create a new VM from Golden Image
Handle Pre-made environments with VM
• Virtualize and create Golden Images of
environments
• Thanks to SysPrep we can preinstall some
software (ex Sql Server)
– Generalization
– Anonymization
• “freeze” with certain OS patches
– Avoid error due to updates
– Recreate exact state of the system
Cross product problem
• You should provide a Golden image for each
combination
– SqlServer, IIS, IIS + Sql Server, Mongo, Mongo + IIS, ……
– It becomes impossible to create a VM for each
combination
– You can limit the explosion keeping only configuration
really used by your applications, but it does not help
• If you take into account OS Patches the combination
explodes
– Virtually each patch should create a new image
– You will literally needs Hundreds or thousands VM
Images
• Maintenance nightmare
Approach A
• A VM for each configuration
– Cons
• Maintenance Nightmare
• Lots of space used
– Pro
• Image immediately available
• Simple management for Devs
• Quick validation
Approach B
• A Base VM plus some further configuration
– Cons
• Need to manage configuration drift
• More time needed to reach a valid point
– Pro
• Less space used
• Simpler maintenance
Limit Golden Images to …
• Major Version of OS (WS2012, WS2012R2, RHEL7,
…)
• Some critical OS Patches (SP, etc)
• Some Difficult To Install and configure software
• Everything that cannot be automated
Workflow – Create Golden Image
OPS
• Create Image
• Make it accessible to DEV
DEV
• Setup Prerequisites
• Install application
• Verify Application
• Propose modification
OPS
• Update machine if needed
Workflow – Update Golden Image
OPS
• Modify Image
• Make it accessible to DEV
DEV
• Setup Prerequisites
• Install application
• Verify Application
• Propose modification
OPS
• Update machine if needed
• Previously validated Golden image needs to be modified
• OS Patches
• Software / Configuration patches
• …
Each department -> Right work
• Ops duty
– Manage virtualization environment
– Manage basic configuration of a VM
– Handle updates (Ex. critical system patches)
• Developers duty
– Quickly validate a new version of an image
– Being able to communicate configuration Drift
Workflow
• To validate a Golden Image DEV needs to perform
repetitive operation
– Install prerequisite
– Install software
– Run integration tests
• To setup a software OPS needs to perform the
same set of operations
• These operations needs to be well documented
• This is an area where “automation is the solution”
Rebuild from Metal (or Golden images)
• When an outage occur you need to minimize
– Time needed to detect that something is not
working
– Time needed to start working at the problem
– Time needed to fix the problem
• Time needed to fix cannot be estimated
• You can estimate how much time is needed to
rebuild the environment from scratch
• Often it is better to rebuild than trying to fix what
is broken.
DESIRED STATE
Specify environment state you need for your application to run
Concept of “Desired State”
• Conceptually we need to automate
1. Install prerequisite of our application
2. Install our application
• Both these operation starts from a Golden Image
or bare metal
• We need to bring the environment from actual
State to a State where the application can be
installed
• This is what we call “Desired State”
Ex: Install IIS
• We can do a script with this pseudocode
– Test if IIS is installed
– If not installed install it
– Verify if it is started
– If not started start it
– …
• We need to check actual state and take
appropriate action
• Script can become complicated
DSC: POWERSHELL DESIRED STATE
CONFIGURATION
Microsoft proposition to manage state of an environment
Solution: specify Desired State
• We can use PowerShell DSC to specify a Desired
State
• All you need to do is specify the state you need
• It is similar to puppet/chef
• Everything related to real configuration is done by
a “resource”
• Microsoft gives you many resources to manage OS
and Software.
• You can write (or find in open source) additional
resources.
Three phases
• Authoring
– Authoring a configuration with various tools
– Produces a Mof file storing information of the
configuration
• Staging
– Make Mof available
• Make It So
– Apply configuration
Make It So
Make It So
Pull or Push model
Run imperative PowerShell code
• You can mix DSC and imperative instructions
• You can pack scripts inside a custom resource
• Remember that DSC is a part of PowerShell, you
can use any PowerShell instruction you need
Avoid confusion
• DSC is often used / presented as a “way to deploy
software”
• Remember that DSC is a library to bring a system
in a desired state
• A Typical problem: you need to install a Windows
Service
– First install is ok
– Update version, you can only specify if service
should be running or not
Deploy with multiple states
• A first State is required to start the deploy
– Service are stopped
– Sites are stopped
• A second DSC State (or imperative PowerShell) is
required to physically update
– Copy new version of the site on a folder
– Overwrite Windows Service with new version
• A final State is used to restart Everything
– Service are started
– Sites are running
MORE COMPLEX DSC
Let’s see something more complex to deploy a site + database

More Related Content

What's hot

Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Pavel Chunyayev
 
Introduction to Selenium Webdriver - SpringPeople
Introduction to Selenium Webdriver - SpringPeopleIntroduction to Selenium Webdriver - SpringPeople
Introduction to Selenium Webdriver - SpringPeopleSpringPeople
 
Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015Ido Flatow
 
Next generation frontend tooling
Next generation frontend toolingNext generation frontend tooling
Next generation frontend toolingpksjce
 
Dev objective2015 lets git together
Dev objective2015 lets git togetherDev objective2015 lets git together
Dev objective2015 lets git togetherColdFusionConference
 
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember DataIn The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember DataStacy London
 
Extending Ansible - Ansible Benelux meetup - Amsterdam 11-02-2016
Extending Ansible - Ansible Benelux meetup - Amsterdam 11-02-2016Extending Ansible - Ansible Benelux meetup - Amsterdam 11-02-2016
Extending Ansible - Ansible Benelux meetup - Amsterdam 11-02-2016Pavel Chunyayev
 
Silverstripe CMS 4.9.0 release and beyound
Silverstripe CMS 4.9.0 release and beyoundSilverstripe CMS 4.9.0 release and beyound
Silverstripe CMS 4.9.0 release and beyoundMaximeRainville1
 
Automation: PowerShell & DSC
Automation: PowerShell & DSCAutomation: PowerShell & DSC
Automation: PowerShell & DSCJosh Gillespie
 
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltStack
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemYi-Ting Cheng
 
WordCamp IL 2016 - WordPress Scale on AWS
WordCamp IL 2016 - WordPress Scale on AWSWordCamp IL 2016 - WordPress Scale on AWS
WordCamp IL 2016 - WordPress Scale on AWSBoaz Ziniman
 
From vagrant to production - Mark Eijsermans
From vagrant to production - Mark EijsermansFrom vagrant to production - Mark Eijsermans
From vagrant to production - Mark EijsermansDevopsdays
 
End to End Testing with nightwatchjs
End to End  Testing with nightwatchjsEnd to End  Testing with nightwatchjs
End to End Testing with nightwatchjsSrikanth Madduri
 
Using PowerShell DSC with AWS Cloud and CloudFormation
Using PowerShell DSC with AWS Cloud and CloudFormationUsing PowerShell DSC with AWS Cloud and CloudFormation
Using PowerShell DSC with AWS Cloud and CloudFormationRavikanth Chaganti
 
RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016Ortus Solutions, Corp
 

What's hot (20)

Command box
Command boxCommand box
Command box
 
Hidden gems in cf2016
Hidden gems in cf2016Hidden gems in cf2016
Hidden gems in cf2016
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
 
Introduction to Selenium Webdriver - SpringPeople
Introduction to Selenium Webdriver - SpringPeopleIntroduction to Selenium Webdriver - SpringPeople
Introduction to Selenium Webdriver - SpringPeople
 
Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015
 
Next generation frontend tooling
Next generation frontend toolingNext generation frontend tooling
Next generation frontend tooling
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Dev objective2015 lets git together
Dev objective2015 lets git togetherDev objective2015 lets git together
Dev objective2015 lets git together
 
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember DataIn The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
 
Selenium-Grid-Extras
Selenium-Grid-ExtrasSelenium-Grid-Extras
Selenium-Grid-Extras
 
Extending Ansible - Ansible Benelux meetup - Amsterdam 11-02-2016
Extending Ansible - Ansible Benelux meetup - Amsterdam 11-02-2016Extending Ansible - Ansible Benelux meetup - Amsterdam 11-02-2016
Extending Ansible - Ansible Benelux meetup - Amsterdam 11-02-2016
 
Silverstripe CMS 4.9.0 release and beyound
Silverstripe CMS 4.9.0 release and beyoundSilverstripe CMS 4.9.0 release and beyound
Silverstripe CMS 4.9.0 release and beyound
 
Automation: PowerShell & DSC
Automation: PowerShell & DSCAutomation: PowerShell & DSC
Automation: PowerShell & DSC
 
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails Ecosystem
 
WordCamp IL 2016 - WordPress Scale on AWS
WordCamp IL 2016 - WordPress Scale on AWSWordCamp IL 2016 - WordPress Scale on AWS
WordCamp IL 2016 - WordPress Scale on AWS
 
From vagrant to production - Mark Eijsermans
From vagrant to production - Mark EijsermansFrom vagrant to production - Mark Eijsermans
From vagrant to production - Mark Eijsermans
 
End to End Testing with nightwatchjs
End to End  Testing with nightwatchjsEnd to End  Testing with nightwatchjs
End to End Testing with nightwatchjs
 
Using PowerShell DSC with AWS Cloud and CloudFormation
Using PowerShell DSC with AWS Cloud and CloudFormationUsing PowerShell DSC with AWS Cloud and CloudFormation
Using PowerShell DSC with AWS Cloud and CloudFormation
 
RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016
 

Viewers also liked

Unit 3 hw 4 - solving equations variable both sides
Unit 3   hw 4 - solving equations variable both sidesUnit 3   hw 4 - solving equations variable both sides
Unit 3 hw 4 - solving equations variable both sidesLori Rapp
 
Analisis de-un-noticiero
Analisis de-un-noticieroAnalisis de-un-noticiero
Analisis de-un-noticieroSamara Flores
 
第4期わが街のプラチナ構想 福岡市
第4期わが街のプラチナ構想 福岡市第4期わが街のプラチナ構想 福岡市
第4期わが街のプラチナ構想 福岡市platinumhandbook
 
第3期わが街のプラチナ構想 北九州市
第3期わが街のプラチナ構想 北九州市第3期わが街のプラチナ構想 北九州市
第3期わが街のプラチナ構想 北九州市platinumhandbook
 
7 わがまちプラチナ構想【道志村】pdf
7 わがまちプラチナ構想【道志村】pdf7 わがまちプラチナ構想【道志村】pdf
7 わがまちプラチナ構想【道志村】pdfplatinumhandbook
 
Державна інноваційна політика
Державна інноваційна політикаДержавна інноваційна політика
Державна інноваційна політикаAlex Iakymenko
 
New Regulations Seek to Reduce Emissions From Large Trucks
New Regulations Seek to Reduce Emissions From Large TrucksNew Regulations Seek to Reduce Emissions From Large Trucks
New Regulations Seek to Reduce Emissions From Large TrucksRobert Rogulic
 
El universo
El universoEl universo
El universoneysmall
 
הזמנה לתחרות על שם פאול קרס
הזמנה לתחרות על שם פאול קרסהזמנה לתחרות על שם פאול קרס
הזמנה לתחרות על שם פאול קרסalmogbu
 
第4期わが街のプラチナ構想 遠野市
第4期わが街のプラチナ構想 遠野市第4期わが街のプラチナ構想 遠野市
第4期わが街のプラチナ構想 遠野市platinumhandbook
 
第3期わが街のプラチナ構想 道志村
第3期わが街のプラチナ構想 道志村第3期わが街のプラチナ構想 道志村
第3期わが街のプラチナ構想 道志村platinumhandbook
 
4 わがまちのプラチナ構想【埼玉県】pdf
4 わがまちのプラチナ構想【埼玉県】pdf4 わがまちのプラチナ構想【埼玉県】pdf
4 わがまちのプラチナ構想【埼玉県】pdfplatinumhandbook
 
Seo w służbie małego biznesu. Typowe błędy onsite i offsite, przez które Twoj...
Seo w służbie małego biznesu. Typowe błędy onsite i offsite, przez które Twoj...Seo w służbie małego biznesu. Typowe błędy onsite i offsite, przez które Twoj...
Seo w służbie małego biznesu. Typowe błędy onsite i offsite, przez które Twoj...Paq Studio
 
Working in Jersey's Technology Industry
Working in Jersey's Technology IndustryWorking in Jersey's Technology Industry
Working in Jersey's Technology IndustryRob Dudley
 
L'ereditarietà dei caratteri
L'ereditarietà dei caratteriL'ereditarietà dei caratteri
L'ereditarietà dei caratteriFederica Biglino
 
Treinamento GP - Processo Coaching
Treinamento GP - Processo CoachingTreinamento GP - Processo Coaching
Treinamento GP - Processo CoachingLucas Studart
 

Viewers also liked (20)

Unit 3 hw 4 - solving equations variable both sides
Unit 3   hw 4 - solving equations variable both sidesUnit 3   hw 4 - solving equations variable both sides
Unit 3 hw 4 - solving equations variable both sides
 
Analisis de-un-noticiero
Analisis de-un-noticieroAnalisis de-un-noticiero
Analisis de-un-noticiero
 
Odoo SEO Suite Apps
Odoo SEO Suite AppsOdoo SEO Suite Apps
Odoo SEO Suite Apps
 
Leadership
LeadershipLeadership
Leadership
 
第4期わが街のプラチナ構想 福岡市
第4期わが街のプラチナ構想 福岡市第4期わが街のプラチナ構想 福岡市
第4期わが街のプラチナ構想 福岡市
 
第3期わが街のプラチナ構想 北九州市
第3期わが街のプラチナ構想 北九州市第3期わが街のプラチナ構想 北九州市
第3期わが街のプラチナ構想 北九州市
 
7 わがまちプラチナ構想【道志村】pdf
7 わがまちプラチナ構想【道志村】pdf7 わがまちプラチナ構想【道志村】pdf
7 わがまちプラチナ構想【道志村】pdf
 
Державна інноваційна політика
Державна інноваційна політикаДержавна інноваційна політика
Державна інноваційна політика
 
New Regulations Seek to Reduce Emissions From Large Trucks
New Regulations Seek to Reduce Emissions From Large TrucksNew Regulations Seek to Reduce Emissions From Large Trucks
New Regulations Seek to Reduce Emissions From Large Trucks
 
El universo
El universoEl universo
El universo
 
הזמנה לתחרות על שם פאול קרס
הזמנה לתחרות על שם פאול קרסהזמנה לתחרות על שם פאול קרס
הזמנה לתחרות על שם פאול קרס
 
第4期わが街のプラチナ構想 遠野市
第4期わが街のプラチナ構想 遠野市第4期わが街のプラチナ構想 遠野市
第4期わが街のプラチナ構想 遠野市
 
第3期わが街のプラチナ構想 道志村
第3期わが街のプラチナ構想 道志村第3期わが街のプラチナ構想 道志村
第3期わが街のプラチナ構想 道志村
 
4 わがまちのプラチナ構想【埼玉県】pdf
4 わがまちのプラチナ構想【埼玉県】pdf4 わがまちのプラチナ構想【埼玉県】pdf
4 わがまちのプラチナ構想【埼玉県】pdf
 
Seo w służbie małego biznesu. Typowe błędy onsite i offsite, przez które Twoj...
Seo w służbie małego biznesu. Typowe błędy onsite i offsite, przez które Twoj...Seo w służbie małego biznesu. Typowe błędy onsite i offsite, przez które Twoj...
Seo w służbie małego biznesu. Typowe błędy onsite i offsite, przez które Twoj...
 
Working in Jersey's Technology Industry
Working in Jersey's Technology IndustryWorking in Jersey's Technology Industry
Working in Jersey's Technology Industry
 
L'ereditarietà dei caratteri
L'ereditarietà dei caratteriL'ereditarietà dei caratteri
L'ereditarietà dei caratteri
 
Gilman School Identity Development
Gilman School Identity DevelopmentGilman School Identity Development
Gilman School Identity Development
 
Treinamento GP - Processo Coaching
Treinamento GP - Processo CoachingTreinamento GP - Processo Coaching
Treinamento GP - Processo Coaching
 
Sets Notes
Sets NotesSets Notes
Sets Notes
 

Similar to Manage your environment with DSC

Immutable infrastructure isn’t the answer
Immutable infrastructure isn’t the answerImmutable infrastructure isn’t the answer
Immutable infrastructure isn’t the answerSam Bashton
 
VMware studio practice in TIM
VMware studio practice in TIMVMware studio practice in TIM
VMware studio practice in TIMYi-Huan Chan
 
Mmik_Powershell_DSC_Azure_DSC
Mmik_Powershell_DSC_Azure_DSCMmik_Powershell_DSC_Azure_DSC
Mmik_Powershell_DSC_Azure_DSCMmik Huang
 
Mmik powershell dsc_slideshare_v1
Mmik powershell dsc_slideshare_v1Mmik powershell dsc_slideshare_v1
Mmik powershell dsc_slideshare_v1Mmik Huang
 
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing EnvironmentDCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing EnvironmentDocker, Inc.
 
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode DeployDeploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode DeployIBM DevOps
 
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode DeployDeploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode DeployClaudia Ring
 
Moving Windows Applications to the Cloud
Moving Windows Applications to the CloudMoving Windows Applications to the Cloud
Moving Windows Applications to the CloudRightScale
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the TrenchesDonald Belcham
 
To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…Sergey Dzyuban
 
OpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and WindowsOpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and WindowsAlessandro Pilotti
 
Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...SaltStack
 
Setting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsSetting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsDaniel Stange
 
Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Maaz Anjum
 
Software Packaging/Scripting
Software Packaging/ScriptingSoftware Packaging/Scripting
Software Packaging/ScriptingDell World
 
Automating That "Other" OS
Automating That "Other" OSAutomating That "Other" OS
Automating That "Other" OSJulian Dunn
 
Evolving Infrastructure
Evolving InfrastructureEvolving Infrastructure
Evolving Infrastructurelouisadunne
 

Similar to Manage your environment with DSC (20)

Immutable infrastructure isn’t the answer
Immutable infrastructure isn’t the answerImmutable infrastructure isn’t the answer
Immutable infrastructure isn’t the answer
 
VMware studio practice in TIM
VMware studio practice in TIMVMware studio practice in TIM
VMware studio practice in TIM
 
Hosting Ruby Web Apps
Hosting Ruby Web AppsHosting Ruby Web Apps
Hosting Ruby Web Apps
 
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
 
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing EnvironmentDCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
 
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode DeployDeploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
 
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode DeployDeploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
 
Moving Windows Applications to the Cloud
Moving Windows Applications to the CloudMoving Windows Applications to the Cloud
Moving Windows Applications to the Cloud
 
Way to cloud
Way to cloudWay to cloud
Way to cloud
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the Trenches
 
To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…
 
OpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and WindowsOpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and Windows
 
Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...
 
Setting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsSetting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce Apps
 
Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!
 
Software Packaging/Scripting
Software Packaging/ScriptingSoftware Packaging/Scripting
Software Packaging/Scripting
 
Automating That "Other" OS
Automating That "Other" OSAutomating That "Other" OS
Automating That "Other" OS
 
Evolving Infrastructure
Evolving InfrastructureEvolving Infrastructure
Evolving Infrastructure
 

More from Gian Maria Ricci

Se non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorandoSe non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorandoGian Maria Ricci
 
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGian Maria Ricci
 
Migrare da un VCS centralizzato a Git
Migrare da un VCS centralizzato a GitMigrare da un VCS centralizzato a Git
Migrare da un VCS centralizzato a GitGian Maria Ricci
 
Real World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOpsReal World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOpsGian Maria Ricci
 
Gestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devopsGestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devopsGian Maria Ricci
 
Build and release in code with azure devops pipelines
Build and release in code with azure devops pipelinesBuild and release in code with azure devops pipelines
Build and release in code with azure devops pipelinesGian Maria Ricci
 
Azure Pipeline in salsa yaml
Azure Pipeline in salsa yamlAzure Pipeline in salsa yaml
Azure Pipeline in salsa yamlGian Maria Ricci
 
Git gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teamsGit gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teamsGian Maria Ricci
 
Distribute your code with NUget and build vNext
Distribute your code with NUget and build vNextDistribute your code with NUget and build vNext
Distribute your code with NUget and build vNextGian Maria Ricci
 
Introduction to Application insights
Introduction to Application insightsIntroduction to Application insights
Introduction to Application insightsGian Maria Ricci
 
Deploy applications with TFS Build
Deploy applications with TFS BuildDeploy applications with TFS Build
Deploy applications with TFS BuildGian Maria Ricci
 
TFS - Quale source control
TFS - Quale source controlTFS - Quale source control
TFS - Quale source controlGian Maria Ricci
 
Introduction to Visual Studio Online
Introduction to Visual Studio OnlineIntroduction to Visual Studio Online
Introduction to Visual Studio OnlineGian Maria Ricci
 
Come Organizzare il proprio Team Project
Come Organizzare il proprio Team ProjectCome Organizzare il proprio Team Project
Come Organizzare il proprio Team ProjectGian Maria Ricci
 
Automatically deployment to Azure Web Sites
Automatically deployment to Azure Web SitesAutomatically deployment to Azure Web Sites
Automatically deployment to Azure Web SitesGian Maria Ricci
 

More from Gian Maria Ricci (20)

Se non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorandoSe non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorando
 
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
 
Migrare da un VCS centralizzato a Git
Migrare da un VCS centralizzato a GitMigrare da un VCS centralizzato a Git
Migrare da un VCS centralizzato a Git
 
Real World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOpsReal World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOps
 
Gestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devopsGestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devops
 
Build and release in code with azure devops pipelines
Build and release in code with azure devops pipelinesBuild and release in code with azure devops pipelines
Build and release in code with azure devops pipelines
 
Azure Pipeline in salsa yaml
Azure Pipeline in salsa yamlAzure Pipeline in salsa yaml
Azure Pipeline in salsa yaml
 
Git gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teamsGit gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teams
 
Distribute your code with NUget and build vNext
Distribute your code with NUget and build vNextDistribute your code with NUget and build vNext
Distribute your code with NUget and build vNext
 
Introduction to Application insights
Introduction to Application insightsIntroduction to Application insights
Introduction to Application insights
 
Git branching model
Git branching modelGit branching model
Git branching model
 
Deploy applications with TFS Build
Deploy applications with TFS BuildDeploy applications with TFS Build
Deploy applications with TFS Build
 
TFS - Quale source control
TFS - Quale source controlTFS - Quale source control
TFS - Quale source control
 
Branch model in Git
Branch model in GitBranch model in Git
Branch model in Git
 
Introduction to Visual Studio Online
Introduction to Visual Studio OnlineIntroduction to Visual Studio Online
Introduction to Visual Studio Online
 
Git si o Git No
Git si o Git NoGit si o Git No
Git si o Git No
 
Testing
TestingTesting
Testing
 
Come Organizzare il proprio Team Project
Come Organizzare il proprio Team ProjectCome Organizzare il proprio Team Project
Come Organizzare il proprio Team Project
 
Git Perchè Usarlo
Git Perchè UsarloGit Perchè Usarlo
Git Perchè Usarlo
 
Automatically deployment to Azure Web Sites
Automatically deployment to Azure Web SitesAutomatically deployment to Azure Web Sites
Automatically deployment to Azure Web Sites
 

Recently uploaded

CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfhenrik385807
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝soniya singh
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesPooja Nehwal
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxFamilyWorshipCenterD
 
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...NETWAYS
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Hasting Chen
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptssuser319dad
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Delhi Call girls
 
Motivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdfMotivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdfakankshagupta7348026
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024eCommerce Institute
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...henrik385807
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AITatiana Gurgel
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfhenrik385807
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )Pooja Nehwal
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Kayode Fayemi
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@vikas rana
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Krijn Poppe
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Salam Al-Karadaghi
 

Recently uploaded (20)

CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
 
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.ppt
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
 
Motivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdfMotivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdf
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AI
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
 

Manage your environment with DSC

  • 1. Build your Environment with PowerShell and PowerShell DSC Gian Maria Ricci
  • 2. What is an Environment • Set of resources needed for the software to run – Hardware resources – OS resources – Software resources • It has a specific purpose – Production – Testing / QA – DEV – … • Needs to be managed
  • 4. Environment as set of VMs • A set of Virtual Machines, specifically prepared, are an environment • Thanks to cloning / virtual disk cloning we can duplicate / recreate environment • Advanced Virtualization Systems allows for “VM Template” often called “Golden Images” • You can create a new VM from Golden Image
  • 5. Handle Pre-made environments with VM • Virtualize and create Golden Images of environments • Thanks to SysPrep we can preinstall some software (ex Sql Server) – Generalization – Anonymization • “freeze” with certain OS patches – Avoid error due to updates – Recreate exact state of the system
  • 6. Cross product problem • You should provide a Golden image for each combination – SqlServer, IIS, IIS + Sql Server, Mongo, Mongo + IIS, …… – It becomes impossible to create a VM for each combination – You can limit the explosion keeping only configuration really used by your applications, but it does not help • If you take into account OS Patches the combination explodes – Virtually each patch should create a new image – You will literally needs Hundreds or thousands VM Images • Maintenance nightmare
  • 7. Approach A • A VM for each configuration – Cons • Maintenance Nightmare • Lots of space used – Pro • Image immediately available • Simple management for Devs • Quick validation
  • 8. Approach B • A Base VM plus some further configuration – Cons • Need to manage configuration drift • More time needed to reach a valid point – Pro • Less space used • Simpler maintenance
  • 9. Limit Golden Images to … • Major Version of OS (WS2012, WS2012R2, RHEL7, …) • Some critical OS Patches (SP, etc) • Some Difficult To Install and configure software • Everything that cannot be automated
  • 10. Workflow – Create Golden Image OPS • Create Image • Make it accessible to DEV DEV • Setup Prerequisites • Install application • Verify Application • Propose modification OPS • Update machine if needed
  • 11. Workflow – Update Golden Image OPS • Modify Image • Make it accessible to DEV DEV • Setup Prerequisites • Install application • Verify Application • Propose modification OPS • Update machine if needed • Previously validated Golden image needs to be modified • OS Patches • Software / Configuration patches • …
  • 12. Each department -> Right work • Ops duty – Manage virtualization environment – Manage basic configuration of a VM – Handle updates (Ex. critical system patches) • Developers duty – Quickly validate a new version of an image – Being able to communicate configuration Drift
  • 13. Workflow • To validate a Golden Image DEV needs to perform repetitive operation – Install prerequisite – Install software – Run integration tests • To setup a software OPS needs to perform the same set of operations • These operations needs to be well documented • This is an area where “automation is the solution”
  • 14. Rebuild from Metal (or Golden images) • When an outage occur you need to minimize – Time needed to detect that something is not working – Time needed to start working at the problem – Time needed to fix the problem • Time needed to fix cannot be estimated • You can estimate how much time is needed to rebuild the environment from scratch • Often it is better to rebuild than trying to fix what is broken.
  • 15. DESIRED STATE Specify environment state you need for your application to run
  • 16. Concept of “Desired State” • Conceptually we need to automate 1. Install prerequisite of our application 2. Install our application • Both these operation starts from a Golden Image or bare metal • We need to bring the environment from actual State to a State where the application can be installed • This is what we call “Desired State”
  • 17. Ex: Install IIS • We can do a script with this pseudocode – Test if IIS is installed – If not installed install it – Verify if it is started – If not started start it – … • We need to check actual state and take appropriate action • Script can become complicated
  • 18. DSC: POWERSHELL DESIRED STATE CONFIGURATION Microsoft proposition to manage state of an environment
  • 19. Solution: specify Desired State • We can use PowerShell DSC to specify a Desired State • All you need to do is specify the state you need • It is similar to puppet/chef • Everything related to real configuration is done by a “resource” • Microsoft gives you many resources to manage OS and Software. • You can write (or find in open source) additional resources.
  • 20. Three phases • Authoring – Authoring a configuration with various tools – Produces a Mof file storing information of the configuration • Staging – Make Mof available • Make It So – Apply configuration
  • 23. Pull or Push model
  • 24. Run imperative PowerShell code • You can mix DSC and imperative instructions • You can pack scripts inside a custom resource • Remember that DSC is a part of PowerShell, you can use any PowerShell instruction you need
  • 25. Avoid confusion • DSC is often used / presented as a “way to deploy software” • Remember that DSC is a library to bring a system in a desired state • A Typical problem: you need to install a Windows Service – First install is ok – Update version, you can only specify if service should be running or not
  • 26. Deploy with multiple states • A first State is required to start the deploy – Service are stopped – Sites are stopped • A second DSC State (or imperative PowerShell) is required to physically update – Copy new version of the site on a folder – Overwrite Windows Service with new version • A final State is used to restart Everything – Service are started – Sites are running
  • 27. MORE COMPLEX DSC Let’s see something more complex to deploy a site + database