Building Highly Scalable Websites Karol Jarkovsky Sr. Solution Architect

Slides:



Advertisements
Similar presentations
Enabling Secure Internet Access with ISA Server
Advertisements

Module 13: Performance Tuning. Overview Performance tuning methodologies Instance level Database level Application level Overview of tools and techniques.
WEB DESIGN TABLES, PAGE LAYOUT AND FORMS. Page Layout Page Layout is an important part of web design Why do you think your page layout is important?
Cookies, Sessions. Server Side Includes You can insert the content of one file into another file before the server executes it, with the require() function.
CHAPTER 15 WEBPAGE OPTIMIZATION. LEARNING OBJECTIVES How to test your web-page performance How browser and server interactions impact performance What.
HTML 5 and CSS 3, Illustrated Complete Unit L: Programming Web Pages with JavaScript.
Lesson 12- Unit L Programming Web Pages with JavaScript.
Amazon CloudFront An introductory discussion. What is Amazon CloudFront? 5/31/20122© e-Zest Solutions Ltd. Amazon CloudFront is a web service for content.
1 Configuring Internet- related services (April 22, 2015) © Abdou Illia, Spring 2015.
Maxim Zhvirblya EPAM Systems © 2013 Or make MSSQL breathe easily RBS and Blob Cache in SharePoint 2013.
Server-Side vs. Client-Side Scripting Languages
1 Chapter 12 Working With Access 2000 on the Internet.
World Wide Web1 Applications World Wide Web. 2 Introduction What is hypertext model? Use of hypertext in World Wide Web (WWW) – HTML. WWW client-server.
Introduction to Web Interface Technology (CSE2030)
Implementing ISA Server Caching. Caching Overview ISA Server supports caching as a way to improve the speed of retrieving information from the Internet.
Performance Comparison of Congested HTTP/2 Links Brian Card, CS /7/
1 Web Content Delivery Reading: Section and COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:
1 The World Wide Web. 2  Web Fundamentals  Pages are defined by the Hypertext Markup Language (HTML) and contain text, graphics, audio, video and software.
Putting the Network to Work
Web Proxy Server Anagh Pathak Jesus Cervantes Henry Tjhen Luis Luna.
Transformations Revealed
Web Client/Server Communication A290/A590, Fall /09/2014.
1 Enabling Secure Internet Access with ISA Server.
Hands-On Microsoft Windows Server 2008 Chapter 8 Managing Windows Server 2008 Network Services.
Performance Mistakes In Kentico 7/18/2012Miro Remias, Solution Architect.
ITIS 1210 Introduction to Web-Based Information Systems Chapter 41 How Animation on the Web Works.
INTRODUCTION TO WEB DATABASE PROGRAMMING
IT 210 The Internet & World Wide Web introduction.
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
HTTP; The World Wide Web Protocol
Real World Examples – Part II 7/26/2013Miro Remias, Sr. Solution Architect.
Workflow Manager and General Tuning Tips. Topics to discuss… Working with Workflows Working with Tasks General Tuning Tips.
JavaScript, Fourth Edition Chapter 12 Updating Web Pages with AJAX.
1 Computer Communication & Networks Lecture 28 Application Layer: HTTP & WWW p Waleed Ejaz
DNN Performance & Scalability Planning, Evaluating & Improving : Part 1.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
Module 10: Monitoring ISA Server Overview Monitoring Overview Configuring Alerts Configuring Session Monitoring Configuring Logging Configuring.
Database-Driven Web Sites, Second Edition1 Chapter 5 WEB SERVERS.
Dynamic web content HTTP and HTML: Berners-Lee’s Basics.
“Load Testing Early and Often” By Donald Doane Presentation to the Rockville MDCFUG.
Partners’ Webinar 01/31/2013 Karol Jarkovsky Solution Architect Upgrading Kentico.
Empirical Quantification of Opportunities for Content Adaptation in Web Servers Michael Gopshtein and Dror Feitelson School of Engineering and Computer.
High Points CSCI 1710 Fall The Internet Packet switching Arpanet Cold War.
PERFORMANCE ENHANCEMENT IN ASP.NET By Hassan Tariq Session #1.
Putting Performance Best Practices Together to Create the Perfect SPA Chris Love2Dev.com.
Web Design and Development. World Wide Web  World Wide Web (WWW or W3), collection of globally distributed text and multimedia documents and files 
Accelerating PHP Applications Ilia Alshanetsky O’Reilly Open Source Convention August 3rd, 2005.
Overview of Servlets and JSP
Bundles, Minification Andres Käver, IT Kolledž
EValid LoadTest, eV.manger and Validation. Agenda Load Test capability of eValid How to execute load test by using eValid Introduction to eV.manager Validation.
Module 5: Managing Content. Overview Publishing Content Executing Reports Creating Cached Instances Creating Snapshots and Report History Creating Subscriptions.
What is Seo? SEO stands for “search engine optimization.” It is the process of getting traffic from the “free,” “organic,” “editorial” or “natural” search.
Web Cache. What is Cache? Cache is the storing of data temporarily to improve performance. Cache exist in a variety of areas such as your CPU, Hard Disk.
Building web applications with the Windows Azure Platform Ido Flatow | Senior Architect | Sela | This session.
Kentico CMS Performance Optimization Implementation at Newsmax - Ayush Chaturvedi.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
THE FUTURE IS HERE: APPLICATION- AWARE CACHING BY ASHOK ANAND.
IF STARBUCKS USED INSTART LOGIC, THEY WOULD HAVE A FASTER RESPONSIVE WEBSITE BY PETER BLUM.
111 State Management Beginning ASP.NET in C# and VB Chapter 4 Pages
Enhance Your Page Load Speed And Improve Traffic.
Windows Server 2003 { First Steps and Administration} Benedikt Riedel MCSE + Messaging
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
How HTTP Works Made by Manish Kushwaha.
WWW and HTTP King Fahd University of Petroleum & Minerals
CISC103 Web Development Basics: Web site:
Web Caching? Web Caching:.
Whether you decide to use hidden frames or XMLHttp, there are several things you'll need to consider when building an Ajax application. Expanding the role.
CISC103 Web Development Basics: Web site:
Configuring Internet-related services
EE 122: HyperText Transfer Protocol (HTTP)
Presentation transcript:

Building Highly Scalable Websites Karol Jarkovsky Sr. Solution Architect

Want Some TCP Packets Exchanged? Open Connection (TCP SYN) HTTP GET ACK #1 ACK #N Accept Connection (SYN ACK) ACK HTTP Response #1 HTTP Response #N Client Server 1. Eliminate connection idle time 2. Get rid of unnecessary GET requests

Keep Connection Busy Sequential response processing Response from the server received in chunks/multiple packets, Parsed and processed on-the-fly as packets arrives, Any external resources identified starts new request. DNS lookup Open new connection Request & Initial response The rest of response Image found -> Open new connection Initial response + image data Image referenced in the middle of the text

Keep Connection Busy Sequential response processing Response from the server received in chunks/multiple packets, Parsed and processed on-the-fly as packets arrives, Any external resources identified starts new request. DNS lookup Open new connection Request & Initial response The rest of response Image found -> Open new connection Initial response + image data Image referenced at the beginning of the text TIP: Include one or more object references at the top of HTML.

Put Your Resources In Order goes first Resources referenced within the tags downloaded first, Nothing else happening until all resources are downloaded, TIP: Move resources from HEAD to BODY of your HTML. Play with order Resources downloaded in the order as defined in the HTML, Big files first make page looks loading slow, TIP: Use JavaScript and CSS to achieve out-of-order objects loading. Late loading … document.getElementById(“someImage”).src = “someimage.jpg”;

Put Your Resources In Order goes first Resources referenced within the tags downloaded first, Nothing else happening until all resources are downloaded, TIP: Move resources from HEAD to BODY of your HTML. Play with order Resources downloaded in the order as defined in the HTML, Big files first make page looks loading slow, TIP: Use JavaScript and CSS to achieve out-of-order objects loading. Early loading var someImage = new Image(); someImage.src = “someimage.jpg”; …

Enable Simultaneous Download Optimize Network Usage Up to two simultaneous connections per domain (not IP), Object resources placed in the queue in order they appear in the HTML. Open new connection First image – existing connection Next image Images from the same domain Second image – new connection

Enable Simultaneous Download Optimize Network Usage Up to two simultaneous connections per domain (not IP), Object resources placed in the queue in order they appear in the HTML. Open new connection First image – existing connection d2.domain.com Images from the different domains d3.domain.com TIP: Use different domains for links to external resources. It allows you to download multiple objects from the same domain. You can setup two or more domain aliases for the single website to be able to link resources using different domains in the URL. You may also consider providing a separate website for content shared by multiple websites that are likely visited from the same client.

Find Best Place For Your Script Including script files Script resources are downloaded each one before the next, If script download starts no other objects are retrieved in parallel, Browser stops rendering the page while script is downloaded. Open new connection First script Script included before other resources Second script Images d1.domain.com Images d2.domain.com

Find Best Place For Your Script Including script files Script resources are downloaded each one before the next, If script download starts no other objects are retrieved in parallel, Browser stops rendering the page while script is downloaded. Open new connection Image Script included after other resources Images d1.domain.com Images d2.domain.com First script Second script TIP: Place script at the end of your HTML. Should you need script earlier in the source place one or more objects before script to allow higher degree of parallelism.

Leverage Client Cache Client cache in Kentico CMS 5.x Enabled in the web.config -, Adds the ‘ must-revalidate ’ cache control header to the response, Always performs validation check – even if not required, Cache minutes reflect settings of standard cache, Client cache in Kentico CMS 6.0 Managed through the CMS Site Manager-> Settings, More granular settings, Cache minutes – allows specify client cache expiration interval, Client cache must revalidate – option to select whether client needs to validate freshness of cached content with the web server, Applied to all objects retrieved through the script pages (incl. CSS and JavaScript files), Adds ‘ Etag ’, ‘ Last-modified ’ and ‘ Expires ’ cache control header to response, TIP: Enable resources (CSS, JavaScript) compression and minification in Kentico CMS 6.0 to save even more bytes in data transfer.

Enable Output Cache New output cache storage Content of the output cache can be stored in the file system, Separate setting for cache minutes for content stored in file system, If not set or set to 0 the output cache is stored in memory only, Provides persistent output cache storage on application restart, Disable/enable output cache (incl. partial web part caching) for the whole website from single place, Output cache substitution Special macro expression ‘ {~macrokey~} ’, Substitution logic needs to be implemented as custom macro, Substitution macro part of the cached output HTML resolved on-demand.

Do Things Right At First Place Categorize content Follow rule saying there should be < 1000 child nodes per parent in the content tree, Custom grouping rule that ensures structure complies with the 1000 child per parent rule no matter how much content you may get in the future, Use wildcards and custom tables Wildcard URL replacements available through the query macros. Custom tables suitable for huge amounts of data, Way to go if you do not need to maintain data hierarchy, versioning and document-level security, Use custom cache item name Content data stored in the cache can be re-used if you use custom cache item name, Use document URL path instead of aliases If you want to use custom URL for document use custom URL path rather than alias – requires less resources.

Switch To Universal Viewer Scenarios Displaying documents of different types using single viewer web part, Not easily achievable with previous Kentico versions, Displaying documents and related (child) documents using the single viewer web part, Nested repeater vs. Universal Viewer Nested repeater executes additional SELECT query per every parent item, Universal Viewer executes single query (per document type) to get all child documents no matter how many parent items are being displayed, Setup hierarchical repeaters New alternative to nested repeaters, Single viewer web part displaying multiple document types using the document specific transformation, Keeps the number of queries being executed at minimum, Allows you to use different transformations for the same document type based on the position in the content tree.

Manage Scheduled Tasks Outside CMS Scheduled tasks There is 20+ out-of-box scheduled tasks in Kentico CMS, Most of them enabled by default with execution interval 1 min – 1 week, Most of the tasks doesn’t require context information to run and so can be executed outside the website AppPool, Enhance default settings Extend execution interval according your needs You may not need to clean queue if you are not using it, Install and enable Kentico External Services through the Kentico Installation Manager, Run custom scheduled tasks as external service if possible Depends mostly on whether you need to have access to the context information at all.

Be Aware Of Website Stability And Performance Keep an eye on website health reports Eliminate any exceptions reported in the Kentico Event Log, Use built-in debugging tools Take advantage of built-in debugging tools to identify performance or functional issues, Any additional information displayed in the debug log consume system resources (memory, CPU) – enable on Live site only in case of emergency, Get yourself familiar with Kentico Health Monitoring feature Performance counters available directly from the server maintanance area.

Something To Read This book is ultimate resource on how to develop really fast and stable websites from the ground: Ultra - Fast ASP.NET Building Ultra-Fast and Ultra-Scalable Websites Using ASP.NET and SQL Server By Rick KiessigRick Kiessig Review at

Questions & Answers ?

Thank You ! Blog LinkedIn Twitter