Sitefinity Performance and Architecture

Slides:



Advertisements
Similar presentations
Module 13: Performance Tuning. Overview Performance tuning methodologies Instance level Database level Application level Overview of tools and techniques.
Advertisements

Database Architectures and the Web
SSRS 2008 Architecture Improvements Scale-out SSRS 2008 Report Engine Scalability Improvements.
MS CRM Integration WhosOn Service Integration Presentation MS CRM User Group.
Virtual techdays INDIA │ September 2011 High Availability - A Story from Past to Future Balmukund Lakhani │ Technical Lead – SQL Support, Microsoft.
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
Effort in hours Duration Over Weeks Or Months Inception Launch Web Lifecycle Methodology Maintenance Phases Copyright Wonderlane Studios.
Sitefinity CMS Overview
Overview SAP Basis Functions. SAP Technical Overview Learning Objectives What the Basis system is How does SAP handle a transaction request Differentiating.
Module 16: Software Maintenance Using Windows Server Update Services.
Microsoft ® Official Course Monitoring and Troubleshooting Custom SharePoint Solutions SharePoint Practice Microsoft SharePoint 2013.
Pricing Changes MSDN subscriptions Stand- alone tool Team collaboration Release management Visual Studio Team Foundation Server Device CAL Visual Studio.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Automate Microsoft Azure Ross Sponholtz Mark Ghazai.
OM. Brad Gall Senior Consultant
Best Practices in Moodle Administration Best Practices in Moodle Administration A variety of topics from technical to practical Jonathan Moore Vice President.
Boston Bootcamp April 27 th, 2013 Azure Websites Udaiappa Ramachandran ( Udai
Visual Studio 2012 or 2013 VisualStudio.com (or) Github (or) Bitbucket (or more) Azure Cross-Platform Command Tools Setup if you want to play too.
Maintaining a Microsoft SQL Server 2008 Database SQLServer-Training.com.
Windows Azure Team 9 Ben Holland Bao Nguyen Eric Petrowiak Barret Schloerke.
Implementing Update Management
Nir Mashkowski Group Program Manager Azure websites.
Cloud Computing & Amazon Web Services – EC2 Arpita Patel Software Engineer.
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Partner Practice Enablement - Overview This session will focus on integration strategies for applications deployed using Microsoft Azure Websites and Microsoft.
SURENDER SARA 10GAS Building Corporate KPI’s
Dev and Test Environments in the Cloud
Windows Small Business Server 2003 Setting up and Connecting David Overton Partner Technical Specialist.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
Learningcomputer.com SQL Server 2008 – Profiling and Monitoring Tools.
Module 13 Implementing Business Continuity. Module Overview Protecting and Recovering Content Working with Backup and Restore for Disaster Recovery Implementing.
Website s Azure Websites is an enterprise class cloud solution for developing, testing and running web apps. Azure Websites allows you to focus on what.
4/24/2017 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
IOS and Android with Windows Azure Websites Name Title Address Website.
DEV333 Instrumenting Applications for Manageability with the Enterprise Instrumentation Framework David Keogh Program Manager Visual Studio Enterprise.
Automating Operational and Management Tasks in Microsoft Operations Management Suite and Azure
Hybrid Cloud and Windows Server 2003 end of support on Azure Rod Kruetzfeld Data Center Technical Strategist Microsoft Canada.
Intro to Datazen.
Learningcomputer.com SQL Server 2008 – Management Studio.
Multi-Tier Apps with Admin Access, RDP, Custom Installs Modern Scalable Web Sites Full Windows Server/Linux VMs Web Sites Virtual Machines Cloud Services.
IPS Infrastructure Technological Overview of Work Done.
Building Cloud Solutions Presenter Name Position or role Microsoft Azure.
SQL Server 2012 Session: 1 Session: 4 SQL Azure Data Management Using Microsoft SQL Server.
Building web applications with the Windows Azure Platform Ido Flatow | Senior Architect | Sela | This session.
Copyright © New Signature Who we are: Focused on consistently delivering great customer experiences. What we do: We help you transform your business.
The best of WF 4.0 and AppFabric Damir Dobric MVP-Connected System Developer Microsoft Connected System Division Advisor Visual Studio Inner Circle member.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
WINDOWS AZURE AND THE HYBRID CLOUD. Hybrid Concepts and Cloud Services.
TFS Training TFS Training. Introduction to Team Foundation Server Team Foundation Server Team Foundation Server is a Microsoft product which provides.
AlwaysOn In SQL Server 2012 Fadi Abdulwahab – SharePoint Administrator - 4/2013
FUN WITH AVAILABILITY GROUPS Christopher Wolff SQL Server Database Engineer, Xero.
OSIsoft High Availability PI Replication Colin Breck, PI Server Team Dave Oda, PI SDK Team.
SQL Database Management
Connected Infrastructure
Blue Mixology.
Example of a page header
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
Microsoft SharePoint Server 2016
Connected Infrastructure
Building Applications with Windows Azure and SQL Azure
Exam VCE Questions
Database Driven Websites
SharePoint Online Hybrid – Configure Outbound Search
Developing Microsoft Azure Solutions Jump Start
5 Azure Services Every .NET Developer Needs to Know
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Office 365 Development July 2014.
Mark Quirk Head of Technology Developer & Platform Group
Designing Database Solutions for SQL Server
Presentation transcript:

Sitefinity Performance and Architecture Christopher Peck, Sales Engineer June 4, 2015

Overview Performance and Monitoring Deployment Architecture Development Considerations Client Side Server Side Tools Page Pre-Compilation Diagnostics Module Useful Customizations and Practices Custom Trace Listeners Web Test Runner Deployment Architecture System Requirements Common Setup Scenarios Deployment

Development Considerations Client Side Cache results from jQuery Selectors Server Side Use paging and filtering Use LINQ deferred Execution (Most of the time.)

Cache results from jQuery Selectors Selecting an element with jQuery traverses the DOM tree DOM traversal can be expensive If we use an selector more than once it should be cached. var highlightedItems = $(li.highlighted); highlightedItems.click( function () { highlightedItems.removeClass("highlighted"); highlightedItems.addClass("otherClass"); });

Use Paging and Filtering The API supports paging and filtering. App.WorkWith().NewsItems().Get().Skip(40).Take(20); Use these options to cut down on data loaded into memory and limit load on the connection to the database

Use LINQ deferred Execution (Most of the time.) The API returns IQueryables so we can shift processing to the database server and use deferred execution. Use of ToList() will force the query to execute. This often results in getting too much data from the database and using too much memory on our web server. (Caveat: Sometimes we need to force a query to save an N+1 query later.)

Tools Page Pre-Compilation Diagnostics Module Helps pages load faster when requested for the first time Reduces processor load Skips the warm-up phase when a site is deployed. Diagnostics Module Operation Run Times N+1 Query Problems Custom Reports

Demo Diagnostics Module

Diagnostics Module Operation Run Times N+1 Query Problems See services used, the database calls they are making, and duration N+1 Query Problems Tool highlights potential N+1 Queries Lazy loading is great, but be aware of when we need to force prefetching. Try projection strategies to denormalize and preload. Custom Reports RunBigResultSetAnalysis See operations that fetched a significant amount of records RunLongQueryAnalysis See operations that took a long time to run

Useful Customizations from the SDK Custom Trace Listeners Log errors to external systems (e.g. Raygun.io) Web Test Runner Run Integration Tests with Sitefinity.

Demo Trace Listener and Web Test Runner

Basic Architecture Diagram (Single Level) Notes: A simple diagram of the simplest setup commonly seen in a production environment. Two servers: one web and one database

Simplified Architecture Diagram Notes: Common architecture with databases removed for clarity. Staging and Development may share a database server. Generally production should have a completely separate database server.

Content Flow Detail A content author creates content in staging which is stored in the staging database. On site sync, data is pulled from the database and transferred to the production server which in turn stores the content in the production database.

Code Flow Deployment Strategy

Code Deployment Source Control Automated Deployment git TFS and Visual Studio Online Automated Deployment Visual Studio Online TeamCity Octopus Deploy

Site Synchronization Fluent API Using Statement using Telerik.Sitefinity.SiteSync; Facade App.WorkWith().SiteSync() Select Target Server .SelectTarget("http://targetserver") Select Target Sites (Multisite) .SetSites("site1", "site2", ...) Sync a content types .Sync(typeof(NewsItem).FullName, ...) Sync a specific content item for a specific language .Sync(newsItem, CultureInfo.CurrentCulture) Schedule the sync for later (Cron format) .ScheduleSync(“30 15 5 3 * 2015”, typeof(NewsItem).FullName, …)

Production – Infrastructure Diagram 1(Simple w/ HW LB) Notes: Common On Premise Simplified Setup

Production – Infrastructure Diagram 2(Simple w/ SW LB) Notes: Common in On Premise or In Cloud Would be suitable for Both AWS and Azure

Production – Infrastructure Diagram 3(Simple w/ Azure) Notes: When using Sitefinity on Azure Cloud Services in a load-balanced scenario (including Auto Scaling) you do not need to configure Sitefinity for Load Balancing. Sitefinity uses the Windows Azure API  to automatically identify the web role instances that must be messaged to invalidate the cache dependencies.

Advantages of Azure Database: SQL Azure Built in point in time and various levels of geo- restore in case of geographic outages Web Servers: Azure Cloud Services Automatic use of Azure load balancing is built into Sitefinity

Load Balancing Support both hardware and software load balancing If running in non-Azure environment load balancing addon must be configured on each web server. Load Balancing addon invalidates caches on updates to content.

Staging and Development Suggestions If using a hosting service the UAT/Staging environment should use the same hosting provider to mirror production as closely as possible It is common to see Staging and Dev share a database server (Different databases/schemas) for cost reasons. We also generally see Dev as a code testing area only with content being added on Staging. Occasionally see 4 tier deployments with QA coming after Staging.

Project Assessment Services We can help you optimize the stability, performance and user experience of your Sitefinity project: We’ll validate your technical solution design Our developers will profile a copy of your project We’ll analyze its code for any deviations from best practices You will get a list of recommendations that will help you introduce optimizations and deliver the project successfully Project Assessment If your Sitefinity implementation isn’t delivering against expectations we can help you optimize and improve the stability and performance of your project and deliver it successfully.   How it works? Our developers will profile a copy of your project and will analyze its code for any deviations from best practices aiming to build a list of recommendations to optimize performance, stability and user experience We will provide a report of our findings, which will include technical issues discovered during the review. The report will incorporate documentation on how to resolve the issues. If resolution is impossible, Telerik may provide potential workarounds. Project deliverables may also include software artifacts, such as configuration files or code, which include fixes for technical issues. Telerik will also conduct an online presentation of its finding and present it to stakeholders Why should I use it? If your timeline is tight and the same time the expectations for the project are high, we can help you deliver. The issues teams struggle with vary a lot - this may be vary from unpleasant user experience to issues like slow performance and even stability issues that lead to downtime. In such situations, you need a timely and reliable way to identify the cause for the issues and eliminate it and protect the success of the project and we are there to use our insider knowledge of Sitefinity and give you the answers you need What’s the average engagement in terms of professional service hours? Project audits may have different goals and projects are also different, resulting in broad range of possible hours to complete an audit. A typical audit might take between 20 to 80 hours

Links: System Requirements Hardware Recommendations http://docs.sitefinity.com/system-requirements Hardware Recommendations http://docs.sitefinity.com/hosting-recommendations Sitefinity and Azure http://docs.sitefinity.com/deploy-projects-to-windows-azure Site Synchronization http://docs.sitefinity.com/synchronize-data-between-two-servers Load Balancing http://docs.sitefinity.com/load-balancing Azure SQL Disaster Recovery https://msdn.microsoft.com/en-us/library/azure/hh852669.aspx