SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Rob Habraken | Technical Manager, Consultant & Sitecore MVP
Sitecore 8.2 on Azure Web Apps
Familiarity of
Windows
Built on .NET, Sitecore uses
the technology that your IT
department already knows.
Infinite scalability
Easily scales up and down as
demand changes.*
Rapidly deploy Sitecore on
Azure without worrying IT.
Speed to market
The only enterprise-
grade cloud
Microsoft Azure ensures that
Sitecore® Experience
Database™ is secure.
Always on
Never miss a beat; always
be there for your customers.
Interoperability
Integrates seamlessly with
your existing back-end
systems and marketing
investments.
Accident protection
Reliable and redundant copies of your
data and automatic failover protection.
Pay-as-you-go
Only pay for the power and
capacity you’re using.*
*Customers will need to ensure the proper number of content delivery
servers from Sitecore to meet scaling requirements.
Virtual Machines Cloud Services Web Apps
Azure hosting options
Control Support of legacy apps Ease of management Agility
• Web Apps is the new PaaS
standard with more agility &
easier to manage
• Web Apps were previously
marketed as a SaaS solution,
but is now considered to be
PaaS
• Sitecore is using additional
SaaS services to complete the
installation
Azure Module Sitecore 8.2-1
Delivery
ServersVisitors
Authors
Management
Servers
Content Management
Databases
Health
Monitoring
Content Delivery
Databases
Processing
Servers
Search
Collection
Database
Session
State
Reporting
Database
Reporting
Servers
• ARM (Azure Resource Manager) templates are an
Azure standard using JSON
• Delivered by Sitecore as a starting point for your own custom
provisioning
• Enables you to define one or more Azure resources including
dependencies between deployed resources
• Can be used for initial provision or as continuous deployment
• Use Web Deploy and DACPAC packages to setup site &
databases
The road to the ultimate Continuous Deployment setup
• What do we need more for a good CI/CD setup?
• How to edit and extend the provided ARM templates?
• What are the pitfalls and black holes in blue / green provisioning?
Streamlining your Cloud deployments
• Clean install per deployment, based on vanilla Sitecore install
• Keep database content and only deploy new / changed items
• Don’t disturb live site with deployment process or new content
• Option to rollback deployment upon failure
• Repeatable process, fully automated
Sitecore gives you handy ARM templates for the different sizings,
but they’re a head start only; you will run into some issues
• You cannot re-provision an environment, having to deploy over
an existing web app, being unable to remove files
• It doesn’t provision staging slots to deploy while keeping your
current version up & running
• It doesn’t tell you how to re-provision without overwriting your
database with content you want to keep
• Roll out your infrastructure first, like resource groups, databases,
hosting plans and slots
• Then, provision a vanilla Sitecore install into your staging slot
(this step includes installing databases and vanilla content)
• Then, create a repeatable re-provisioning step, provisioning a
vanilla Sitecore install into your staging slot, without databases!
(this actually wipes your staging slot each time your provision)
• Deploy your own solution over the staging slot & swap when ready
Web roles
Health
Monitoring
Databases
SearchCollection
Database
Session
State
1. Provision infrastructure only:
Empty Web App,
empty databases
Web roles
Health
Monitoring
Databases
SearchCollection
Database
Session
State
2. Provision vanilla Sitecore:
Sitecore into staging slot,
default content
Web roles
Health
Monitoring
Databases
SearchCollection
Database
Session
State
3. Swap (just to demo):
Swap
Web roles
Health
Monitoring
Databases
SearchCollection
Database
Session
State
3. Re-provision without database:
Wipes slot, installs new
files, keeping content
Web roles
Health
Monitoring
Databases
SearchCollection
Database
Session
State
4. Deploy your own solution:
Customizing ARM templates
• Split infra and msdeploy parts, so we can re-provision!
• Use output parameters to stitch templates together
• Add staging slots (default provisioning & deployment target)
• Upgrade minimum SKU configuration to support slots
• Add a databaseless SCWDP and provision for re-provisioning
• ARM splitting
• output parameters
• staging slots
• The Sitecore Web Deploy Packages you can download from
Sitecore contain vanilla databases, but you don’t want them to
overwrite your own Sitecore content while re-provisioning
• You have to strip the databases from the different SCWDPs
• You can do that using msdeploy, deploying from one zip archive
(SCWDP) to another, using the skip dbFullSQL & skip dbDacFx
parameters!
• Get the parameters.xml file out of the SCWDP; it contains all
the info about the required parameters to deploy that package
• Invoke msdeploy with the -skip:objectName=dbFullSql and
-skip:objectName=dbDacFx parameters
• Add all additional parameters required by the specific SCWDP
msdeploy -verb:sync -source:package="D:DataInetpubazurexp0-singleSitecore 8.2 rev. 161221_single.scwdp.zip" -
dest:package="D:DataInetpubazurexp0-singleSitecore 8.2 rev. 161221_single-nodb.scwdp.zip" -declareparamfile="D:DataInetpubazurexp0-
singleparameters.xml" -skip:objectName=dbFullSql -skip:objectName=dbDacFx -setparam:"Sitecore Admin New Password"=“giLvgjMXG0D9CuKYKctA" -
setparam:"Core DB User Name"="single-core-sitecore-msdeploy-user" -setparam:"Core DB Password"="TWsxzkGQ5VrPT@7znJDe9NkFFtG" -setparam:"Master DB User
Name"="single-master-sitecore-msdeploy-user" -setparam:"Master DB Password"="xgMR7p6dmLYdL@7znJDe9NkFFtG" -setparam:"Web DB User Name"="single-web-
sitecore-msdeploy-user" -setparam:"Web DB Password"="B3j0tnNXVBoS6@7znJDe9NkFFtG" -setparam:"Reporting DB User Name"="single-reporting-sitecore-
msdeploy-user" -setparam:"Reporting DB Password"="0dURnXD5T93f@7znJDe9NkFFtG" -setparam:"Core Admin Connection
String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-sql.database.windows.net,1433;Initial Catalog=azure-rg-core-db;User Id=xp0-
single-sql;Password=a6CmAkgOyY236ctkzsNx;" -setparam:"Core Connection String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-
sql.database.windows.net,1433;Initial Catalog=azure-rg-core-db;User Id=single-core-sitecore-msdeploy-user;Password=TWsxzkGQ5VrPT@7znJDe9NkFFtG;" -
setparam:"Master Admin Connection String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-sql.database.windows.net,1433;Initial
Catalog=azure-rg-master-db;User Id=xp0-single-sql;Password=a6CmAkgOyY236ctkzsNx;" -setparam:"Master Connection
String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-sql.database.windows.net,1433;Initial Catalog=azure-rg-master-db;User
Id=single-master-sitecore-msdeploy-user;Password=xgMR7p6dmLYdL@7znJDe9NkFFtG;" -setparam:"Web Admin Connection
String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-web-sql.database.windows.net,1433;Initial Catalog=azure-rg-web-db;User Id=xp0-
single-sql;Password=a6CmAkgOyY236ctkzsNx;" -setparam:"Web Connection String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-web-
sql.database.windows.net,1433;Initial Catalog=azure-rg-web-db;User Id=single-web-sitecore-msdeploy-user;Password=B3j0tnNXVBoS6@7znJDe9NkFFtG;" -
setparam:"Reporting Admin Connection String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-sql.database.windows.net,1433;Initial
Catalog=azure-rg-reporting-db;User Id=xp0-single-sql;Password=a6CmAkgOyY236ctkzsNx;" -setparam:"Reporting Connection
String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-sql.database.windows.net,1433;Initial Catalog=azure-rg-reporting-db;User
Id=single-reporting-sitecore-msdeploy-user;Password=0dURnXD5T93f@7znJDe9NkFFtG;" -setparam:"Analytics Connection String"="mongodb://mlab-
azure:mM8kY7jD6JkDUykx6D2y@ds123456.mlab.com:12345/analytics" -setparam:"Tracking Live Connection String"="mongodb://mlab-
azure:mM8kY7jD6JkDUykx6D2y@ds123456.mlab.com:12345/tracking-live" -setparam:"Tracking History Connection String"="mongodb://mlab-
azure:mM8kY7jD6JkDUykx6D2y@ds123456.mlab.com:12345/analytics-history" -setparam:"Tracking Contact Connection String"="mongodb://mlab-
azure:mM8kY7jD6JkDUykx6D2y@ds123456.mlab.com:12345/tracking-contact" -setparam:"Cloud Search Connection String"="serviceUrl=https://azure-rg-
as.search.windows.net;apiVersion=2015-02-28;apiKey=A6836C6EBBA68675D558336C6EBBA686" -setparam:"Application Insights Instrumentation Key"="ecc59b93-
57eb-4c89-1264-945b2ae914f6" -setparam:"Application Insights Role"="Single" -setparam:"License XML"="." -setparam:"IP Security Client IP"="0.0.0.0" -
setparam:"IP Security Client IP Mask"="0.0.0.0"
…and it would be different for each environment & instance role!
PS: these are all fake credentials, of course ;-)
• The real config values don’t have to be in the target package
• Actually, you don’t want them in there:
• A package should be re-usable among environment
• For security reasons, it shouldn’t contain the actual credentials
• They would be overwritten by the ARM provisioning anyway
• Use PowerShell to automate the creation and execution of the
command, based on the parameters.xml file
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True)]
[string]$PackagePath,
[Parameter(Mandatory=$True)]
[string]$ParamFile,
[Parameter(Mandatory=$False)]
[string]$PackageDestinationPath =
$($PackagePath).Replace(".scwdp.zip", "-nodb.scwdp.zip")
)
$msdeploy = "C:Program FilesIISMicrosoft Web Deploy
V3msdeploy.exe"
$verb = "-verb:sync"
$source = "-source:package=`"$PackagePath`""
$destination = "-dest:package=`"$($PackageDestinationPath)`""
$declareParamFile = "-declareparamfile=`"$($ParamFile)`""
$skipDbFullSQL = "-skip:objectName=dbFullSql"
$skipDbDacFx = "-skip:objectName=dbDacFx"
# read parameter file
[xml]$paramfile_content = Get-Content -Path $ParamFile
$paramfile_paramnames =
$paramfile_content.parameters.parameter.name
$params = ""
foreach($paramname in $paramfile_paramnames){
$tmpvalue = "tmpvalue"
if($paramname -eq "License Xml"){ $tmpvalue =
"LicenseContent"}
if($paramname -eq "IP Security Client IP"){ $tmpvalue =
"0.0.0.0"}
if($paramname -eq "IP Security Client IP Mask"){ $tmpvalue =
"0.0.0.0"}
$params = "$params -setParam:`"$paramname`"=`"$tmpvalue`""
}
# create new package
Invoke-Expression "& '$msdeploy' --% $verb $source $destination
$declareParamFile $skipDbFullSQL $skipDbDacFx $params"
Combining PS, ARM & VSTS
• Re-provision using msdeploy ARM and db-less SCWDP
• Deploy to the staging slot using VSTS (for example)
• Test & warm up your new site
• Swap slots
• Do you have custom role specific configuration
(CM/CD/REP/PRC)?
• Don’t transform them in your Solution, use cargo payloads!
• For more info on this topic, check out this article by Bas Lijten:
http://blog.baslijten.com/sitecore-on-azure-create-custom-web-
deploy-packages-using-the-sitecore-azure-toolkit/
What could go wrong
• Use shared access signatures (SAS) to access your SCWDPs
• You are not allowed to publicly expose Sitecore software downloads
• You do not want to share your base install, possibly including configs
• Add IP security to all testing and acceptance environments
• You can copy IP security setup from the XP CM role
• I have added this to the XP0-single templates, using it for test mainly
• Use Azure Key Vault to store your keys and passwords
• Set your
container
access to
private
• Generate a
SAS token and
add it to your
package URL
• Add “.scm” to resource URL or access via Portal
• Browse through files, view or edit them (debugging only!)
• Execute PowerShell
• View Processes
• Etc.
• EventQueue issue: the staging slot creates an extra CM role,
which could introduce concurrency issues with your production
slot CM
• Indexing: if you do blue green deployments using an extra web
database, please take in mind that your Azure Search already
updates your indexes based on the new master content!
• Content stop: if you want to avoid conflicts, content editors
should not publish during deployments (although than can
continue working on the master database); if you want to
deploy continuously, this can be a huge disturbance for editors
• Sitecore will release a new set of ARM templates shortly,
containing a few aspects we’ve seen today, and more:
• Nested templates
• Splitting infra & application
• Module support (add-ons)
• Staging and databaseless re-provisioning? Check my repository
• Always use them as a boilerplate to create your own templates!
• Blog on Azure Cloud Services – deprecated!
http://sitecore.robhabraken.nl/index.php/2229/sitecore-azure/
• First blog of my series on Azure Web Apps
http://sitecore.robhabraken.nl/index.php/2407/an-introduction-to-sitecore-on-azure-web-apps/
• An comprehensive introduction to Sitecore on Azure Web Apps
https://www.robhabraken.nl/index.php/2622/sitecore-8-2-1-on-azure-web-apps/
• Automated scaling using PowerShell
https://www.robhabraken.nl/index.php/2658/saving-costs-by-scaling-down/
• One of the issues of staging on a shared master database
https://www.robhabraken.nl/index.php/2683/the-staging-slot-eventqueue-issue/
• Download my demo scripts & ARM templates
https://github.com/robhabraken/Sitecore-Azure-Scripts
• A blog post, including recordings of this session, will follow
shortly on my Sitecore blog https://www.robhabraken.nl/

Mais conteúdo relacionado

Mais procurados

Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Nathaniel Palmer
 
Proposed Project Management Office
Proposed Project Management OfficeProposed Project Management Office
Proposed Project Management OfficeJosh Folgado
 
Application rationalization- Invest today to save tomorrow!
Application rationalization- Invest today to save tomorrow!Application rationalization- Invest today to save tomorrow!
Application rationalization- Invest today to save tomorrow!Vivek Mishra
 
Agile Solution Architecture and Design
Agile Solution Architecture and DesignAgile Solution Architecture and Design
Agile Solution Architecture and DesignAlan McSweeney
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystemsOutSystems
 
Domain driven design and model driven development
Domain driven design and model driven developmentDomain driven design and model driven development
Domain driven design and model driven developmentDmitry Geyzersky
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesRadosław Maziarka
 
The 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeThe 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeOutSystems
 
How to Assess the Maturity of your PMO
How to Assess the Maturity of your PMOHow to Assess the Maturity of your PMO
How to Assess the Maturity of your PMOAmerico Pinto
 
Lean Business Architecture
Lean Business ArchitectureLean Business Architecture
Lean Business ArchitectureAndrew Blain
 
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...OutSystems
 
An introduction to microsoft power apps
An introduction to microsoft power appsAn introduction to microsoft power apps
An introduction to microsoft power appsMitul Rana
 
Implementing Microservices by DDD
Implementing Microservices by DDDImplementing Microservices by DDD
Implementing Microservices by DDDAmazon Web Services
 
Управление рисками в проектах
Управление рисками в проектахУправление рисками в проектах
Управление рисками в проектахYaroslav Rashevsky
 
Software Engineering for Web Applications
Software Engineering for Web ApplicationsSoftware Engineering for Web Applications
Software Engineering for Web ApplicationsMoh'd Shakeb Baig
 
Governance - Project Management Office Professional Services
Governance - Project Management Office Professional ServicesGovernance - Project Management Office Professional Services
Governance - Project Management Office Professional ServicesMark S. Mahre
 
OutSystems for Retail Banking: Create a Frictionless Digital Banking Experien...
OutSystems for Retail Banking: Create a Frictionless Digital Banking Experien...OutSystems for Retail Banking: Create a Frictionless Digital Banking Experien...
OutSystems for Retail Banking: Create a Frictionless Digital Banking Experien...OutSystems
 
Intelligent automation appian sathya srinmivasan cwin18-utrecht
Intelligent automation appian sathya srinmivasan cwin18-utrechtIntelligent automation appian sathya srinmivasan cwin18-utrecht
Intelligent automation appian sathya srinmivasan cwin18-utrechtCapgemini
 
Enterprise reference architecture v1.1.ppt
Enterprise reference architecture   v1.1.pptEnterprise reference architecture   v1.1.ppt
Enterprise reference architecture v1.1.pptAhmed Fattah
 

Mais procurados (20)

Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)
 
Proposed Project Management Office
Proposed Project Management OfficeProposed Project Management Office
Proposed Project Management Office
 
Application rationalization- Invest today to save tomorrow!
Application rationalization- Invest today to save tomorrow!Application rationalization- Invest today to save tomorrow!
Application rationalization- Invest today to save tomorrow!
 
Agile Solution Architecture and Design
Agile Solution Architecture and DesignAgile Solution Architecture and Design
Agile Solution Architecture and Design
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystems
 
Domain driven design and model driven development
Domain driven design and model driven developmentDomain driven design and model driven development
Domain driven design and model driven development
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and Microservices
 
The 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeThe 4-Layer Architecture in Practice
The 4-Layer Architecture in Practice
 
Angular
AngularAngular
Angular
 
How to Assess the Maturity of your PMO
How to Assess the Maturity of your PMOHow to Assess the Maturity of your PMO
How to Assess the Maturity of your PMO
 
Lean Business Architecture
Lean Business ArchitectureLean Business Architecture
Lean Business Architecture
 
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
 
An introduction to microsoft power apps
An introduction to microsoft power appsAn introduction to microsoft power apps
An introduction to microsoft power apps
 
Implementing Microservices by DDD
Implementing Microservices by DDDImplementing Microservices by DDD
Implementing Microservices by DDD
 
Управление рисками в проектах
Управление рисками в проектахУправление рисками в проектах
Управление рисками в проектах
 
Software Engineering for Web Applications
Software Engineering for Web ApplicationsSoftware Engineering for Web Applications
Software Engineering for Web Applications
 
Governance - Project Management Office Professional Services
Governance - Project Management Office Professional ServicesGovernance - Project Management Office Professional Services
Governance - Project Management Office Professional Services
 
OutSystems for Retail Banking: Create a Frictionless Digital Banking Experien...
OutSystems for Retail Banking: Create a Frictionless Digital Banking Experien...OutSystems for Retail Banking: Create a Frictionless Digital Banking Experien...
OutSystems for Retail Banking: Create a Frictionless Digital Banking Experien...
 
Intelligent automation appian sathya srinmivasan cwin18-utrecht
Intelligent automation appian sathya srinmivasan cwin18-utrechtIntelligent automation appian sathya srinmivasan cwin18-utrecht
Intelligent automation appian sathya srinmivasan cwin18-utrecht
 
Enterprise reference architecture v1.1.ppt
Enterprise reference architecture   v1.1.pptEnterprise reference architecture   v1.1.ppt
Enterprise reference architecture v1.1.ppt
 

Semelhante a Blue Green Sitecore Deployments on Azure

Sitecore 8.2 Update 1 on Azure Web Apps
Sitecore 8.2 Update 1 on Azure Web AppsSitecore 8.2 Update 1 on Azure Web Apps
Sitecore 8.2 Update 1 on Azure Web AppsRob Habraken
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702Jess Coburn
 
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB AtlasMongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB AtlasMongoDB
 
Denver SQL Saturday The Next Frontier
Denver SQL Saturday The Next FrontierDenver SQL Saturday The Next Frontier
Denver SQL Saturday The Next FrontierKellyn Pot'Vin-Gorman
 
AUSPC 2013 - Understanding the Five Layers of SharePoint Security
AUSPC 2013 - Understanding the Five Layers of SharePoint SecurityAUSPC 2013 - Understanding the Five Layers of SharePoint Security
AUSPC 2013 - Understanding the Five Layers of SharePoint SecurityMichael Noel
 
Sitecore9 key features by jitendra soni - Presented in Sitecore User Group UK
Sitecore9 key features by jitendra soni - Presented in Sitecore User Group UKSitecore9 key features by jitendra soni - Presented in Sitecore User Group UK
Sitecore9 key features by jitendra soni - Presented in Sitecore User Group UKJitendra Soni
 
PowerShell DSC - State of the Art & Community by Gael Colas
PowerShell DSC - State of the Art & Community by Gael ColasPowerShell DSC - State of the Art & Community by Gael Colas
PowerShell DSC - State of the Art & Community by Gael ColasUK DevOps Collective
 
Azure - Data Platform
Azure - Data PlatformAzure - Data Platform
Azure - Data Platformgiventocode
 
IBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the CloudIBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the CloudAndrew Coleman
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithMarkus Eisele
 
Azure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish KalamatiAzure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish KalamatiGirish Kalamati
 
More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)Michael Collier
 
12 Things about Oracle WebLogic Server 12c
12 Things	 about Oracle WebLogic Server 12c12 Things	 about Oracle WebLogic Server 12c
12 Things about Oracle WebLogic Server 12cGuatemala User Group
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsTeamstudio
 
Azure Nights August2017
Azure Nights August2017Azure Nights August2017
Azure Nights August2017Michael Frank
 
Sql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su AzureSql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su AzureMarco Obinu
 
SQLCAT: A Preview to PowerPivot Server Best Practices
SQLCAT: A Preview to PowerPivot Server Best PracticesSQLCAT: A Preview to PowerPivot Server Best Practices
SQLCAT: A Preview to PowerPivot Server Best PracticesDenny Lee
 
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...SpanishPASSVC
 

Semelhante a Blue Green Sitecore Deployments on Azure (20)

A to z for sql azure databases
A to z for sql azure databasesA to z for sql azure databases
A to z for sql azure databases
 
Sitecore 8.2 Update 1 on Azure Web Apps
Sitecore 8.2 Update 1 on Azure Web AppsSitecore 8.2 Update 1 on Azure Web Apps
Sitecore 8.2 Update 1 on Azure Web Apps
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702
 
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB AtlasMongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
 
Copy Data Management for the DBA
Copy Data Management for the DBACopy Data Management for the DBA
Copy Data Management for the DBA
 
Denver SQL Saturday The Next Frontier
Denver SQL Saturday The Next FrontierDenver SQL Saturday The Next Frontier
Denver SQL Saturday The Next Frontier
 
AUSPC 2013 - Understanding the Five Layers of SharePoint Security
AUSPC 2013 - Understanding the Five Layers of SharePoint SecurityAUSPC 2013 - Understanding the Five Layers of SharePoint Security
AUSPC 2013 - Understanding the Five Layers of SharePoint Security
 
Sitecore9 key features by jitendra soni - Presented in Sitecore User Group UK
Sitecore9 key features by jitendra soni - Presented in Sitecore User Group UKSitecore9 key features by jitendra soni - Presented in Sitecore User Group UK
Sitecore9 key features by jitendra soni - Presented in Sitecore User Group UK
 
PowerShell DSC - State of the Art & Community by Gael Colas
PowerShell DSC - State of the Art & Community by Gael ColasPowerShell DSC - State of the Art & Community by Gael Colas
PowerShell DSC - State of the Art & Community by Gael Colas
 
Azure - Data Platform
Azure - Data PlatformAzure - Data Platform
Azure - Data Platform
 
IBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the CloudIBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the Cloud
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
Azure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish KalamatiAzure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish Kalamati
 
More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)
 
12 Things about Oracle WebLogic Server 12c
12 Things	 about Oracle WebLogic Server 12c12 Things	 about Oracle WebLogic Server 12c
12 Things about Oracle WebLogic Server 12c
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational Controls
 
Azure Nights August2017
Azure Nights August2017Azure Nights August2017
Azure Nights August2017
 
Sql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su AzureSql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su Azure
 
SQLCAT: A Preview to PowerPivot Server Best Practices
SQLCAT: A Preview to PowerPivot Server Best PracticesSQLCAT: A Preview to PowerPivot Server Best Practices
SQLCAT: A Preview to PowerPivot Server Best Practices
 
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
 

Último

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 

Último (20)

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 

Blue Green Sitecore Deployments on Azure

  • 1. Rob Habraken | Technical Manager, Consultant & Sitecore MVP
  • 2. Sitecore 8.2 on Azure Web Apps
  • 3. Familiarity of Windows Built on .NET, Sitecore uses the technology that your IT department already knows. Infinite scalability Easily scales up and down as demand changes.* Rapidly deploy Sitecore on Azure without worrying IT. Speed to market The only enterprise- grade cloud Microsoft Azure ensures that Sitecore® Experience Database™ is secure. Always on Never miss a beat; always be there for your customers. Interoperability Integrates seamlessly with your existing back-end systems and marketing investments. Accident protection Reliable and redundant copies of your data and automatic failover protection. Pay-as-you-go Only pay for the power and capacity you’re using.* *Customers will need to ensure the proper number of content delivery servers from Sitecore to meet scaling requirements.
  • 4. Virtual Machines Cloud Services Web Apps Azure hosting options Control Support of legacy apps Ease of management Agility • Web Apps is the new PaaS standard with more agility & easier to manage • Web Apps were previously marketed as a SaaS solution, but is now considered to be PaaS • Sitecore is using additional SaaS services to complete the installation Azure Module Sitecore 8.2-1
  • 5.
  • 7. • ARM (Azure Resource Manager) templates are an Azure standard using JSON • Delivered by Sitecore as a starting point for your own custom provisioning • Enables you to define one or more Azure resources including dependencies between deployed resources • Can be used for initial provision or as continuous deployment • Use Web Deploy and DACPAC packages to setup site & databases
  • 8. The road to the ultimate Continuous Deployment setup
  • 9. • What do we need more for a good CI/CD setup? • How to edit and extend the provided ARM templates? • What are the pitfalls and black holes in blue / green provisioning?
  • 10. Streamlining your Cloud deployments
  • 11. • Clean install per deployment, based on vanilla Sitecore install • Keep database content and only deploy new / changed items • Don’t disturb live site with deployment process or new content • Option to rollback deployment upon failure • Repeatable process, fully automated
  • 12. Sitecore gives you handy ARM templates for the different sizings, but they’re a head start only; you will run into some issues • You cannot re-provision an environment, having to deploy over an existing web app, being unable to remove files • It doesn’t provision staging slots to deploy while keeping your current version up & running • It doesn’t tell you how to re-provision without overwriting your database with content you want to keep
  • 13. • Roll out your infrastructure first, like resource groups, databases, hosting plans and slots • Then, provision a vanilla Sitecore install into your staging slot (this step includes installing databases and vanilla content) • Then, create a repeatable re-provisioning step, provisioning a vanilla Sitecore install into your staging slot, without databases! (this actually wipes your staging slot each time your provision) • Deploy your own solution over the staging slot & swap when ready
  • 15. Web roles Health Monitoring Databases SearchCollection Database Session State 2. Provision vanilla Sitecore: Sitecore into staging slot, default content
  • 17. Web roles Health Monitoring Databases SearchCollection Database Session State 3. Re-provision without database: Wipes slot, installs new files, keeping content
  • 19.
  • 21. • Split infra and msdeploy parts, so we can re-provision! • Use output parameters to stitch templates together • Add staging slots (default provisioning & deployment target) • Upgrade minimum SKU configuration to support slots • Add a databaseless SCWDP and provision for re-provisioning
  • 22. • ARM splitting • output parameters • staging slots
  • 23. • The Sitecore Web Deploy Packages you can download from Sitecore contain vanilla databases, but you don’t want them to overwrite your own Sitecore content while re-provisioning • You have to strip the databases from the different SCWDPs • You can do that using msdeploy, deploying from one zip archive (SCWDP) to another, using the skip dbFullSQL & skip dbDacFx parameters!
  • 24. • Get the parameters.xml file out of the SCWDP; it contains all the info about the required parameters to deploy that package • Invoke msdeploy with the -skip:objectName=dbFullSql and -skip:objectName=dbDacFx parameters • Add all additional parameters required by the specific SCWDP
  • 25. msdeploy -verb:sync -source:package="D:DataInetpubazurexp0-singleSitecore 8.2 rev. 161221_single.scwdp.zip" - dest:package="D:DataInetpubazurexp0-singleSitecore 8.2 rev. 161221_single-nodb.scwdp.zip" -declareparamfile="D:DataInetpubazurexp0- singleparameters.xml" -skip:objectName=dbFullSql -skip:objectName=dbDacFx -setparam:"Sitecore Admin New Password"=“giLvgjMXG0D9CuKYKctA" - setparam:"Core DB User Name"="single-core-sitecore-msdeploy-user" -setparam:"Core DB Password"="TWsxzkGQ5VrPT@7znJDe9NkFFtG" -setparam:"Master DB User Name"="single-master-sitecore-msdeploy-user" -setparam:"Master DB Password"="xgMR7p6dmLYdL@7znJDe9NkFFtG" -setparam:"Web DB User Name"="single-web- sitecore-msdeploy-user" -setparam:"Web DB Password"="B3j0tnNXVBoS6@7znJDe9NkFFtG" -setparam:"Reporting DB User Name"="single-reporting-sitecore- msdeploy-user" -setparam:"Reporting DB Password"="0dURnXD5T93f@7znJDe9NkFFtG" -setparam:"Core Admin Connection String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-sql.database.windows.net,1433;Initial Catalog=azure-rg-core-db;User Id=xp0- single-sql;Password=a6CmAkgOyY236ctkzsNx;" -setparam:"Core Connection String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg- sql.database.windows.net,1433;Initial Catalog=azure-rg-core-db;User Id=single-core-sitecore-msdeploy-user;Password=TWsxzkGQ5VrPT@7znJDe9NkFFtG;" - setparam:"Master Admin Connection String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-sql.database.windows.net,1433;Initial Catalog=azure-rg-master-db;User Id=xp0-single-sql;Password=a6CmAkgOyY236ctkzsNx;" -setparam:"Master Connection String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-sql.database.windows.net,1433;Initial Catalog=azure-rg-master-db;User Id=single-master-sitecore-msdeploy-user;Password=xgMR7p6dmLYdL@7znJDe9NkFFtG;" -setparam:"Web Admin Connection String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-web-sql.database.windows.net,1433;Initial Catalog=azure-rg-web-db;User Id=xp0- single-sql;Password=a6CmAkgOyY236ctkzsNx;" -setparam:"Web Connection String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-web- sql.database.windows.net,1433;Initial Catalog=azure-rg-web-db;User Id=single-web-sitecore-msdeploy-user;Password=B3j0tnNXVBoS6@7znJDe9NkFFtG;" - setparam:"Reporting Admin Connection String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-sql.database.windows.net,1433;Initial Catalog=azure-rg-reporting-db;User Id=xp0-single-sql;Password=a6CmAkgOyY236ctkzsNx;" -setparam:"Reporting Connection String"="Encrypt=True;TrustServerCertificate=False;Data Source=azure-rg-sql.database.windows.net,1433;Initial Catalog=azure-rg-reporting-db;User Id=single-reporting-sitecore-msdeploy-user;Password=0dURnXD5T93f@7znJDe9NkFFtG;" -setparam:"Analytics Connection String"="mongodb://mlab- azure:mM8kY7jD6JkDUykx6D2y@ds123456.mlab.com:12345/analytics" -setparam:"Tracking Live Connection String"="mongodb://mlab- azure:mM8kY7jD6JkDUykx6D2y@ds123456.mlab.com:12345/tracking-live" -setparam:"Tracking History Connection String"="mongodb://mlab- azure:mM8kY7jD6JkDUykx6D2y@ds123456.mlab.com:12345/analytics-history" -setparam:"Tracking Contact Connection String"="mongodb://mlab- azure:mM8kY7jD6JkDUykx6D2y@ds123456.mlab.com:12345/tracking-contact" -setparam:"Cloud Search Connection String"="serviceUrl=https://azure-rg- as.search.windows.net;apiVersion=2015-02-28;apiKey=A6836C6EBBA68675D558336C6EBBA686" -setparam:"Application Insights Instrumentation Key"="ecc59b93- 57eb-4c89-1264-945b2ae914f6" -setparam:"Application Insights Role"="Single" -setparam:"License XML"="." -setparam:"IP Security Client IP"="0.0.0.0" - setparam:"IP Security Client IP Mask"="0.0.0.0" …and it would be different for each environment & instance role! PS: these are all fake credentials, of course ;-)
  • 26. • The real config values don’t have to be in the target package • Actually, you don’t want them in there: • A package should be re-usable among environment • For security reasons, it shouldn’t contain the actual credentials • They would be overwritten by the ARM provisioning anyway • Use PowerShell to automate the creation and execution of the command, based on the parameters.xml file
  • 27. [CmdletBinding()] Param( [Parameter(Mandatory=$True)] [string]$PackagePath, [Parameter(Mandatory=$True)] [string]$ParamFile, [Parameter(Mandatory=$False)] [string]$PackageDestinationPath = $($PackagePath).Replace(".scwdp.zip", "-nodb.scwdp.zip") ) $msdeploy = "C:Program FilesIISMicrosoft Web Deploy V3msdeploy.exe" $verb = "-verb:sync" $source = "-source:package=`"$PackagePath`"" $destination = "-dest:package=`"$($PackageDestinationPath)`"" $declareParamFile = "-declareparamfile=`"$($ParamFile)`"" $skipDbFullSQL = "-skip:objectName=dbFullSql" $skipDbDacFx = "-skip:objectName=dbDacFx" # read parameter file [xml]$paramfile_content = Get-Content -Path $ParamFile $paramfile_paramnames = $paramfile_content.parameters.parameter.name $params = "" foreach($paramname in $paramfile_paramnames){ $tmpvalue = "tmpvalue" if($paramname -eq "License Xml"){ $tmpvalue = "LicenseContent"} if($paramname -eq "IP Security Client IP"){ $tmpvalue = "0.0.0.0"} if($paramname -eq "IP Security Client IP Mask"){ $tmpvalue = "0.0.0.0"} $params = "$params -setParam:`"$paramname`"=`"$tmpvalue`"" } # create new package Invoke-Expression "& '$msdeploy' --% $verb $source $destination $declareParamFile $skipDbFullSQL $skipDbDacFx $params"
  • 29. • Re-provision using msdeploy ARM and db-less SCWDP • Deploy to the staging slot using VSTS (for example) • Test & warm up your new site • Swap slots
  • 30.
  • 31. • Do you have custom role specific configuration (CM/CD/REP/PRC)? • Don’t transform them in your Solution, use cargo payloads! • For more info on this topic, check out this article by Bas Lijten: http://blog.baslijten.com/sitecore-on-azure-create-custom-web- deploy-packages-using-the-sitecore-azure-toolkit/
  • 32. What could go wrong
  • 33. • Use shared access signatures (SAS) to access your SCWDPs • You are not allowed to publicly expose Sitecore software downloads • You do not want to share your base install, possibly including configs • Add IP security to all testing and acceptance environments • You can copy IP security setup from the XP CM role • I have added this to the XP0-single templates, using it for test mainly • Use Azure Key Vault to store your keys and passwords
  • 34. • Set your container access to private • Generate a SAS token and add it to your package URL
  • 35. • Add “.scm” to resource URL or access via Portal • Browse through files, view or edit them (debugging only!) • Execute PowerShell • View Processes • Etc.
  • 36. • EventQueue issue: the staging slot creates an extra CM role, which could introduce concurrency issues with your production slot CM • Indexing: if you do blue green deployments using an extra web database, please take in mind that your Azure Search already updates your indexes based on the new master content! • Content stop: if you want to avoid conflicts, content editors should not publish during deployments (although than can continue working on the master database); if you want to deploy continuously, this can be a huge disturbance for editors
  • 37.
  • 38. • Sitecore will release a new set of ARM templates shortly, containing a few aspects we’ve seen today, and more: • Nested templates • Splitting infra & application • Module support (add-ons) • Staging and databaseless re-provisioning? Check my repository • Always use them as a boilerplate to create your own templates!
  • 39. • Blog on Azure Cloud Services – deprecated! http://sitecore.robhabraken.nl/index.php/2229/sitecore-azure/ • First blog of my series on Azure Web Apps http://sitecore.robhabraken.nl/index.php/2407/an-introduction-to-sitecore-on-azure-web-apps/ • An comprehensive introduction to Sitecore on Azure Web Apps https://www.robhabraken.nl/index.php/2622/sitecore-8-2-1-on-azure-web-apps/ • Automated scaling using PowerShell https://www.robhabraken.nl/index.php/2658/saving-costs-by-scaling-down/ • One of the issues of staging on a shared master database https://www.robhabraken.nl/index.php/2683/the-staging-slot-eventqueue-issue/
  • 40. • Download my demo scripts & ARM templates https://github.com/robhabraken/Sitecore-Azure-Scripts • A blog post, including recordings of this session, will follow shortly on my Sitecore blog https://www.robhabraken.nl/