to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to...

42
Rob Habraken | Technical Manager, Consultant & Sitecore MVP

Transcript of to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to...

Page 1: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

Rob Habraken | Technical Manager, Consultant & Sitecore MVP

Page 2: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

to Azure Web Apps

Page 3: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

from version 8.2 Update 1 Sitecorewill support Azure App Service Web Apps!The current estimation is that thisupdate will come available early November.

After a few delays, 8.2 Update 1 was launched on December 5th

This presentation and demo is mostly based on my early access preview, everything is rather new and we’re still learning :-)

Marketplace and ARM templates became available yesterday

Page 4: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

Familiarity of Windows

Built on .NET, Sitecore uses the technology that your IT department already knows.

Infinite scalabilityEasily 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 onNever miss a beat; always be there for your customers.

Interoperability Integrates seamlessly with your existing back-end systems and marketing investments.

Accident protectionReliable and redundant copies of your data and automatic failover protection.

Pay-as-you-goOnly 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.

Page 5: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

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

Page 6: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Cloud Services had the Azure Module (now deprecated), but required a lot of custom configurations and additional work in your solution

• It is more work to get Sitecore 8.2.1 up and running locally then deploying it to the Cloud in Azure Web Apps

• Sitecore now provides boilerplate provisioning scripts for all different seats (xP1, xP2, xM1etc.) and also gives sizing advices for all services and instances

Page 7: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Custom deployment

• Deployment takes 20 ~ 45 minutes per instance

• No automatic scaling without third party services

• Doesn’t support all modules (WFFM, EXM)

• Cumbersome maintenance

• Out of the box provisioning & default deployment techniques

• Deploy once per server type

• Scaling is an easy native Azure feature

• Will (eventually) support all Sitecore modules

• Very easy to maintain & monitor

Cloud Services Web Apps

Page 8: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Custom deployment

• Deployment takes 20 ~ 45 minutes per instance

• No automatic scaling without third party services

• Doesn’t support all modules (WFFM, EXM)

• Cumbersome maintenance

• Out of the box provisioning & default deployment techniques

• Deploy once per server type

• Scaling is an easy native Azure feature

• Will (eventually) support all Sitecore modules

• Very easy to maintain & monitor

Cloud Services Web Apps

Page 9: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own
Page 10: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

Sitecore using Web Apps

Page 11: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

Web Apps

Separate Web Apps to host the web site roles (CM, CD, Processing etc).

Each Web App is placed in its own App Service Plan to enable it to scale separately.

Azure Search

Sitecore uses Azure Search as its default search engine.

Azure Search is a fully managed search-as-a-service that offers scalable full-text search.

Application Insights

Used for all Health Monitoring needs, like searching for all Sitecore logs, performance counters & custom telemetry.

No local log files anymore!

Azure SQL

Sitecore uses Azure SQL to store all of its content and analytics databases. Databases can be split across management and delivery database servers.

mongoDB

The collection database (MongoDB) is the primary storage for all analytics information and the registry of contacts and engagement automation states.

Use a VM hosting mongoDB or use mLab.

Azure Redis Cache

Sitecore uses Azure Redis Cache as its default session state backend, used to store information from active visitors to be used by the content delivery and personalization process.

Page 12: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own
Page 13: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

DeliveryServersVisitors

AuthorsManagement

Servers

Content ManagementDatabases

Health Monitoring

Content DeliveryDatabases

ProcessingServers

Search

CollectionDatabase

Session State

ReportingDatabase

ReportingServers

Page 14: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Per instance group you can manually scale out already deployed instances (no extra deploy required)

• No config diffs between instances possible

Page 15: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Scale on metrics using a defined min & max amount of instances

• Always deploy to a single instance in an empty staging slot and scale out afterwards

Page 16: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• You can scale up instance groups simply by clicking the desired plan

Page 17: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

of the new deployment process

Page 18: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Azure Marketplace• Point and click deployment of vanilla Sitecore environment• No technical skills required• BYOL only (Bring your own license), you cannot buy via Marketplace

• ARM Templates & Web Deploy packages• PowerShell based deployment of vanilla or customized Sitecore

environment• Technical skills required

• Both: deploy customizations overtop

Page 19: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• ARM (Azure Resource Manager) templates are anAzure 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

Page 20: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• PowerShell 4.0

• the latest Azure PowerShell CmdLets installed

• .NET Framework 4.6

• A running MongoDB instance

• https://dev.sitecore.net/Downloads/Sitecore_Experience_Platform/82/Sitecore_Experience_Platform_82_Update1.aspx

• https://github.com/Sitecore/Sitecore-Azure-Quickstart-Templates

Page 21: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• A set of modules that provide cmdlets to manage Azure

• Used to create, test, deploy, and manage solutions and services

• Offers same tasks as the Azure Portal, such as creating and configuring cloud services, virtual machines, virtual networks, and web apps.

• Addition: This week Sitecore released an Azure Toolkit withSitecore CmdLets to provision environments & create WDPs

Page 22: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Use the PowerShellGet module https://www.powershellgallery.com/

• Set-ExecutionPolicy -ExecutionPolicy AllSigned

• More info on https://azure.microsoft.com/en-us/documentation/articles/powershell-install-configure/

• And simply run the following commands:

# Install the Azure Resource Manager modules from the PowerShell Gallery

Install-Module AzureRM

# Install the Azure Service Management module from the PowerShell Gallery

Install-Module Azure

Page 23: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Inject your mongoDB connection strings into the ARM template parameter file

• Enter a username and a password for your SQL Azure databases

• Point the PowerShell script delivered by Sitecore to the correct ARM template and its parameter file

• Enter a• name for your resource group

• the location you want to provision Sitecore in

• your Azure Subscription ID

• Run the PowerShell script

Page 24: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

Are you ready for take off?

Page 25: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• I have shown you a straight forward deployment directly from Visual Studio – in a real production scenario you would involve Continuous Integration tooling like TeamCity, VSTS, Octopus Deploy, but that is out of scope of this demo

• If you would create a WDP package and store that, you would have a nice recovery plan, together with the ARM scripts you can automatically re-provision and deploy your whole environment

Page 26: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own
Page 27: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own
Page 28: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Only use geo-replication if you are concerned about an Azure Data Center going offline – default uptime is very high

• You can use all integrations separately & in combination with on premise too (like AI, Search, Redis, SQL)

• Or you can use your own alternative of any of these integrations by patching them in the corresponding config (you don’t have to use them) – like Solr instead of Azure Search

• Consumption based licensing is recommended for moving to Azure Apps

• Staging slots do not count in the server based license model

Page 29: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Web Apps has a max of 8 cores & 14 Gigs of RAM

• Azure Search has a limit of 1000 fields per index

• Azure SQL has a limit of 1TB per database

• Check limitations of required Azure resources upfront

• You might end up having to use an IaaS equivalent

Page 30: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Entire architecture should be stateless

• Cannot install additional software on a server

• No access to registry

• Limited .NET Framework Drawing APIs

• Shared disk among all App Service Plan instances

Page 31: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Web Apps

• Application Insights

• Azure Search

• Azure SQL

• Azure Redis Cache

• mongoDB

• Traffic Manager

Standard S2

Standard

Standard S1

Standard S2

Standard C1

Use service like mLab

Default

Page 32: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

Azure Resources• Azure App Service/Web Apps• Azure SQL• Azure Search• Application Insights• Redis Cache

ARM Templates• XP1• XM1• xDB1

Azure Marketplace• XM1 (Nov 2016)• XP1 (Jan 2017)

Azure Resources• Azure Search Improvements• Application Insights

Improvements

ARM Templates• XP1-5• XM1-5• xDB1-5

Also on the Azure Marketplace

Supported Products• Sitecore Commerce• WFFM• FxM• SxA• ExM

Enhancements• Application Compatibility

Sitecore 8.2 Update 1 Sitecore 8.2 Update X Sitecore 8.3

Page 33: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

On the road to the ultimate Sitecore setup

Page 34: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Blog on Azure Cloud Services – deprecated!http://sitecore.robhabraken.nl/index.php/2229/sitecore-azure/

• First blog of my series on Azure Web Appshttp://sitecore.robhabraken.nl/index.php/2407/an-introduction-to-sitecore-on-azure-web-apps/

Page 35: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Sitecore 8.2.1 on Web Apps blog post about all I’ve shown here (early December)

• The Ultimate Continuous Delivery for Sitecore Web Apps

• Building and setting up a showcase development environment with fellow Sitecore devs, which we will share in the community

Page 36: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Azure Marketplacehttps://azure.microsoft.com/en-us/marketplace/

• ARM Templateshttps://azure.microsoft.com/en-us/documentation/articles/resource-group-authoring-templates/

• Web Deploy packageshttps://www.iis.net/learn/publish/using-web-deploy/introduction-to-web-deploy

Page 37: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Azure SQL Geo-Replicationhttps://azure.microsoft.com/en-us/documentation/articles/sql-database-geo-replication-overview/

• Azure Search Capacity Planninghttps://azure.microsoft.com/en-us/documentation/articles/search-capacity-planning/

• MongoDB Replicationhttps://docs.mongodb.com/manual/replication/

Page 38: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Web Appshttps://channel9.msdn.com/events/Build/Build-Tour-2016-Toronto/Web-Apps

• Application Insightshttps://channel9.msdn.com/events/Visual-Studio/Connect-event-2015/603

• Azure Searchhttps://channel9.msdn.com/events/Visual-Studio/Connect-event-2014/421

Page 39: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• App Service Limitationshttps://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/#app-service-limits

• Azure Search limitationshttps://azure.microsoft.com/en-us/documentation/articles/search-limits-quotas-capacity/

• Azure SQL limitationshttps://azure.microsoft.com/en-us/documentation/articles/sql-database-resource-limits/

Page 40: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Azure Redis limitationshttps://azure.microsoft.com/en-us/pricing/details/cache/

• App Insights limitationshttps://azure.microsoft.com/en-us/documentation/articles/app-insights-pricing/#limits-summary

• Azure Products availability by regionhttps://azure.microsoft.com/en-us/regions/services/

Page 41: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Introduction to Remote Debugging on Azure Web Siteshttps://azure.microsoft.com/en-us/blog/introduction-to-remote-debugging-on-azure-web-sites/

• Troubleshoot a web app in Azure App Service using Visual Studiohttps://docs.microsoft.com/en-us/azure/app-service-web/web-sites-dotnet-troubleshoot-visual-studio#remotedebug

• Debugging an Azure cloud service or virtual machine in Visual Studiohttps://docs.microsoft.com/en-us/azure/vs-azure-tools-debug-cloud-services-virtual-machines#debug-a-cloud-service-in-azure

Page 42: to Azure Web Apps - SUG NL/media/SUGNL/Meetings/SUGNL meeting... · Web Apps Separate Web Apps to host the web site roles (CM, CD, Processing etc). Each Web App is placed in its own

• Set up staging environments for web apps in Azure App Servicehttps://azure.microsoft.com/en-us/documentation/articles/web-sites-staged-publishing/

• Azure Web App sandboxhttps://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox