AzureDay Kyiv 2016 Release Management

S
Sergii KryshtopLead Software Engineer em EPAM Systems
CONTINUOUS DELIVERY
WITH VSTS + GIT FLOW +
OCTOPUS DEPLOY + ARM
FOR ENTERPRISE
SERGII KRYSHTOP
JUNE 18, 2016
SERGII KRYSHTOP
SOFTWARE ENGINEERING MANAGER @ EPAM
11+ YEARS IN IT / 5+ IN EPAM KHARKIV
MICROSOFT STACK / AZURE
DEVOPS & ENGINEERING PRACTICES
3CONFIDENTIAL
AGENDA
Definitions1
Processes2
Instruments3
Tips and Tricks / Lessons Learnt4
4CONFIDENTIAL
Continuous Delivery is a software development discipline
where you build software in such a way that the software
can be released to production at any time.
You achieve continuous delivery by continuously integrating
the software done by the development team, building
executables, and running automated tests on those
executables to detect problems. Furthermore you push the
executables into increasingly production-like environments
to ensure the software will work in production.
CONTINUOUS DELIVERY (CD)
Definition by Martin Fowler
5CONFIDENTIAL
RELEASE MANAGEMENT
Release management is the process of managing, planning,
scheduling and controlling a software build through
different stages and environments; including testing and
deploying software releases.
ITIL Release and Deployment Management aims to plan,
schedule and control the movement of releases to test and
live environments.
from wiki
6CONFIDENTIAL
AcceptVerifyDeployTestBuildCommit
DELIVERY PIPELINE
7CONFIDENTIAL
AGILE DEVELOPMENT MODEL
Time
Active Development
FEATURE FREEZE
Keep
Developing
Team Members
Hardening
Release
Candidate
BEGIN
Ops Team
PUSH RC
RELEASE
AGILE ITERATION
8CONFIDENTIAL
GIT FLOW BRANCHING MODEL
• Reflects development model
• DEVELOP branch reflects
new development stage
• RELEASE branch reflects
Release Hardening stage
• MASTER reflects the latest
stable version of the system
9CONFIDENTIAL
GIT FLOW ENVIRONMENTS – MINIMAL SET
DEV
QA
STAGING
TEMP
master
develop
release-01
feature-xxx
hotfix-yyy
STAGING
PROD
10CONFIDENTIAL
GIT FLOW ENVIRONMENTS – EXTENDED
DEV 2
QA 2
master
develop
release-01
STAGING
PROD
11CONFIDENTIAL
• Build your binaries only once
• Separate environment-specific configuration
from the environment-agnostic binaries
• Deploy the same way to every environment
• Smoke test your deployments
CI/CD BEST PRACTICES
12CONFIDENTIAL
GIT FLOW CD – DEVELOPMENT STAGE
Commit to Develop Branch
Build Unit Tests
Component
Tests
Publish
Artifacts BUILD
DEPLOY
Deploy to
DEV
Acceptance
Tests
Propagate to
QA
Manual
Testing
Approve
13CONFIDENTIAL
GIT FLOW CD – RELEASE TAGE
Commit to Release Branch
Build Unit Tests
Component
Tests
Publish
Artifacts
Deploy to
STAGING
Acceptance
Tests
Manual
Testing
Approve
Propagate to
PRODUCTION
Smoke TestsDONE
14CONFIDENTIAL
TOOLS
15CONFIDENTIAL
• Comprehensive set of build tasks in the cloud
• Built-in code coverage
• Extensions Marketplace
• Can Trigger build on commit or on schedule
• Email Alerts on build failure
• Integration with O365 Users
• Built-in artifact storage and package manager
TOOLS – BUILD – VS TEAM SERVICES
16CONFIDENTIAL
TIP – USE WILDCARD FOR RELEASE CI
18CONFIDENTIAL
TIP – USE PACKAGE MANAGEMENT
19CONFIDENTIAL
TOOL
OCTOPUS DEPLOY
RELEASE MANAGEMENT
20CONFIDENTIAL
• Does one thing, does it well: Automated deployment for
.NET
• Build by .NET Developers for .NET Developers
• Comprehensive functionality and documentation
• Integration with all popular CI servers: Jenkins, TeamCity,
Visual Studio Team Services
• Installs in minutes
• Affordable prices, free for small systems
WHY OCTOPUS DEPLOY
21CONFIDENTIAL
• Environment management
• Life-cycle management
• Project deployment pipeline management
• Release Management
• Works with internal and external nugget package feed
• Approvals and manual intervention
• Integration with VSTS through Marketplace Build Tasks
OCTOPUS DEPLOY MAIN FEATURES
22CONFIDENTIAL
• Variable management
• Application settings value replacement
• Swapping connection strings
• Configuring IIS application pools and web sites
• Installing and updating Windows Services
• Supports deployment to Azure Cloud Services and App
Services
• Extendable with own PowerShell scripts and custom steps
DEPLOY - CONFIGURATION AND SCRIPTING
23CONFIDENTIAL
OCTOPUS DEPLOY ARCHITECTURE
DEV/QA/Staging/Production
Web Server Web Server App Server App Server
VSTS
Octopus Deploy Server
PaaS Apps
Managed Build Server
24CONFIDENTIAL
OCTOPUS – DEPLOY RELEASE
25CONFIDENTIAL
OCTOPUS – DEPLOY RELEASE
26CONFIDENTIAL
OCTOPUS – DEPLOYMENT DESTINATION
ENVIRONMENT
PROJECT
ROLE
RELEASE PACKAGE VERSION
OCTOPUS DEPLOY
27CONFIDENTIAL
TIP – PARAMETERS MANAGEMENT
• Global infrastructure parameters
• Project-scoped parameters used in for configuration
settings
• Keep unambiguous parameter naming
• Calculate project parameters from global
GROUP PARAMETERS
28CONFIDENTIAL
TIP – UNAMBIGUOUS PARAMETER NAMING
EXAMPLE
<add name="default" connectionString="#{api__defaultConnectionString}"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
#{apiUserSqlCreds};#{apiConnectionString};Application Name=API
29CONFIDENTIAL
TIP – CONFIGURATION TESTING
MANUALLY TEST TRANSFORMATIONS ON ALL ENVIRONMENTS
30CONFIDENTIAL
TIP – CONFIGURATION TESTING
AUTOMATICALLY CHECK FOR MISSED VARIABLES
31CONFIDENTIAL
TIP – USE ARTIFACTS
Cmdlet: New-OctopusArtifact
32CONFIDENTIAL
PACKAGE VERSIONING
INFORMATION NUGET PACKAGE PROPERTY
Development Cycle / Branch Name
Build Number Name, Version, Octopus Release Number
Git Commit Description
Build Queued By Description
Build Definition Name Description
PACKAGE METADATA
33CONFIDENTIAL
• Plan the scope of release
• Deploy only components with modifications
• Check the status of deployment on Dashboard
TIP - DEPLOY FROM OCTOPUS DEPLOY
34CONFIDENTIAL
MANAGER
ENVIRONMENT SETUP
AZURE RESOURCE
35CONFIDENTIAL
• Resource Group – logically grouped collection of entities that usually
share a common lifecycle
• Resource Provider – Azure service which manages specific services
• Resource Manager Template - declarative JSON file that defines the
goal state of a deployment
• Parameters - values provided by the user executing the deployment to
customize deployed resources
• Deployment - operation which tracks execution of a Resource Manager
template
AZURE RESOURCE MANAGER (ARM) API
38CONFIDENTIAL
[TOPIC]
xxxD
xxxOps
xxxQ xxxS xxxP
• Resource Group (RG) contains all resources which
belong to particular environment.
• RG name starts with common prefix and the letter,
which identifies the environment purpose: Dev, Qa,
Staging and Production
• RG name is included into the billing report and used to
track costs.
RESOURCE GROUPS AS CONTAINERS
39CONFIDENTIAL
network-01 (v2)
[TOPIC]
RESOURCE GROUP
front-subnet-01
back-subnet-01
Gateway Subnet
network-01 (Classic)
Gateway Subnet
Use Network Security Groups to limit
ports exposure on the subnet layer.
FE subnet network security Group:
Inbound Connections:
- Allow all HTTP and HTTPS from any
source
- Allow all from AD network address
space
- Allow/Block RDP connections from
EPAM and NYC offices
- Allow Octopus port from Virtual
Network
BE subnet network security Group:
Inbound Connections:
- Allow application ports from VNet
- Allow all from AD network address
space
- Allow/Block RDP connections from
EPAM and NYC offices
- Allow Octopus port from Virtual
Network
NETWORK SECURITY GROUPS
40CONFIDENTIAL
Keep template for
infrastructure
components apart from
data and application
components
TIP: USE SEVERAL TEMPLATES
RG Template
Data Storage
Template
App Templates
41CONFIDENTIAL
Element Required Description
$schema Yes Location of the JSON schema file.
contentVersion Yes Version of the template.
parameters No Values provided during deployment execution.
variables No Internal variables
resources Yes Azure services deployed or updated in a
resource group
outputs No Values that are returned after deployment
EASY PROVISIONING - RESOURCE TEMPLATE
44CONFIDENTIAL
ROLE BASES ACCESS CONTROL (RBAC)
USERS
GROUPS
MANAGEMENT
PERMISSION
SUBSCRIPTION
RESOURCE GROUP
RESOURCE
45CONFIDENTIAL
RBAC BUILT-IN ROLES
Role name Permissions
Owner Full management rights
Contributor Full management rights except for user management
Reader View resources and their settings
None Does not see resources
CORE ROLES
Role name Permissions
*** Contributor Full management rights except for user management on
specific types of resources.
Examples: Virtual Machine Contributor, SQL DB
Contributor
RESOURCE TYPE SPECIFIC ROLES
46CONFIDENTIAL
• Branching model should fit your development process
• Use VSTS for CI process and Automated Tests Run
• Use Octopus Deploy for Release Management
• VSTS + Octopus Deploy integrates perfectly together
• Use ARM for environments provisioning
• Leverage RBAC for control permissions on service
administration
WRAP UP
THANK
YOU
CONTACT ME
sergii.kryshtop@gmail.com
skryshtop
1 de 43

Recomendados

Hands-on GitOps Patterns for Helm Users por
Hands-on GitOps Patterns for Helm UsersHands-on GitOps Patterns for Helm Users
Hands-on GitOps Patterns for Helm UsersWeaveworks
220 visualizações39 slides
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney por
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneySetting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneyWeaveworks
997 visualizações32 slides
CI/CD for everyone else por
CI/CD for everyone elseCI/CD for everyone else
CI/CD for everyone elseVictor Morales
1.6K visualizações23 slides
OpenShift pour le developpement cloud native - 20171214 por
OpenShift pour le developpement cloud native - 20171214OpenShift pour le developpement cloud native - 20171214
OpenShift pour le developpement cloud native - 20171214Laurent Broudoux
780 visualizações31 slides
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016 por
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016ManageIQ
1.9K visualizações31 slides
Agnostic Continuous Delivery por
Agnostic Continuous DeliveryAgnostic Continuous Delivery
Agnostic Continuous DeliveryHervé Leclerc
3.9K visualizações31 slides

Mais conteúdo relacionado

Mais procurados

Continuous security improvements in the DevOps process por
Continuous security improvements in the DevOps processContinuous security improvements in the DevOps process
Continuous security improvements in the DevOps processAarno Aukia
1.8K visualizações27 slides
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline por
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineRobert McDermott
80.2K visualizações20 slides
Continuous Deployment of your Application @JUGtoberfest por
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestMarcin Grzejszczak
1.5K visualizações93 slides
A local private PaaS in minutes with the Red Hat CDK por
A local private PaaS in minutes with the Red Hat CDKA local private PaaS in minutes with the Red Hat CDK
A local private PaaS in minutes with the Red Hat CDKEric D. Schabell
1.5K visualizações34 slides
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern... por
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Andrew Phillips
343 visualizações39 slides
Continuous Deployment of your Application @jSession#5 por
Continuous Deployment of your Application @jSession#5Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5Marcin Grzejszczak
1.2K visualizações97 slides

Mais procurados(20)

Continuous security improvements in the DevOps process por Aarno Aukia
Continuous security improvements in the DevOps processContinuous security improvements in the DevOps process
Continuous security improvements in the DevOps process
Aarno Aukia1.8K visualizações
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline por Robert McDermott
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Robert McDermott80.2K visualizações
Continuous Deployment of your Application @JUGtoberfest por Marcin Grzejszczak
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfest
Marcin Grzejszczak1.5K visualizações
A local private PaaS in minutes with the Red Hat CDK por Eric D. Schabell
A local private PaaS in minutes with the Red Hat CDKA local private PaaS in minutes with the Red Hat CDK
A local private PaaS in minutes with the Red Hat CDK
Eric D. Schabell1.5K visualizações
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern... por Andrew Phillips
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Andrew Phillips343 visualizações
Continuous Deployment of your Application @jSession#5 por Marcin Grzejszczak
Continuous Deployment of your Application @jSession#5Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5
Marcin Grzejszczak1.2K visualizações
OpenStack Summit Tokyo 2015: Scale or Fail: Containers on OpenStack with Open... por Diane Mueller
OpenStack Summit Tokyo 2015: Scale or Fail: Containers on OpenStack with Open...OpenStack Summit Tokyo 2015: Scale or Fail: Containers on OpenStack with Open...
OpenStack Summit Tokyo 2015: Scale or Fail: Containers on OpenStack with Open...
Diane Mueller722 visualizações
Openshift Container Platform: First ItalyMeetup por Giuseppe Bonocore
Openshift Container Platform: First ItalyMeetupOpenshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetup
Giuseppe Bonocore327 visualizações
A Reference Architecture to Enable Visibility and Traceability across the Ent... por CollabNet
A Reference Architecture to Enable Visibility and Traceability across the Ent...A Reference Architecture to Enable Visibility and Traceability across the Ent...
A Reference Architecture to Enable Visibility and Traceability across the Ent...
CollabNet10.4K visualizações
Open shift 2.x and MongoDB por plarsen67
Open shift 2.x and MongoDBOpen shift 2.x and MongoDB
Open shift 2.x and MongoDB
plarsen67541 visualizações
OpenShift: Devops Made Easy por Bent Terp
OpenShift: Devops Made EasyOpenShift: Devops Made Easy
OpenShift: Devops Made Easy
Bent Terp1K visualizações
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality por Josiah Renaudin
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityContinuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Josiah Renaudin340 visualizações
XP Days Ukraine 2016 Building CD Pipeline in Azure por Sergii Kryshtop
XP Days Ukraine 2016 Building CD Pipeline in AzureXP Days Ukraine 2016 Building CD Pipeline in Azure
XP Days Ukraine 2016 Building CD Pipeline in Azure
Sergii Kryshtop447 visualizações
DEVNET-1148 Leveraging Cisco OpenStack Private Cloud for Developers por Cisco DevNet
DEVNET-1148	Leveraging Cisco OpenStack Private Cloud for DevelopersDEVNET-1148	Leveraging Cisco OpenStack Private Cloud for Developers
DEVNET-1148 Leveraging Cisco OpenStack Private Cloud for Developers
Cisco DevNet1.1K visualizações
Open the Stack: How to easily plan and install your OpenStack deployment por Eric D. Schabell
Open the Stack: How to easily plan and install your OpenStack deploymentOpen the Stack: How to easily plan and install your OpenStack deployment
Open the Stack: How to easily plan and install your OpenStack deployment
Eric D. Schabell783 visualizações
Cross Cloud CI Intro por Wavell Watson
Cross Cloud CI IntroCross Cloud CI Intro
Cross Cloud CI Intro
Wavell Watson73 visualizações
Continuous Deployment To The Cloud @DevoxxPL 2017 por Marcin Grzejszczak
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017
Marcin Grzejszczak1.3K visualizações
Functest in Depth por OPNFV
Functest in DepthFunctest in Depth
Functest in Depth
OPNFV750 visualizações
Software Development Process v1.5 - 20121214 por Rick Hwang
Software Development Process v1.5 - 20121214Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214
Rick Hwang7.4K visualizações
PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ... por Puppet
PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ...PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ...
PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ...
Puppet482 visualizações

Destaque

Automated release management with team city & octopusdeploy - NDC 2013 por
Automated release management with team city & octopusdeploy - NDC 2013Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013Kristoffer Deinoff
4.5K visualizações69 slides
Octopus Deploy and how to stop deploying like an idiot por
Octopus Deploy and how to stop deploying like an idiotOctopus Deploy and how to stop deploying like an idiot
Octopus Deploy and how to stop deploying like an idiotdamovisa
4K visualizações50 slides
Octopus Deploy Tech Fest 2014 por
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014adriantwright
1K visualizações25 slides
dotnetsheff: Continuous delivery with Team City and Octopus Deploy por
dotnetsheff: Continuous delivery with Team City and Octopus Deploydotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus DeployKevin Kuszyk
416 visualizações11 slides
Zero Downtime Deployment por
Zero Downtime DeploymentZero Downtime Deployment
Zero Downtime DeploymentJoel Dickson
4.3K visualizações20 slides
Continuous Delivery Overview por
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery OverviewLuca Minudel
2.3K visualizações68 slides

Destaque(20)

Automated release management with team city & octopusdeploy - NDC 2013 por Kristoffer Deinoff
Automated release management with team city & octopusdeploy - NDC 2013Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013
Kristoffer Deinoff4.5K visualizações
Octopus Deploy and how to stop deploying like an idiot por damovisa
Octopus Deploy and how to stop deploying like an idiotOctopus Deploy and how to stop deploying like an idiot
Octopus Deploy and how to stop deploying like an idiot
damovisa4K visualizações
Octopus Deploy Tech Fest 2014 por adriantwright
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014
adriantwright1K visualizações
dotnetsheff: Continuous delivery with Team City and Octopus Deploy por Kevin Kuszyk
dotnetsheff: Continuous delivery with Team City and Octopus Deploydotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
Kevin Kuszyk416 visualizações
Zero Downtime Deployment por Joel Dickson
Zero Downtime DeploymentZero Downtime Deployment
Zero Downtime Deployment
Joel Dickson4.3K visualizações
Continuous Delivery Overview por Luca Minudel
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
Luca Minudel2.3K visualizações
SPSOttawa Release Pipepline for SharePoint office 365 in Azure por Vincent Biret
SPSOttawa Release Pipepline for SharePoint office 365 in AzureSPSOttawa Release Pipepline for SharePoint office 365 in Azure
SPSOttawa Release Pipepline for SharePoint office 365 in Azure
Vincent Biret531 visualizações
Biweek Mineração de Dados com SQL Server por Rodrigo Dornel
Biweek   Mineração de Dados com SQL ServerBiweek   Mineração de Dados com SQL Server
Biweek Mineração de Dados com SQL Server
Rodrigo Dornel529 visualizações
The new way to extend VSTS Build and Release por Jesse Houwing
The new way to extend VSTS Build and ReleaseThe new way to extend VSTS Build and Release
The new way to extend VSTS Build and Release
Jesse Houwing570 visualizações
SharePoint Saturday Houston Setting up your release pipeline with Azure por Vincent Biret
SharePoint Saturday Houston Setting up your release pipeline with AzureSharePoint Saturday Houston Setting up your release pipeline with Azure
SharePoint Saturday Houston Setting up your release pipeline with Azure
Vincent Biret536 visualizações
Mundo TI - Office 365 da estratégia de deploy até os detalhes de troubleshooting por Bruno Lopes
Mundo TI - Office 365 da estratégia de deploy até os detalhes de troubleshootingMundo TI - Office 365 da estratégia de deploy até os detalhes de troubleshooting
Mundo TI - Office 365 da estratégia de deploy até os detalhes de troubleshooting
Bruno Lopes401 visualizações
Release Management with Visual Studio Team Services and Office Dev PnP por Petter Skodvin-Hvammen
Release Management with Visual Studio Team Services and Office Dev PnPRelease Management with Visual Studio Team Services and Office Dev PnP
Release Management with Visual Studio Team Services and Office Dev PnP
Petter Skodvin-Hvammen708 visualizações
Visual Studio Team Services 新機能使い倒し por Takashi Takebayashi
Visual Studio Team Services 新機能使い倒しVisual Studio Team Services 新機能使い倒し
Visual Studio Team Services 新機能使い倒し
Takashi Takebayashi1.4K visualizações
AIAのまちづくり por rika_hrtj
AIAのまちづくりAIAのまちづくり
AIAのまちづくり
rika_hrtj301 visualizações
Application Lifecycle Management & VSTS por Microsoft Iceland
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTS
Microsoft Iceland944 visualizações
Criando indicadores de time com VSTS e POWER BI por Adriano Bertucci
Criando indicadores de time com VSTS e POWER BICriando indicadores de time com VSTS e POWER BI
Criando indicadores de time com VSTS e POWER BI
Adriano Bertucci678 visualizações
SharePoint 2010 Workflows por Phil Wicklund
SharePoint 2010 WorkflowsSharePoint 2010 Workflows
SharePoint 2010 Workflows
Phil Wicklund8.4K visualizações
What is datavisualization? por Stephane Nardin
What is datavisualization?What is datavisualization?
What is datavisualization?
Stephane Nardin2.8K visualizações
[Vssummit] DevOps - Release Management VSTS por Leandro Prado
[Vssummit]   DevOps - Release Management VSTS[Vssummit]   DevOps - Release Management VSTS
[Vssummit] DevOps - Release Management VSTS
Leandro Prado415 visualizações
Overcoming the challenges of Office 365 user management in hybrid environments​ por Zoho Corporation
Overcoming the challenges of Office 365 user management in hybrid environments​Overcoming the challenges of Office 365 user management in hybrid environments​
Overcoming the challenges of Office 365 user management in hybrid environments​
Zoho Corporation547 visualizações

Similar a AzureDay Kyiv 2016 Release Management

Intro to GitOps with Weave GitOps, Flagger and Linkerd por
Intro to GitOps with Weave GitOps, Flagger and LinkerdIntro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and LinkerdWeaveworks
85 visualizações36 slides
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv... por
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...Weaveworks
122 visualizações27 slides
Cloud Native Engineering with SRE and GitOps por
Cloud Native Engineering with SRE and GitOpsCloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsWeaveworks
356 visualizações34 slides
Plataforma DevOps en OpenShift por
Plataforma DevOps en OpenShiftPlataforma DevOps en OpenShift
Plataforma DevOps en OpenShiftJuan Carlos García Peláez
471 visualizações17 slides
Agile Bodensee - Testautomation & Continuous Delivery Workshop por
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopMichael Palotas
1.1K visualizações94 slides
Continuous Delivery with a PaaS Application por
Continuous Delivery with a PaaS ApplicationContinuous Delivery with a PaaS Application
Continuous Delivery with a PaaS ApplicationMark Rendell
379 visualizações23 slides

Similar a AzureDay Kyiv 2016 Release Management(20)

Intro to GitOps with Weave GitOps, Flagger and Linkerd por Weaveworks
Intro to GitOps with Weave GitOps, Flagger and LinkerdIntro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Weaveworks85 visualizações
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv... por Weaveworks
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...
Weaveworks122 visualizações
Cloud Native Engineering with SRE and GitOps por Weaveworks
Cloud Native Engineering with SRE and GitOpsCloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOps
Weaveworks356 visualizações
Agile Bodensee - Testautomation & Continuous Delivery Workshop por Michael Palotas
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Michael Palotas1.1K visualizações
Continuous Delivery with a PaaS Application por Mark Rendell
Continuous Delivery with a PaaS ApplicationContinuous Delivery with a PaaS Application
Continuous Delivery with a PaaS Application
Mark Rendell379 visualizações
DevSecOps: Bringing security to the DevOps pipeline por Aarno Aukia
DevSecOps: Bringing security to the DevOps pipelineDevSecOps: Bringing security to the DevOps pipeline
DevSecOps: Bringing security to the DevOps pipeline
Aarno Aukia340 visualizações
DevSecOps - Security in DevOps por Aarno Aukia
DevSecOps - Security in DevOpsDevSecOps - Security in DevOps
DevSecOps - Security in DevOps
Aarno Aukia146 visualizações
Devops phase-1 por G R VISHAL
Devops phase-1Devops phase-1
Devops phase-1
G R VISHAL126 visualizações
Full stack development best practice and toolset por Reid Lai
Full stack development best practice and toolsetFull stack development best practice and toolset
Full stack development best practice and toolset
Reid Lai173 visualizações
DevSecOps: Bringing security to the DevOps pipeline por Aarno Aukia
DevSecOps: Bringing security to the DevOps pipelineDevSecOps: Bringing security to the DevOps pipeline
DevSecOps: Bringing security to the DevOps pipeline
Aarno Aukia216 visualizações
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt... por Janusz Nowak
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Janusz Nowak3.8K visualizações
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse por VMware Tanzu
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
VMware Tanzu1.8K visualizações
Tour of Azure DevOps por Callon Campbell
Tour of Azure DevOpsTour of Azure DevOps
Tour of Azure DevOps
Callon Campbell679 visualizações
DevOps e a transformação digital de aplicações por Ramon Durães
DevOps e a transformação digital de aplicaçõesDevOps e a transformação digital de aplicações
DevOps e a transformação digital de aplicações
Ramon Durães608 visualizações
Cncf checkov and bridgecrew por LibbySchulze
Cncf checkov and bridgecrewCncf checkov and bridgecrew
Cncf checkov and bridgecrew
LibbySchulze1.4K visualizações
DevSecOps with Confidence por VMware Tanzu
DevSecOps with ConfidenceDevSecOps with Confidence
DevSecOps with Confidence
VMware Tanzu308 visualizações
Kovair DevOps - Overview Presentation por Kovair
Kovair DevOps - Overview PresentationKovair DevOps - Overview Presentation
Kovair DevOps - Overview Presentation
Kovair415 visualizações
Azure DevOps in Action por Callon Campbell
Azure DevOps in ActionAzure DevOps in Action
Azure DevOps in Action
Callon Campbell8.9K visualizações
VMworld 2013: NSX PCI Reference Architecture Workshop Session 3 - Operational... por VMworld
VMworld 2013: NSX PCI Reference Architecture Workshop Session 3 - Operational...VMworld 2013: NSX PCI Reference Architecture Workshop Session 3 - Operational...
VMworld 2013: NSX PCI Reference Architecture Workshop Session 3 - Operational...
VMworld923 visualizações

Último

Roozbeh Torkzadeh - TU Eindhoven por
Roozbeh Torkzadeh - TU EindhovenRoozbeh Torkzadeh - TU Eindhoven
Roozbeh Torkzadeh - TU EindhovenDutch Power
91 visualizações14 slides
PB CV v0.3 por
PB CV v0.3PB CV v0.3
PB CV v0.3Pedro Borracha
12 visualizações16 slides
Pdffromtextfile_1.pdf por
Pdffromtextfile_1.pdfPdffromtextfile_1.pdf
Pdffromtextfile_1.pdfTRIEU QUANG NGO
7 visualizações2 slides
231121 SP slides - PAS workshop November 2023.pdf por
231121 SP slides - PAS workshop November 2023.pdf231121 SP slides - PAS workshop November 2023.pdf
231121 SP slides - PAS workshop November 2023.pdfPAS_Team
162 visualizações15 slides
Yin Sun - Shell por
Yin Sun - ShellYin Sun - Shell
Yin Sun - ShellDutch Power
89 visualizações17 slides
PB CV por
PB CVPB CV
PB CVPedro Borracha
7 visualizações16 slides

Último(20)

Roozbeh Torkzadeh - TU Eindhoven por Dutch Power
Roozbeh Torkzadeh - TU EindhovenRoozbeh Torkzadeh - TU Eindhoven
Roozbeh Torkzadeh - TU Eindhoven
Dutch Power91 visualizações
PB CV v0.3 por Pedro Borracha
PB CV v0.3PB CV v0.3
PB CV v0.3
Pedro Borracha12 visualizações
Pdffromtextfile_1.pdf por TRIEU QUANG NGO
Pdffromtextfile_1.pdfPdffromtextfile_1.pdf
Pdffromtextfile_1.pdf
TRIEU QUANG NGO7 visualizações
231121 SP slides - PAS workshop November 2023.pdf por PAS_Team
231121 SP slides - PAS workshop November 2023.pdf231121 SP slides - PAS workshop November 2023.pdf
231121 SP slides - PAS workshop November 2023.pdf
PAS_Team162 visualizações
Yin Sun - Shell por Dutch Power
Yin Sun - ShellYin Sun - Shell
Yin Sun - Shell
Dutch Power89 visualizações
Managing Github via Terrafom.pdf por micharaeck
Managing Github via Terrafom.pdfManaging Github via Terrafom.pdf
Managing Github via Terrafom.pdf
micharaeck5 visualizações
I use my tools to help people por mywampa
I use my tools to help peopleI use my tools to help people
I use my tools to help people
mywampa5 visualizações
Post-event report intro session-1.docx por RohitRathi59
Post-event report intro session-1.docxPost-event report intro session-1.docx
Post-event report intro session-1.docx
RohitRathi5915 visualizações
Timeahead Agency Pitch Deck.pdf por Habib-ur- Rehman
Timeahead Agency Pitch Deck.pdfTimeahead Agency Pitch Deck.pdf
Timeahead Agency Pitch Deck.pdf
Habib-ur- Rehman13 visualizações
Synthetic Biology.pptx por ShubNoor4
Synthetic Biology.pptxSynthetic Biology.pptx
Synthetic Biology.pptx
ShubNoor48 visualizações
New Microsoft Word Document.docx por apomahendranagarmudd
New Microsoft Word Document.docxNew Microsoft Word Document.docx
New Microsoft Word Document.docx
apomahendranagarmudd8 visualizações
The Throne of Your Heart 11-26-23 PPT.pptx por FamilyWorshipCenterD
The Throne of Your Heart 11-26-23 PPT.pptxThe Throne of Your Heart 11-26-23 PPT.pptx
The Throne of Your Heart 11-26-23 PPT.pptx
FamilyWorshipCenterD7 visualizações
falsettos por RenzoCalandra
falsettosfalsettos
falsettos
RenzoCalandra10 visualizações
Christan van Dorst - Hyteps por Dutch Power
Christan van Dorst - HytepsChristan van Dorst - Hyteps
Christan van Dorst - Hyteps
Dutch Power96 visualizações
Helko van den Brom - VSL por Dutch Power
Helko van den Brom - VSLHelko van den Brom - VSL
Helko van den Brom - VSL
Dutch Power93 visualizações
PB CV v0.4 por Pedro Borracha
PB CV v0.4PB CV v0.4
PB CV v0.4
Pedro Borracha7 visualizações
Gym Members Community.pptx por nasserbf1987
Gym Members Community.pptxGym Members Community.pptx
Gym Members Community.pptx
nasserbf19878 visualizações
SOA PPT ON SEA TURTLES.pptx por EuniceOseiYeboah
SOA PPT ON SEA TURTLES.pptxSOA PPT ON SEA TURTLES.pptx
SOA PPT ON SEA TURTLES.pptx
EuniceOseiYeboah9 visualizações

AzureDay Kyiv 2016 Release Management

  • 1. CONTINUOUS DELIVERY WITH VSTS + GIT FLOW + OCTOPUS DEPLOY + ARM FOR ENTERPRISE SERGII KRYSHTOP JUNE 18, 2016
  • 2. SERGII KRYSHTOP SOFTWARE ENGINEERING MANAGER @ EPAM 11+ YEARS IN IT / 5+ IN EPAM KHARKIV MICROSOFT STACK / AZURE DEVOPS & ENGINEERING PRACTICES
  • 4. 4CONFIDENTIAL Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time. You achieve continuous delivery by continuously integrating the software done by the development team, building executables, and running automated tests on those executables to detect problems. Furthermore you push the executables into increasingly production-like environments to ensure the software will work in production. CONTINUOUS DELIVERY (CD) Definition by Martin Fowler
  • 5. 5CONFIDENTIAL RELEASE MANAGEMENT Release management is the process of managing, planning, scheduling and controlling a software build through different stages and environments; including testing and deploying software releases. ITIL Release and Deployment Management aims to plan, schedule and control the movement of releases to test and live environments. from wiki
  • 7. 7CONFIDENTIAL AGILE DEVELOPMENT MODEL Time Active Development FEATURE FREEZE Keep Developing Team Members Hardening Release Candidate BEGIN Ops Team PUSH RC RELEASE AGILE ITERATION
  • 8. 8CONFIDENTIAL GIT FLOW BRANCHING MODEL • Reflects development model • DEVELOP branch reflects new development stage • RELEASE branch reflects Release Hardening stage • MASTER reflects the latest stable version of the system
  • 9. 9CONFIDENTIAL GIT FLOW ENVIRONMENTS – MINIMAL SET DEV QA STAGING TEMP master develop release-01 feature-xxx hotfix-yyy STAGING PROD
  • 10. 10CONFIDENTIAL GIT FLOW ENVIRONMENTS – EXTENDED DEV 2 QA 2 master develop release-01 STAGING PROD
  • 11. 11CONFIDENTIAL • Build your binaries only once • Separate environment-specific configuration from the environment-agnostic binaries • Deploy the same way to every environment • Smoke test your deployments CI/CD BEST PRACTICES
  • 12. 12CONFIDENTIAL GIT FLOW CD – DEVELOPMENT STAGE Commit to Develop Branch Build Unit Tests Component Tests Publish Artifacts BUILD DEPLOY Deploy to DEV Acceptance Tests Propagate to QA Manual Testing Approve
  • 13. 13CONFIDENTIAL GIT FLOW CD – RELEASE TAGE Commit to Release Branch Build Unit Tests Component Tests Publish Artifacts Deploy to STAGING Acceptance Tests Manual Testing Approve Propagate to PRODUCTION Smoke TestsDONE
  • 15. 15CONFIDENTIAL • Comprehensive set of build tasks in the cloud • Built-in code coverage • Extensions Marketplace • Can Trigger build on commit or on schedule • Email Alerts on build failure • Integration with O365 Users • Built-in artifact storage and package manager TOOLS – BUILD – VS TEAM SERVICES
  • 16. 16CONFIDENTIAL TIP – USE WILDCARD FOR RELEASE CI
  • 17. 18CONFIDENTIAL TIP – USE PACKAGE MANAGEMENT
  • 19. 20CONFIDENTIAL • Does one thing, does it well: Automated deployment for .NET • Build by .NET Developers for .NET Developers • Comprehensive functionality and documentation • Integration with all popular CI servers: Jenkins, TeamCity, Visual Studio Team Services • Installs in minutes • Affordable prices, free for small systems WHY OCTOPUS DEPLOY
  • 20. 21CONFIDENTIAL • Environment management • Life-cycle management • Project deployment pipeline management • Release Management • Works with internal and external nugget package feed • Approvals and manual intervention • Integration with VSTS through Marketplace Build Tasks OCTOPUS DEPLOY MAIN FEATURES
  • 21. 22CONFIDENTIAL • Variable management • Application settings value replacement • Swapping connection strings • Configuring IIS application pools and web sites • Installing and updating Windows Services • Supports deployment to Azure Cloud Services and App Services • Extendable with own PowerShell scripts and custom steps DEPLOY - CONFIGURATION AND SCRIPTING
  • 22. 23CONFIDENTIAL OCTOPUS DEPLOY ARCHITECTURE DEV/QA/Staging/Production Web Server Web Server App Server App Server VSTS Octopus Deploy Server PaaS Apps Managed Build Server
  • 25. 26CONFIDENTIAL OCTOPUS – DEPLOYMENT DESTINATION ENVIRONMENT PROJECT ROLE RELEASE PACKAGE VERSION OCTOPUS DEPLOY
  • 26. 27CONFIDENTIAL TIP – PARAMETERS MANAGEMENT • Global infrastructure parameters • Project-scoped parameters used in for configuration settings • Keep unambiguous parameter naming • Calculate project parameters from global GROUP PARAMETERS
  • 27. 28CONFIDENTIAL TIP – UNAMBIGUOUS PARAMETER NAMING EXAMPLE <add name="default" connectionString="#{api__defaultConnectionString}" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> #{apiUserSqlCreds};#{apiConnectionString};Application Name=API
  • 28. 29CONFIDENTIAL TIP – CONFIGURATION TESTING MANUALLY TEST TRANSFORMATIONS ON ALL ENVIRONMENTS
  • 29. 30CONFIDENTIAL TIP – CONFIGURATION TESTING AUTOMATICALLY CHECK FOR MISSED VARIABLES
  • 30. 31CONFIDENTIAL TIP – USE ARTIFACTS Cmdlet: New-OctopusArtifact
  • 31. 32CONFIDENTIAL PACKAGE VERSIONING INFORMATION NUGET PACKAGE PROPERTY Development Cycle / Branch Name Build Number Name, Version, Octopus Release Number Git Commit Description Build Queued By Description Build Definition Name Description PACKAGE METADATA
  • 32. 33CONFIDENTIAL • Plan the scope of release • Deploy only components with modifications • Check the status of deployment on Dashboard TIP - DEPLOY FROM OCTOPUS DEPLOY
  • 34. 35CONFIDENTIAL • Resource Group – logically grouped collection of entities that usually share a common lifecycle • Resource Provider – Azure service which manages specific services • Resource Manager Template - declarative JSON file that defines the goal state of a deployment • Parameters - values provided by the user executing the deployment to customize deployed resources • Deployment - operation which tracks execution of a Resource Manager template AZURE RESOURCE MANAGER (ARM) API
  • 35. 38CONFIDENTIAL [TOPIC] xxxD xxxOps xxxQ xxxS xxxP • Resource Group (RG) contains all resources which belong to particular environment. • RG name starts with common prefix and the letter, which identifies the environment purpose: Dev, Qa, Staging and Production • RG name is included into the billing report and used to track costs. RESOURCE GROUPS AS CONTAINERS
  • 36. 39CONFIDENTIAL network-01 (v2) [TOPIC] RESOURCE GROUP front-subnet-01 back-subnet-01 Gateway Subnet network-01 (Classic) Gateway Subnet Use Network Security Groups to limit ports exposure on the subnet layer. FE subnet network security Group: Inbound Connections: - Allow all HTTP and HTTPS from any source - Allow all from AD network address space - Allow/Block RDP connections from EPAM and NYC offices - Allow Octopus port from Virtual Network BE subnet network security Group: Inbound Connections: - Allow application ports from VNet - Allow all from AD network address space - Allow/Block RDP connections from EPAM and NYC offices - Allow Octopus port from Virtual Network NETWORK SECURITY GROUPS
  • 37. 40CONFIDENTIAL Keep template for infrastructure components apart from data and application components TIP: USE SEVERAL TEMPLATES RG Template Data Storage Template App Templates
  • 38. 41CONFIDENTIAL Element Required Description $schema Yes Location of the JSON schema file. contentVersion Yes Version of the template. parameters No Values provided during deployment execution. variables No Internal variables resources Yes Azure services deployed or updated in a resource group outputs No Values that are returned after deployment EASY PROVISIONING - RESOURCE TEMPLATE
  • 39. 44CONFIDENTIAL ROLE BASES ACCESS CONTROL (RBAC) USERS GROUPS MANAGEMENT PERMISSION SUBSCRIPTION RESOURCE GROUP RESOURCE
  • 40. 45CONFIDENTIAL RBAC BUILT-IN ROLES Role name Permissions Owner Full management rights Contributor Full management rights except for user management Reader View resources and their settings None Does not see resources CORE ROLES Role name Permissions *** Contributor Full management rights except for user management on specific types of resources. Examples: Virtual Machine Contributor, SQL DB Contributor RESOURCE TYPE SPECIFIC ROLES
  • 41. 46CONFIDENTIAL • Branching model should fit your development process • Use VSTS for CI process and Automated Tests Run • Use Octopus Deploy for Release Management • VSTS + Octopus Deploy integrates perfectly together • Use ARM for environments provisioning • Leverage RBAC for control permissions on service administration WRAP UP

Notas do Editor

  1. ITIL - IT Infrastructure Library
  2. During each iteration (sprint) development team works in two stages: 1. New feature development or bug fixing. All changes commits to the integration branch, which might be temporary unstable. 2. Preparing the release candidate and testing it, to produce the stable release code at the end of the iteration and initiate the push the new version to production environments At the beginning of each iteration all team works on new feature to produce the value. At the end of the sprint most of the team focused on the stabilizing and hardening the quality of iteration deliverables while some of the team members might keep working on the scope of the next iteration.
  3. In addition to minimal model the release stage includes own DEV and QA environments, called DEV2 and QA2 respectably DEV2 is used to test automated deployment scripts and to run automated acceptance tests. QA2 is used for exploratory testing and running manual regression tests over the Release Candidate. It’s good practice to have STAGE as a mirror of PROD. This allows to implement the Zero Downtime deployment strategies, like Canary Releases and Blue-Green Deployment. Hotfix is follows the release candidate flow.
  4. Release stage starts with creating release branch from the develop. The minimal pipeline includes only Staging and Production environments, where Staging is used for simulation of upgrading production version and also to run Automated and Manual Acceptance Tests. Staging can also be used as UAT environment for stakeholders. Release stage uses own CI builds which produces binaries. Binaries from Release CI build are propagated to the Production.
  5. VSTS provides comprehensive build tool with large number of tasks for all popular build tools and also can be extended from the VSTS Marketplace. Supports git capabilities to trigger build on changes in the
  6. No two environments are ever the same. Use variables to scope different settings to different environments. Built-in conventions mean that Octopus automatically takes care of:
  7. VSTS Task push application binaries as nugget package to the Octopus. It defines the name and the version of the package and also creates a new release for the project Octopus Deploy Server call Octopus Tentacles, agent application. installed on the VM. Tentacle receives the package and do the deployment and deploy-time config transformations. For PaaS services, like WebApps and Cloud Service Roles, all transformation is performed on the Octopus Server.
  8. Artefacts, get files after deployment
  9. Use
  10. https://azure.microsoft.com/en-gb/documentation/articles/role-based-access-control-configure/#known-issues-when-using-role-based-access-control Azure Resource Manager enables you to work with the resources in your application as a group. You can deploy, update or delete all of the resources for your application in a single, coordinated operation. You use a template for deployment and that template can work for different environments such as testing, staging and production. You can clarify billing for your organization by viewing the rolled-up costs for the entire group.
  11. https://azure.microsoft.com/en-gb/documentation/articles/role-based-access-control-configure/#known-issues-when-using-role-based-access-control Azure Resource Manager enables you to work with the resources in your application as a group. You can deploy, update or delete all of the resources for your application in a single, coordinated operation. You use a template for deployment and that template can work for different environments such as testing, staging and production. You can clarify billing for your organization by viewing the rolled-up costs for the entire group.
  12. https://azure.microsoft.com/en-gb/documentation/articles/role-based-access-control-configure/#known-issues-when-using-role-based-access-control Azure Resource Manager enables you to work with the resources in your application as a group. You can deploy, update or delete all of the resources for your application in a single, coordinated operation. You use a template for deployment and that template can work for different environments such as testing, staging and production. You can clarify billing for your organization by viewing the rolled-up costs for the entire group.
  13. Back-subnet-01 VNet subnet contains SOLR and other application services which are not exposed to the Internet. Front-subnet-01 VNet subnet contains web servers. Classic VNet is used only to host Cloud Service – Worker Role, which must be in VNet to access internal load balancer endpoint on SOLR instances. Access to another VNet with AD and domain servers is organized through the VNet-2-VNet gateway connection. Build and deploy servers can access to VMs through the VNet-2-VNet gateway connection. Network Security Group controls that Octopus Deploy port is accessed only from Azure VNet.
  14. Infrastructure, Data and Application resources has different lifecycle, so it’s better to script them separately. Manually Configured Resources: Classic VLAN to VLAN v2 Site-2-Site VPN Run Copy Database from Production to Staging
  15. https://azure.microsoft.com/en-us/documentation/articles/resource-group-template-functions/
  16. https://azure.microsoft.com/en-us/documentation/articles/resource-group-template-functions/
  17. http://blogs.msdn.com/b/cloud_solution_architect/archive/2015/03/17/rbac-and-the-azure-resource-manager.aspx