SlideShare a Scribd company logo
1 of 43
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

More Related Content

What's hot

Continuous security improvements in the DevOps process
Continuous security improvements in the DevOps processContinuous security improvements in the DevOps process
Continuous security improvements in the DevOps processAarno Aukia
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
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
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestMarcin Grzejszczak
 
A local private PaaS in minutes with the Red Hat CDK
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
 
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...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Andrew Phillips
 
Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5Marcin Grzejszczak
 
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...
OpenStack Summit Tokyo 2015: Scale or Fail: Containers on OpenStack with Open...Diane Mueller
 
Openshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetupOpenshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetupGiuseppe Bonocore
 
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...
A Reference Architecture to Enable Visibility and Traceability across the Ent...CollabNet
 
Open shift 2.x and MongoDB
Open shift 2.x and MongoDBOpen shift 2.x and MongoDB
Open shift 2.x and MongoDBplarsen67
 
OpenShift: Devops Made Easy
OpenShift: Devops Made EasyOpenShift: Devops Made Easy
OpenShift: Devops Made EasyBent Terp
 
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
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 QualityJosiah Renaudin
 
XP Days Ukraine 2016 Building CD Pipeline in Azure
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 AzureSergii Kryshtop
 
DEVNET-1148 Leveraging Cisco OpenStack Private Cloud for Developers
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 DevelopersCisco DevNet
 
Open the Stack: How to easily plan and install your OpenStack deployment
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 deploymentEric D. Schabell
 
Cross Cloud CI Intro
Cross Cloud CI IntroCross Cloud CI Intro
Cross Cloud CI IntroW Watson
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Marcin Grzejszczak
 
Functest in Depth
Functest in DepthFunctest in Depth
Functest in DepthOPNFV
 
Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214Rick Hwang
 
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, ...
PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ...Puppet
 

What's hot (20)

Continuous security improvements in the DevOps process
Continuous security improvements in the DevOps processContinuous security improvements in the DevOps process
Continuous security improvements in the DevOps process
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
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
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfest
 
A local private PaaS in minutes with the Red Hat CDK
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
 
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...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
 
Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5
 
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...
OpenStack Summit Tokyo 2015: Scale or Fail: Containers on OpenStack with Open...
 
Openshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetupOpenshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetup
 
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...
A Reference Architecture to Enable Visibility and Traceability across the Ent...
 
Open shift 2.x and MongoDB
Open shift 2.x and MongoDBOpen shift 2.x and MongoDB
Open shift 2.x and MongoDB
 
OpenShift: Devops Made Easy
OpenShift: Devops Made EasyOpenShift: Devops Made Easy
OpenShift: Devops Made Easy
 
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
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
 
XP Days Ukraine 2016 Building CD Pipeline in Azure
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
 
DEVNET-1148 Leveraging Cisco OpenStack Private Cloud for Developers
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
 
Open the Stack: How to easily plan and install your OpenStack deployment
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
 
Cross Cloud CI Intro
Cross Cloud CI IntroCross Cloud CI Intro
Cross Cloud CI Intro
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017
 
Functest in Depth
Functest in DepthFunctest in Depth
Functest in Depth
 
Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214
 
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, ...
PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ...
 

Viewers also liked

Automated release management with team city & octopusdeploy - NDC 2013
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
 
Octopus Deploy and how to stop deploying like an idiot
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
 
Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014adriantwright
 
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
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
 
Zero Downtime Deployment
Zero Downtime DeploymentZero Downtime Deployment
Zero Downtime DeploymentJoel Dickson
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery OverviewLuca Minudel
 
SPSOttawa Release Pipepline for SharePoint office 365 in Azure
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 AzureVincent Biret
 
Biweek Mineração de Dados com SQL Server
Biweek   Mineração de Dados com SQL ServerBiweek   Mineração de Dados com SQL Server
Biweek Mineração de Dados com SQL ServerRodrigo Dornel
 
The new way to extend VSTS Build and Release
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 ReleaseJesse Houwing
 
SharePoint Saturday Houston Setting up your release pipeline with Azure
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 AzureVincent Biret
 
Mundo 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 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 troubleshootingBruno Lopes
 
Release Management with Visual Studio Team Services and Office Dev PnP
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 PnPPetter Skodvin-Hvammen
 
Visual Studio Team Services 新機能使い倒し
Visual Studio Team Services 新機能使い倒しVisual Studio Team Services 新機能使い倒し
Visual Studio Team Services 新機能使い倒しTakashi Takebayashi
 
AIAのまちづくり
AIAのまちづくりAIAのまちづくり
AIAのまちづくりrika_hrtj
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTSMicrosoft Iceland
 
Criando indicadores de time com VSTS e POWER BI
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 BIAdriano Bertucci
 
SharePoint 2010 Workflows
SharePoint 2010 WorkflowsSharePoint 2010 Workflows
SharePoint 2010 WorkflowsPhil Wicklund
 
What is datavisualization?
What is datavisualization?What is datavisualization?
What is datavisualization?Stephane Nardin
 
[Vssummit] DevOps - Release Management VSTS
[Vssummit]   DevOps - Release Management VSTS[Vssummit]   DevOps - Release Management VSTS
[Vssummit] DevOps - Release Management VSTSLeandro Prado
 
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​
Overcoming the challenges of Office 365 user management in hybrid environments​Zoho Corporation
 

Viewers also liked (20)

Automated release management with team city & octopusdeploy - NDC 2013
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
 
Octopus Deploy and how to stop deploying like an idiot
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
 
Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014
 
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
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
 
Zero Downtime Deployment
Zero Downtime DeploymentZero Downtime Deployment
Zero Downtime Deployment
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
SPSOttawa Release Pipepline for SharePoint office 365 in Azure
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
 
Biweek Mineração de Dados com SQL Server
Biweek   Mineração de Dados com SQL ServerBiweek   Mineração de Dados com SQL Server
Biweek Mineração de Dados com SQL Server
 
The new way to extend VSTS Build and Release
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
 
SharePoint Saturday Houston Setting up your release pipeline with Azure
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
 
Mundo 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 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
 
Release Management with Visual Studio Team Services and Office Dev PnP
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
 
Visual Studio Team Services 新機能使い倒し
Visual Studio Team Services 新機能使い倒しVisual Studio Team Services 新機能使い倒し
Visual Studio Team Services 新機能使い倒し
 
AIAのまちづくり
AIAのまちづくりAIAのまちづくり
AIAのまちづくり
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTS
 
Criando indicadores de time com VSTS e POWER BI
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
 
SharePoint 2010 Workflows
SharePoint 2010 WorkflowsSharePoint 2010 Workflows
SharePoint 2010 Workflows
 
What is datavisualization?
What is datavisualization?What is datavisualization?
What is datavisualization?
 
[Vssummit] DevOps - Release Management VSTS
[Vssummit]   DevOps - Release Management VSTS[Vssummit]   DevOps - Release Management VSTS
[Vssummit] DevOps - Release Management VSTS
 
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​
Overcoming the challenges of Office 365 user management in hybrid environments​
 

Similar to AzureDay Kyiv 2016 Release Management

Intro to GitOps with Weave GitOps, Flagger and Linkerd
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
 
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...
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...Weaveworks
 
Cloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsCloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsWeaveworks
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopMichael Palotas
 
Continuous Delivery with a PaaS Application
Continuous Delivery with a PaaS ApplicationContinuous Delivery with a PaaS Application
Continuous Delivery with a PaaS ApplicationMark Rendell
 
DevSecOps: Bringing security to the DevOps pipeline
DevSecOps: Bringing security to the DevOps pipelineDevSecOps: Bringing security to the DevOps pipeline
DevSecOps: Bringing security to the DevOps pipelineAarno Aukia
 
DevSecOps - Security in DevOps
DevSecOps - Security in DevOpsDevSecOps - Security in DevOps
DevSecOps - Security in DevOpsAarno Aukia
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1G R VISHAL
 
Full stack development best practice and toolset
Full stack development best practice and toolsetFull stack development best practice and toolset
Full stack development best practice and toolsetReid Lai
 
DevSecOps: Bringing security to the DevOps pipeline
DevSecOps: Bringing security to the DevOps pipelineDevSecOps: Bringing security to the DevOps pipeline
DevSecOps: Bringing security to the DevOps pipelineAarno Aukia
 
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...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Janusz Nowak
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
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 ConcourseVMware Tanzu
 
DevOps e a transformação digital de aplicaçõ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çõesRamon Durães
 
Cncf checkov and bridgecrew
Cncf checkov and bridgecrewCncf checkov and bridgecrew
Cncf checkov and bridgecrewLibbySchulze
 
DevSecOps with Confidence
DevSecOps with ConfidenceDevSecOps with Confidence
DevSecOps with ConfidenceVMware Tanzu
 
Robust Network Security and Observability with GitOps and Cilium
Robust Network Security and Observability with GitOps and CiliumRobust Network Security and Observability with GitOps and Cilium
Robust Network Security and Observability with GitOps and CiliumWeaveworks
 
Kovair DevOps - Overview Presentation
Kovair DevOps - Overview PresentationKovair DevOps - Overview Presentation
Kovair DevOps - Overview PresentationKovair
 

Similar to AzureDay Kyiv 2016 Release Management (20)

Intro to GitOps with Weave GitOps, Flagger and Linkerd
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
 
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...
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...
 
Cloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsCloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOps
 
Plataforma DevOps en OpenShift
Plataforma DevOps en OpenShiftPlataforma DevOps en OpenShift
Plataforma DevOps en OpenShift
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
Continuous Delivery with a PaaS Application
Continuous Delivery with a PaaS ApplicationContinuous Delivery with a PaaS Application
Continuous Delivery with a PaaS Application
 
DevSecOps: Bringing security to the DevOps pipeline
DevSecOps: Bringing security to the DevOps pipelineDevSecOps: Bringing security to the DevOps pipeline
DevSecOps: Bringing security to the DevOps pipeline
 
DevSecOps - Security in DevOps
DevSecOps - Security in DevOpsDevSecOps - Security in DevOps
DevSecOps - Security in DevOps
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1
 
Full stack development best practice and toolset
Full stack development best practice and toolsetFull stack development best practice and toolset
Full stack development best practice and toolset
 
DevSecOps: Bringing security to the DevOps pipeline
DevSecOps: Bringing security to the DevOps pipelineDevSecOps: Bringing security to the DevOps pipeline
DevSecOps: Bringing security to the DevOps pipeline
 
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...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
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
 
Tour of Azure DevOps
Tour of Azure DevOpsTour of Azure DevOps
Tour of Azure DevOps
 
DevOps e a transformação digital de aplicaçõ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
 
Cncf checkov and bridgecrew
Cncf checkov and bridgecrewCncf checkov and bridgecrew
Cncf checkov and bridgecrew
 
DevSecOps with Confidence
DevSecOps with ConfidenceDevSecOps with Confidence
DevSecOps with Confidence
 
Robust Network Security and Observability with GitOps and Cilium
Robust Network Security and Observability with GitOps and CiliumRobust Network Security and Observability with GitOps and Cilium
Robust Network Security and Observability with GitOps and Cilium
 
Kovair DevOps - Overview Presentation
Kovair DevOps - Overview PresentationKovair DevOps - Overview Presentation
Kovair DevOps - Overview Presentation
 
Azure DevOps in Action
Azure DevOps in ActionAzure DevOps in Action
Azure DevOps in Action
 

Recently uploaded

OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...NETWAYS
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptssuser319dad
 
Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸mathanramanathan2005
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...henrik385807
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfhenrik385807
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringSebastiano Panichella
 
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...marjmae69
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Krijn Poppe
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSebastiano Panichella
 
Event 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptxEvent 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptxaryanv1753
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxmavinoikein
 
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...NETWAYS
 
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSebastiano Panichella
 
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS  AND MONUMENTS IN NIGERIA.pptxLANDMARKS  AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptxBasil Achie
 
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...NETWAYS
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@vikas rana
 
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)Basil Achie
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxFamilyWorshipCenterD
 
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...NETWAYS
 

Recently uploaded (20)

OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.ppt
 
Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software Engineering
 
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
Gaps, Issues and Challenges in the Implementation of Mother Tongue Based-Mult...
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
 
Event 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptxEvent 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptx
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptx
 
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
 
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation Track
 
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS  AND MONUMENTS IN NIGERIA.pptxLANDMARKS  AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
 
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@
 
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
 
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
 

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

Editor's Notes

  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