SlideShare a Scribd company logo
23 NOIEMBRIE 2017 | BUCUREȘTI
DevTest cu Microsoft Azure
MIHAI TĂTĂRAN
General Manager, Avaelgo
23 NOIEMBRIE 2017 | BUCUREȘTI
Mulțumiri sponsorilor și partenerilor
SPONSORI
ORGANIZATOR
PARTENER MEDIA
PARTENER DE IMAGINE
PEACE OF MIND
AS-A-SERVICE
CLOUD STRATEGY | MANAGED SERVICES | IT SECURITY | TRAINING
23 NOIEMBRIE 2017 | BUCUREȘTI
Mihai Tătăran
• General Manager @ Avaelgo
–Microsoft Gold Cloud Platform Partner
–Training and consulting, Software development,
Infrastructure
• Microsoft Azure Most Valuable Professional
• Co-founder @ ITCamp & ITCamp Community
23 NOIEMBRIE 2017 | BUCUREȘTI
Objectives
• Understand the challenges of DevTest
• See a solution with Microsoft Azure
23 NOIEMBRIE 2017 | BUCUREȘTI
• Major disconnection between Development and Infrastructure teams
• Who is in charge of the temporary infrastructure?
• Sounds familiar?
– Dev team asks for a few VMs for their Dev / Staging environment, for proper
functional and integration testing
– Infrastructure team gets the ticket / request, sends it through the proper channels
to relevant person in charge
– VMs are created and Dev team is notified
– VMs are not exactly how the dev team has requested. Redo previous steps
– Tests are done
– Dev team forgets to notify infrastructure team to release the VMs
Dev/Test challenges: Disconnection Dev / Infrastructure
23 NOIEMBRIE 2017 | BUCUREȘTI
Dev/Test challenges: cost
• Having tens or hundreds of VMs in an on premises
infrastructure is a major cost issue
• Especially if they are not needed all the time:
–Day and night?
–The whole development lifecycle? E.g.: is it good enough
to have them every 2 weeks on Wednesday to Friday?
23 NOIEMBRIE 2017 | BUCUREȘTI
Dev/Test challenges: skills
• Development process
• Developer tools: TFS, VSTS, Release Management,
etc.
• Infrastructure team process
• Infrastructure tools: PowerShell, etc.
23 NOIEMBRIE 2017 | BUCUREȘTI
Dev/Test challenges: business constraints
• Software as a Service
• Deliver faster / shorter time to market
23 NOIEMBRIE 2017 | BUCUREȘTI
Dev/Test challenges: hard to configure
• Staging infrastructure needs to be identical to the
Production infrastructure
• How do you guarantee that, repeatedly, with
minimum work?
23 NOIEMBRIE 2017 | BUCUREȘTI
Dev & test today
Provision VMs
Use VMs
23 NOIEMBRIE 2017 | BUCUREȘTI
Dev & test in the cloud
Manageenvironment
Use VMs
Provision VMs
23 NOIEMBRIE 2017 | BUCUREȘTI
Dev/Test with Azure
• Self service: Dev team can create temporary infrastructures
– Infrastructure team can create / contribute to rules, workflows, etc.
• Elasticity: shut down the VMs over nights, weekends; be able
to scale easily
• Fast: provisioning takes minutes to complete
• Less waste using: quotas, access policies, automatic
shutdowns
• Create once, use as a template
• Integrates with existing toolchain: Visual Studio, git, Puppet,
Chef, Eclipse
23 NOIEMBRIE 2017 | BUCUREȘTI
Continuous Integration tools from Microsoft
TFS
Team Foundation Server
THE CI / CD tool from MS
AZURE INTEGRATION
TFS with Release Management
VSTS with Build, Release tabs
VSTS
Visual Studio Team Services,
former VSO
Lightweight, SaaS version of TFS
23 NOIEMBRIE 2017 | BUCUREȘTI
23 NOIEMBRIE 2017 | BUCUREȘTI
VSTS features
• Seems too simple for
complex scenarios
• But, there are interesting
things you can do:
– Copy files
– Run PowerShell scripts
on target VMs
– Run tests
– Approve
23 NOIEMBRIE 2017 | BUCUREȘTI
Deployment process
Source Code
editing in Visual
Studio
Visual Studio Team
Services BUILD
Visual Studio Team
Services RELEASE
Environment
Creation as
specified by ARM
template
Email
confirmation.
Testing can begin
Solution
deployment
With VMs
prerequisites
23 NOIEMBRIE 2017 | BUCUREȘTI
Environment creation
• Environment(s) creation in Azure
–Dev, Test, Staging, etc.
• No matter how complex they are
–Load balancers, virtual networks, storage accounts, IPs,
VMs, etc.
• In an automated fashion
• Repeatedly
• Identically
23 NOIEMBRIE 2017 | BUCUREȘTI
Azure Resource Groups
Tightly coupled containers of multiple resources
of similar or different types
Which have common lifecycle and management
Every resource must exist in one and only one
resource group
Resource groups can span regions
Can be created using ARM templates
23 NOIEMBRIE 2017 | BUCUREȘTI
Declarative v.s. Imperative
Declarative (What) Imperative (How)
Define WHAT it should be (Desired State)
without specifying how it is being done in
details
Define HOW things should be done
explicitly in details steps in order to
achieve the desired result
"resources": [
{
"type": "<resource-type-name>",
"name": "<name-of-the-resource>",
"location": "<location-of-resource>",
"dependsOn": [
"<array-of-related-resource-names>"
],
"properties": "<settings-for-the-resource>",
"resources": [
"<array-of-child-resources>"
]
}
]
Write-Host "Selecting subscription '$subscriptionId'";
Set-AzureRmContext -SubscriptionID $subscriptionId;
$resourceGroup = Get-AzureRmResourceGroup -Name
$resourceGroupName -ErrorAction SilentlyContinue
if(!$resourceGroup) {
Write-Host "Resource group '$resourceGroupName' does not exist.
New-AzureRmResourceGroup -Name $resourceGroupName -Location
$resourceGroupLocation }
else{ Write-Host "Using existing resource group
'$resourceGroupName'"; }
23 NOIEMBRIE 2017 | BUCUREȘTI
Solution deployment
• Prerequisites on Virtual Machines
–Windows features
–Setup
–Configuration
• Actual solution deployment
• Challenges:
–Make sure the prerequisites are installed every time
–Even more: promote from Staging to Production
23 NOIEMBRIE 2017 | BUCUREȘTI
PowerShell Desired State Configuration
• Specify the desired state of each VM in your
environment
• Push the specification
• Or let the VM pull it and refresh its state
• Reusing the configurations
–Throughout deployments (v1, v2, v3,…)
–Throughout mediums (Dev, Test, Staging, Production)
23 NOIEMBRIE 2017 | BUCUREȘTI
Traditional Scripts vs DSC
DSC Configurations
Intent
DSC Resources
Technology Specific
DSC Engine
Dependency Resolution
Logging & Error Handling
Reboot Resiliency
Repeatable Automation
Traditional Scripts
23 NOIEMBRIE 2017 | BUCUREȘTI
Easy to write and easy to deploy
Intent Environment
Configuration
(Dev -> Test -> Production)
$WebConfigEnv = @{
ComputerName = $VMServerNames
Name = “FourthCoffee”
}
…
Structural
Configuration
WindowsFeature IIS {
Name = "Web-Server"
Ensure = "Present"
}
…
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
}
….
}
…
Source: Channel 9
23 NOIEMBRIE 2017 | BUCUREȘTI
• Push
– Manual Process. DSC Resources have to be copied to the nodes
– Use Start-DscConfiguration to copy the MOF to the nodes and tell
them to make it so.
• Pull
– Use Push to enroll nodes, configuring them to query a Pull Server.
The nodes then check the pull server every 30 minutes for
configuration changes.
– DSC Resources must be zipped and placed on the Pull Server
– Every generated MOF file has to be accompanied by a checksum file
and both need to be placed on the Pull server.
Two Deployment Modes
23 NOIEMBRIE 2017 | BUCUREȘTI
PowerShell DSC Scenarios
• You can deploy “bare” VMs and have DSC configure them
based on a role (Web Server, SQL Server, AD Domain
Controller, Cluster etc.)
– No more gold images
• You can keep production servers in check
– You can be sure that everything that you configured via DSC will
stay that way even if somebody tampers with the configuration
• Create multiple identical environments with ease.
– Dev, QA, Staging, Production
• You can use DSC with your release management tools.
– VSTS, TFS, TeamCity etc.
23 NOIEMBRIE 2017 | BUCUREȘTI
Sample BUILD
23 NOIEMBRIE 2017 | BUCUREȘTI
Sample RELEASE
23 NOIEMBRIE 2017 | BUCUREȘTI
Sample email confirmation
23 NOIEMBRIE 2017 | BUCUREȘTI
DEMO
Visual Studio Team Services
Azure Dev/Test environments and process
23 NOIEMBRIE 2017 | BUCUREȘTI
New version CI/CD process
8 am: start environment creation
and deployment to DEV
Work, test, etc.
8 pm: automatic DEV
environment deleted
8 am: deploy to QA
(environment exists)
Testing is done in QA. QA approved for promotion
Build from QA used for a new
Release in STAGING
Testing / integration testing is
done in STAGING
STAGING approved for Prod
delivery
DEV
QA
STAGING
PRODUCTION environment
23 NOIEMBRIE 2017 | BUCUREȘTI
DevTest Labs
• A service in Azure
• Quickly create environments
– Using templates (ARM)
• Formulas (reusable bases):
– Agents, tools, programs (such as Visual Studio, Fiddler, etc.)
you need on your VMs
– Actions
– Applications to test
• Minimize waste using Caps. E.g.: number of VMs / user
• Control costs with Policies. E.g.: shut down VMs on a
schedule
23 NOIEMBRIE 2017 | BUCUREȘTI
23 NOIEMBRIE 2017 | BUCUREȘTI
DEMO
DevTest Labs
23 NOIEMBRIE 2017 | BUCUREȘTI
Next steps
• Raffle
• Avaelgo events: https://avaelgo.ro/blog/

More Related Content

What's hot

How to deploy a Private Cloud based on WAP and Nutanix
How to deploy a Private Cloud based on WAP and NutanixHow to deploy a Private Cloud based on WAP and Nutanix
How to deploy a Private Cloud based on WAP and Nutanix
Tom Van Gramberen
 
Fast SAP system provisioning based on CloudStack
Fast SAP system provisioning based on CloudStack Fast SAP system provisioning based on CloudStack
Fast SAP system provisioning based on CloudStack
ShapeBlue
 
CloudStack EU User Group - Making stuff better through CloudStack
CloudStack EU User Group - Making stuff better through CloudStackCloudStack EU User Group - Making stuff better through CloudStack
CloudStack EU User Group - Making stuff better through CloudStack
ShapeBlue
 
CloudStack EU user group - fast SAP provisioning
CloudStack EU user group - fast SAP provisioningCloudStack EU user group - fast SAP provisioning
CloudStack EU user group - fast SAP provisioning
ShapeBlue
 
CloudStack EU user group - CloudStack news
CloudStack EU user group - CloudStack newsCloudStack EU user group - CloudStack news
CloudStack EU user group - CloudStack news
ShapeBlue
 
Customising the CloudStack UI - CloudStack European User Group Virtual, May 2...
Customising the CloudStack UI - CloudStack European User Group Virtual, May 2...Customising the CloudStack UI - CloudStack European User Group Virtual, May 2...
Customising the CloudStack UI - CloudStack European User Group Virtual, May 2...
ShapeBlue
 
Nested CloudStack with VMware
Nested CloudStack with VMwareNested CloudStack with VMware
Nested CloudStack with VMware
ShapeBlue
 
Cloud stack user group - Welcome
Cloud stack user group -  WelcomeCloud stack user group -  Welcome
Cloud stack user group - Welcome
ShapeBlue
 
Building a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStackBuilding a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStack
ke4qqq
 
New stuff in CloudStack!
New stuff in CloudStack!New stuff in CloudStack!
New stuff in CloudStack!
ShapeBlue
 
On-demand Continuous Integration with Jenkins, jclouds, and CloudStack
On-demand Continuous Integration with Jenkins, jclouds, and CloudStackOn-demand Continuous Integration with Jenkins, jclouds, and CloudStack
On-demand Continuous Integration with Jenkins, jclouds, and CloudStack
ke4qqq
 
Managing Multi-hypervisor OpenStack Cloud with Single Virtual Network
Managing Multi-hypervisor OpenStack Cloud with Single Virtual NetworkManaging Multi-hypervisor OpenStack Cloud with Single Virtual Network
Managing Multi-hypervisor OpenStack Cloud with Single Virtual Network
PLUMgrid
 
CloudStack Meetup - Introduction
CloudStack Meetup - IntroductionCloudStack Meetup - Introduction
CloudStack Meetup - Introduction
Madan Ganesh Velayudham
 
Spca2014 7 tenets of highly scalable applications kapic
Spca2014 7 tenets of highly scalable applications kapicSpca2014 7 tenets of highly scalable applications kapic
Spca2014 7 tenets of highly scalable applications kapicNCCOMMS
 
Secret Techniques to Manage Apache Cloudstack with ActOnCloud
Secret Techniques to Manage Apache Cloudstack with ActOnCloudSecret Techniques to Manage Apache Cloudstack with ActOnCloud
Secret Techniques to Manage Apache Cloudstack with ActOnCloud
Madan Ganesh Velayudham
 
Cloudstack container service
Cloudstack container serviceCloudstack container service
Cloudstack container service
ShapeBlue
 
CloudStack news
CloudStack newsCloudStack news
CloudStack news
ShapeBlue
 
Improving CloudStack for operators
Improving CloudStack for operatorsImproving CloudStack for operators
Improving CloudStack for operators
ShapeBlue
 
VMUG St Louis - SDN in the Real World
VMUG St Louis - SDN in the Real WorldVMUG St Louis - SDN in the Real World
VMUG St Louis - SDN in the Real World
Chris Wahl
 
Creating CentOS Template For CloudStack
Creating CentOS Template For CloudStackCreating CentOS Template For CloudStack
Creating CentOS Template For CloudStack
Shanker Balan
 

What's hot (20)

How to deploy a Private Cloud based on WAP and Nutanix
How to deploy a Private Cloud based on WAP and NutanixHow to deploy a Private Cloud based on WAP and Nutanix
How to deploy a Private Cloud based on WAP and Nutanix
 
Fast SAP system provisioning based on CloudStack
Fast SAP system provisioning based on CloudStack Fast SAP system provisioning based on CloudStack
Fast SAP system provisioning based on CloudStack
 
CloudStack EU User Group - Making stuff better through CloudStack
CloudStack EU User Group - Making stuff better through CloudStackCloudStack EU User Group - Making stuff better through CloudStack
CloudStack EU User Group - Making stuff better through CloudStack
 
CloudStack EU user group - fast SAP provisioning
CloudStack EU user group - fast SAP provisioningCloudStack EU user group - fast SAP provisioning
CloudStack EU user group - fast SAP provisioning
 
CloudStack EU user group - CloudStack news
CloudStack EU user group - CloudStack newsCloudStack EU user group - CloudStack news
CloudStack EU user group - CloudStack news
 
Customising the CloudStack UI - CloudStack European User Group Virtual, May 2...
Customising the CloudStack UI - CloudStack European User Group Virtual, May 2...Customising the CloudStack UI - CloudStack European User Group Virtual, May 2...
Customising the CloudStack UI - CloudStack European User Group Virtual, May 2...
 
Nested CloudStack with VMware
Nested CloudStack with VMwareNested CloudStack with VMware
Nested CloudStack with VMware
 
Cloud stack user group - Welcome
Cloud stack user group -  WelcomeCloud stack user group -  Welcome
Cloud stack user group - Welcome
 
Building a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStackBuilding a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStack
 
New stuff in CloudStack!
New stuff in CloudStack!New stuff in CloudStack!
New stuff in CloudStack!
 
On-demand Continuous Integration with Jenkins, jclouds, and CloudStack
On-demand Continuous Integration with Jenkins, jclouds, and CloudStackOn-demand Continuous Integration with Jenkins, jclouds, and CloudStack
On-demand Continuous Integration with Jenkins, jclouds, and CloudStack
 
Managing Multi-hypervisor OpenStack Cloud with Single Virtual Network
Managing Multi-hypervisor OpenStack Cloud with Single Virtual NetworkManaging Multi-hypervisor OpenStack Cloud with Single Virtual Network
Managing Multi-hypervisor OpenStack Cloud with Single Virtual Network
 
CloudStack Meetup - Introduction
CloudStack Meetup - IntroductionCloudStack Meetup - Introduction
CloudStack Meetup - Introduction
 
Spca2014 7 tenets of highly scalable applications kapic
Spca2014 7 tenets of highly scalable applications kapicSpca2014 7 tenets of highly scalable applications kapic
Spca2014 7 tenets of highly scalable applications kapic
 
Secret Techniques to Manage Apache Cloudstack with ActOnCloud
Secret Techniques to Manage Apache Cloudstack with ActOnCloudSecret Techniques to Manage Apache Cloudstack with ActOnCloud
Secret Techniques to Manage Apache Cloudstack with ActOnCloud
 
Cloudstack container service
Cloudstack container serviceCloudstack container service
Cloudstack container service
 
CloudStack news
CloudStack newsCloudStack news
CloudStack news
 
Improving CloudStack for operators
Improving CloudStack for operatorsImproving CloudStack for operators
Improving CloudStack for operators
 
VMUG St Louis - SDN in the Real World
VMUG St Louis - SDN in the Real WorldVMUG St Louis - SDN in the Real World
VMUG St Louis - SDN in the Real World
 
Creating CentOS Template For CloudStack
Creating CentOS Template For CloudStackCreating CentOS Template For CloudStack
Creating CentOS Template For CloudStack
 

Similar to Mihai Tataran - Dev/Test Continuous Delivery Automation cu Microsoft Azure

Certifications for Azure Developers
Certifications for Azure DevelopersCertifications for Azure Developers
Certifications for Azure Developers
Krunal Trivedi
 
Microsoft Azure Tutorial | Microsoft Cloud Computing | Microsoft Azure Traini...
Microsoft Azure Tutorial | Microsoft Cloud Computing | Microsoft Azure Traini...Microsoft Azure Tutorial | Microsoft Cloud Computing | Microsoft Azure Traini...
Microsoft Azure Tutorial | Microsoft Cloud Computing | Microsoft Azure Traini...
Edureka!
 
Microsoft's modern technologies
Microsoft's modern technologiesMicrosoft's modern technologies
Microsoft's modern technologies
Fisnik Doko
 
[JAZUG Tohoku Azure DevOps] Azure DevOps
[JAZUG Tohoku Azure DevOps] Azure DevOps[JAZUG Tohoku Azure DevOps] Azure DevOps
[JAZUG Tohoku Azure DevOps] Azure DevOps
Naoki (Neo) SATO
 
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...
Amazon Web Services
 
AWS Canberra WWPS Summit 2013 - AWS for Test and Development
AWS Canberra WWPS Summit 2013 - AWS for Test and DevelopmentAWS Canberra WWPS Summit 2013 - AWS for Test and Development
AWS Canberra WWPS Summit 2013 - AWS for Test and Development
Amazon Web Services
 
Microsoft Azure News - 2018 December
Microsoft Azure News - 2018 DecemberMicrosoft Azure News - 2018 December
Microsoft Azure News - 2018 December
Daniel Toomey
 
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
VMware Tanzu
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
Amazon Web Services
 
Microsoft Azure essentials
Microsoft Azure essentialsMicrosoft Azure essentials
Microsoft Azure essentials
Vaibhav Gujral
 
AKS - Azure Kubernetes Services - kubernetes meetup may 2018
AKS - Azure Kubernetes Services  - kubernetes meetup may 2018AKS - Azure Kubernetes Services  - kubernetes meetup may 2018
AKS - Azure Kubernetes Services - kubernetes meetup may 2018
Jorge Arteiro
 
Azure DevOps Day - Trivandrum
Azure DevOps Day - TrivandrumAzure DevOps Day - Trivandrum
Azure DevOps Day - Trivandrum
Amal Dev
 
Tour of Azure DevOps
Tour of Azure DevOpsTour of Azure DevOps
Tour of Azure DevOps
Callon Campbell
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Emerson Eduardo Rodrigues Von Staffen
 
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...
Amazon Web Services
 
Azure DevOps Day - Kochi
Azure DevOps Day - KochiAzure DevOps Day - Kochi
Azure DevOps Day - Kochi
Amal Dev
 
Azure DevOps in Action
Azure DevOps in ActionAzure DevOps in Action
Azure DevOps in Action
Callon Campbell
 
Azure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarAzure DevOps Best Practices Webinar
Azure DevOps Best Practices Webinar
Cambay Digital
 
Using Redgate, AKS and Azure to bring DevOps to your database
Using Redgate, AKS and Azure to bring DevOps to your databaseUsing Redgate, AKS and Azure to bring DevOps to your database
Using Redgate, AKS and Azure to bring DevOps to your database
Red Gate Software
 
Using Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your DatabaseUsing Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your Database
Red Gate Software
 

Similar to Mihai Tataran - Dev/Test Continuous Delivery Automation cu Microsoft Azure (20)

Certifications for Azure Developers
Certifications for Azure DevelopersCertifications for Azure Developers
Certifications for Azure Developers
 
Microsoft Azure Tutorial | Microsoft Cloud Computing | Microsoft Azure Traini...
Microsoft Azure Tutorial | Microsoft Cloud Computing | Microsoft Azure Traini...Microsoft Azure Tutorial | Microsoft Cloud Computing | Microsoft Azure Traini...
Microsoft Azure Tutorial | Microsoft Cloud Computing | Microsoft Azure Traini...
 
Microsoft's modern technologies
Microsoft's modern technologiesMicrosoft's modern technologies
Microsoft's modern technologies
 
[JAZUG Tohoku Azure DevOps] Azure DevOps
[JAZUG Tohoku Azure DevOps] Azure DevOps[JAZUG Tohoku Azure DevOps] Azure DevOps
[JAZUG Tohoku Azure DevOps] Azure DevOps
 
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...
 
AWS Canberra WWPS Summit 2013 - AWS for Test and Development
AWS Canberra WWPS Summit 2013 - AWS for Test and DevelopmentAWS Canberra WWPS Summit 2013 - AWS for Test and Development
AWS Canberra WWPS Summit 2013 - AWS for Test and Development
 
Microsoft Azure News - 2018 December
Microsoft Azure News - 2018 DecemberMicrosoft Azure News - 2018 December
Microsoft Azure News - 2018 December
 
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Microsoft Azure essentials
Microsoft Azure essentialsMicrosoft Azure essentials
Microsoft Azure essentials
 
AKS - Azure Kubernetes Services - kubernetes meetup may 2018
AKS - Azure Kubernetes Services  - kubernetes meetup may 2018AKS - Azure Kubernetes Services  - kubernetes meetup may 2018
AKS - Azure Kubernetes Services - kubernetes meetup may 2018
 
Azure DevOps Day - Trivandrum
Azure DevOps Day - TrivandrumAzure DevOps Day - Trivandrum
Azure DevOps Day - Trivandrum
 
Tour of Azure DevOps
Tour of Azure DevOpsTour of Azure DevOps
Tour of Azure DevOps
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
 
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...
 
Azure DevOps Day - Kochi
Azure DevOps Day - KochiAzure DevOps Day - Kochi
Azure DevOps Day - Kochi
 
Azure DevOps in Action
Azure DevOps in ActionAzure DevOps in Action
Azure DevOps in Action
 
Azure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarAzure DevOps Best Practices Webinar
Azure DevOps Best Practices Webinar
 
Using Redgate, AKS and Azure to bring DevOps to your database
Using Redgate, AKS and Azure to bring DevOps to your databaseUsing Redgate, AKS and Azure to bring DevOps to your database
Using Redgate, AKS and Azure to bring DevOps to your database
 
Using Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your DatabaseUsing Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your Database
 

More from Avaelgo

Conferinta de Cloud 2017 Keynote
Conferinta de Cloud 2017 KeynoteConferinta de Cloud 2017 Keynote
Conferinta de Cloud 2017 Keynote
Avaelgo
 
GDPR Open Panel
GDPR Open PanelGDPR Open Panel
GDPR Open Panel
Avaelgo
 
GDPR Open Panel Questions
GDPR Open Panel QuestionsGDPR Open Panel Questions
GDPR Open Panel Questions
Avaelgo
 
Brian Kainec - Accelerating Digital Transformation
Brian Kainec - Accelerating Digital TransformationBrian Kainec - Accelerating Digital Transformation
Brian Kainec - Accelerating Digital Transformation
Avaelgo
 
Alex Ricobon si Daniel Popescu - Migrarea solutiilor in Microsoft Azure cu Li...
Alex Ricobon si Daniel Popescu - Migrarea solutiilor in Microsoft Azure cu Li...Alex Ricobon si Daniel Popescu - Migrarea solutiilor in Microsoft Azure cu Li...
Alex Ricobon si Daniel Popescu - Migrarea solutiilor in Microsoft Azure cu Li...
Avaelgo
 
Alex Mang - Solutii arhitecturale de tip azure platform as a service (PaaS)
Alex Mang - Solutii arhitecturale de tip azure platform as a service (PaaS)Alex Mang - Solutii arhitecturale de tip azure platform as a service (PaaS)
Alex Mang - Solutii arhitecturale de tip azure platform as a service (PaaS)
Avaelgo
 
Alex Mang - Soluții arhitecturale de tip azure infrastructure as a service (I...
Alex Mang - Soluții arhitecturale de tip azure infrastructure as a service (I...Alex Mang - Soluții arhitecturale de tip azure infrastructure as a service (I...
Alex Mang - Soluții arhitecturale de tip azure infrastructure as a service (I...
Avaelgo
 
Chaim Shachar - To Cloud or not to Cloud?
Chaim Shachar - To Cloud or not to Cloud?Chaim Shachar - To Cloud or not to Cloud?
Chaim Shachar - To Cloud or not to Cloud?
Avaelgo
 
Robert Stoicescu - GDPR: Principalele provocari identificate de PwC in Romania
 Robert Stoicescu - GDPR: Principalele provocari identificate de PwC in Romania Robert Stoicescu - GDPR: Principalele provocari identificate de PwC in Romania
Robert Stoicescu - GDPR: Principalele provocari identificate de PwC in Romania
Avaelgo
 
Radu Ialovoi - Meridianele cloud - retele virtuale si compozite
Radu Ialovoi - Meridianele cloud - retele virtuale si compoziteRadu Ialovoi - Meridianele cloud - retele virtuale si compozite
Radu Ialovoi - Meridianele cloud - retele virtuale si compozite
Avaelgo
 

More from Avaelgo (10)

Conferinta de Cloud 2017 Keynote
Conferinta de Cloud 2017 KeynoteConferinta de Cloud 2017 Keynote
Conferinta de Cloud 2017 Keynote
 
GDPR Open Panel
GDPR Open PanelGDPR Open Panel
GDPR Open Panel
 
GDPR Open Panel Questions
GDPR Open Panel QuestionsGDPR Open Panel Questions
GDPR Open Panel Questions
 
Brian Kainec - Accelerating Digital Transformation
Brian Kainec - Accelerating Digital TransformationBrian Kainec - Accelerating Digital Transformation
Brian Kainec - Accelerating Digital Transformation
 
Alex Ricobon si Daniel Popescu - Migrarea solutiilor in Microsoft Azure cu Li...
Alex Ricobon si Daniel Popescu - Migrarea solutiilor in Microsoft Azure cu Li...Alex Ricobon si Daniel Popescu - Migrarea solutiilor in Microsoft Azure cu Li...
Alex Ricobon si Daniel Popescu - Migrarea solutiilor in Microsoft Azure cu Li...
 
Alex Mang - Solutii arhitecturale de tip azure platform as a service (PaaS)
Alex Mang - Solutii arhitecturale de tip azure platform as a service (PaaS)Alex Mang - Solutii arhitecturale de tip azure platform as a service (PaaS)
Alex Mang - Solutii arhitecturale de tip azure platform as a service (PaaS)
 
Alex Mang - Soluții arhitecturale de tip azure infrastructure as a service (I...
Alex Mang - Soluții arhitecturale de tip azure infrastructure as a service (I...Alex Mang - Soluții arhitecturale de tip azure infrastructure as a service (I...
Alex Mang - Soluții arhitecturale de tip azure infrastructure as a service (I...
 
Chaim Shachar - To Cloud or not to Cloud?
Chaim Shachar - To Cloud or not to Cloud?Chaim Shachar - To Cloud or not to Cloud?
Chaim Shachar - To Cloud or not to Cloud?
 
Robert Stoicescu - GDPR: Principalele provocari identificate de PwC in Romania
 Robert Stoicescu - GDPR: Principalele provocari identificate de PwC in Romania Robert Stoicescu - GDPR: Principalele provocari identificate de PwC in Romania
Robert Stoicescu - GDPR: Principalele provocari identificate de PwC in Romania
 
Radu Ialovoi - Meridianele cloud - retele virtuale si compozite
Radu Ialovoi - Meridianele cloud - retele virtuale si compoziteRadu Ialovoi - Meridianele cloud - retele virtuale si compozite
Radu Ialovoi - Meridianele cloud - retele virtuale si compozite
 

Recently uploaded

Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 

Recently uploaded (20)

Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 

Mihai Tataran - Dev/Test Continuous Delivery Automation cu Microsoft Azure

  • 1. 23 NOIEMBRIE 2017 | BUCUREȘTI DevTest cu Microsoft Azure MIHAI TĂTĂRAN General Manager, Avaelgo
  • 2. 23 NOIEMBRIE 2017 | BUCUREȘTI Mulțumiri sponsorilor și partenerilor SPONSORI ORGANIZATOR PARTENER MEDIA PARTENER DE IMAGINE
  • 3. PEACE OF MIND AS-A-SERVICE CLOUD STRATEGY | MANAGED SERVICES | IT SECURITY | TRAINING
  • 4. 23 NOIEMBRIE 2017 | BUCUREȘTI Mihai Tătăran • General Manager @ Avaelgo –Microsoft Gold Cloud Platform Partner –Training and consulting, Software development, Infrastructure • Microsoft Azure Most Valuable Professional • Co-founder @ ITCamp & ITCamp Community
  • 5. 23 NOIEMBRIE 2017 | BUCUREȘTI Objectives • Understand the challenges of DevTest • See a solution with Microsoft Azure
  • 6. 23 NOIEMBRIE 2017 | BUCUREȘTI • Major disconnection between Development and Infrastructure teams • Who is in charge of the temporary infrastructure? • Sounds familiar? – Dev team asks for a few VMs for their Dev / Staging environment, for proper functional and integration testing – Infrastructure team gets the ticket / request, sends it through the proper channels to relevant person in charge – VMs are created and Dev team is notified – VMs are not exactly how the dev team has requested. Redo previous steps – Tests are done – Dev team forgets to notify infrastructure team to release the VMs Dev/Test challenges: Disconnection Dev / Infrastructure
  • 7. 23 NOIEMBRIE 2017 | BUCUREȘTI Dev/Test challenges: cost • Having tens or hundreds of VMs in an on premises infrastructure is a major cost issue • Especially if they are not needed all the time: –Day and night? –The whole development lifecycle? E.g.: is it good enough to have them every 2 weeks on Wednesday to Friday?
  • 8. 23 NOIEMBRIE 2017 | BUCUREȘTI Dev/Test challenges: skills • Development process • Developer tools: TFS, VSTS, Release Management, etc. • Infrastructure team process • Infrastructure tools: PowerShell, etc.
  • 9. 23 NOIEMBRIE 2017 | BUCUREȘTI Dev/Test challenges: business constraints • Software as a Service • Deliver faster / shorter time to market
  • 10. 23 NOIEMBRIE 2017 | BUCUREȘTI Dev/Test challenges: hard to configure • Staging infrastructure needs to be identical to the Production infrastructure • How do you guarantee that, repeatedly, with minimum work?
  • 11. 23 NOIEMBRIE 2017 | BUCUREȘTI Dev & test today Provision VMs Use VMs
  • 12. 23 NOIEMBRIE 2017 | BUCUREȘTI Dev & test in the cloud Manageenvironment Use VMs Provision VMs
  • 13. 23 NOIEMBRIE 2017 | BUCUREȘTI Dev/Test with Azure • Self service: Dev team can create temporary infrastructures – Infrastructure team can create / contribute to rules, workflows, etc. • Elasticity: shut down the VMs over nights, weekends; be able to scale easily • Fast: provisioning takes minutes to complete • Less waste using: quotas, access policies, automatic shutdowns • Create once, use as a template • Integrates with existing toolchain: Visual Studio, git, Puppet, Chef, Eclipse
  • 14. 23 NOIEMBRIE 2017 | BUCUREȘTI Continuous Integration tools from Microsoft TFS Team Foundation Server THE CI / CD tool from MS AZURE INTEGRATION TFS with Release Management VSTS with Build, Release tabs VSTS Visual Studio Team Services, former VSO Lightweight, SaaS version of TFS
  • 15. 23 NOIEMBRIE 2017 | BUCUREȘTI
  • 16. 23 NOIEMBRIE 2017 | BUCUREȘTI VSTS features • Seems too simple for complex scenarios • But, there are interesting things you can do: – Copy files – Run PowerShell scripts on target VMs – Run tests – Approve
  • 17. 23 NOIEMBRIE 2017 | BUCUREȘTI Deployment process Source Code editing in Visual Studio Visual Studio Team Services BUILD Visual Studio Team Services RELEASE Environment Creation as specified by ARM template Email confirmation. Testing can begin Solution deployment With VMs prerequisites
  • 18. 23 NOIEMBRIE 2017 | BUCUREȘTI Environment creation • Environment(s) creation in Azure –Dev, Test, Staging, etc. • No matter how complex they are –Load balancers, virtual networks, storage accounts, IPs, VMs, etc. • In an automated fashion • Repeatedly • Identically
  • 19. 23 NOIEMBRIE 2017 | BUCUREȘTI Azure Resource Groups Tightly coupled containers of multiple resources of similar or different types Which have common lifecycle and management Every resource must exist in one and only one resource group Resource groups can span regions Can be created using ARM templates
  • 20. 23 NOIEMBRIE 2017 | BUCUREȘTI Declarative v.s. Imperative Declarative (What) Imperative (How) Define WHAT it should be (Desired State) without specifying how it is being done in details Define HOW things should be done explicitly in details steps in order to achieve the desired result "resources": [ { "type": "<resource-type-name>", "name": "<name-of-the-resource>", "location": "<location-of-resource>", "dependsOn": [ "<array-of-related-resource-names>" ], "properties": "<settings-for-the-resource>", "resources": [ "<array-of-child-resources>" ] } ] Write-Host "Selecting subscription '$subscriptionId'"; Set-AzureRmContext -SubscriptionID $subscriptionId; $resourceGroup = Get-AzureRmResourceGroup -Name $resourceGroupName -ErrorAction SilentlyContinue if(!$resourceGroup) { Write-Host "Resource group '$resourceGroupName' does not exist. New-AzureRmResourceGroup -Name $resourceGroupName -Location $resourceGroupLocation } else{ Write-Host "Using existing resource group '$resourceGroupName'"; }
  • 21. 23 NOIEMBRIE 2017 | BUCUREȘTI Solution deployment • Prerequisites on Virtual Machines –Windows features –Setup –Configuration • Actual solution deployment • Challenges: –Make sure the prerequisites are installed every time –Even more: promote from Staging to Production
  • 22. 23 NOIEMBRIE 2017 | BUCUREȘTI PowerShell Desired State Configuration • Specify the desired state of each VM in your environment • Push the specification • Or let the VM pull it and refresh its state • Reusing the configurations –Throughout deployments (v1, v2, v3,…) –Throughout mediums (Dev, Test, Staging, Production)
  • 23. 23 NOIEMBRIE 2017 | BUCUREȘTI Traditional Scripts vs DSC DSC Configurations Intent DSC Resources Technology Specific DSC Engine Dependency Resolution Logging & Error Handling Reboot Resiliency Repeatable Automation Traditional Scripts
  • 24. 23 NOIEMBRIE 2017 | BUCUREȘTI Easy to write and easy to deploy Intent Environment Configuration (Dev -> Test -> Production) $WebConfigEnv = @{ ComputerName = $VMServerNames Name = “FourthCoffee” } … Structural Configuration WindowsFeature IIS { Name = "Web-Server" Ensure = "Present" } … 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 } …. } … Source: Channel 9
  • 25. 23 NOIEMBRIE 2017 | BUCUREȘTI • Push – Manual Process. DSC Resources have to be copied to the nodes – Use Start-DscConfiguration to copy the MOF to the nodes and tell them to make it so. • Pull – Use Push to enroll nodes, configuring them to query a Pull Server. The nodes then check the pull server every 30 minutes for configuration changes. – DSC Resources must be zipped and placed on the Pull Server – Every generated MOF file has to be accompanied by a checksum file and both need to be placed on the Pull server. Two Deployment Modes
  • 26. 23 NOIEMBRIE 2017 | BUCUREȘTI PowerShell DSC Scenarios • You can deploy “bare” VMs and have DSC configure them based on a role (Web Server, SQL Server, AD Domain Controller, Cluster etc.) – No more gold images • You can keep production servers in check – You can be sure that everything that you configured via DSC will stay that way even if somebody tampers with the configuration • Create multiple identical environments with ease. – Dev, QA, Staging, Production • You can use DSC with your release management tools. – VSTS, TFS, TeamCity etc.
  • 27. 23 NOIEMBRIE 2017 | BUCUREȘTI Sample BUILD
  • 28. 23 NOIEMBRIE 2017 | BUCUREȘTI Sample RELEASE
  • 29. 23 NOIEMBRIE 2017 | BUCUREȘTI Sample email confirmation
  • 30. 23 NOIEMBRIE 2017 | BUCUREȘTI DEMO Visual Studio Team Services Azure Dev/Test environments and process
  • 31. 23 NOIEMBRIE 2017 | BUCUREȘTI New version CI/CD process 8 am: start environment creation and deployment to DEV Work, test, etc. 8 pm: automatic DEV environment deleted 8 am: deploy to QA (environment exists) Testing is done in QA. QA approved for promotion Build from QA used for a new Release in STAGING Testing / integration testing is done in STAGING STAGING approved for Prod delivery DEV QA STAGING PRODUCTION environment
  • 32. 23 NOIEMBRIE 2017 | BUCUREȘTI DevTest Labs • A service in Azure • Quickly create environments – Using templates (ARM) • Formulas (reusable bases): – Agents, tools, programs (such as Visual Studio, Fiddler, etc.) you need on your VMs – Actions – Applications to test • Minimize waste using Caps. E.g.: number of VMs / user • Control costs with Policies. E.g.: shut down VMs on a schedule
  • 33. 23 NOIEMBRIE 2017 | BUCUREȘTI
  • 34. 23 NOIEMBRIE 2017 | BUCUREȘTI DEMO DevTest Labs
  • 35. 23 NOIEMBRIE 2017 | BUCUREȘTI Next steps • Raffle • Avaelgo events: https://avaelgo.ro/blog/