Faz technical challenges 2000 - 2009

56
Faz.net technical challenges 2000 - 2009

description

Faz.net technical challenges 2000 - 2009. what i won ’t show. business numbers, € business plans. what to do (from the point of view of lowly programmer). invent a business plan define, plan, and implement desired functionality build a robust, secure, scalable system - PowerPoint PPT Presentation

Transcript of Faz technical challenges 2000 - 2009

Page 1: Faz technical challenges 2000 - 2009

Faz.net technical challenges 2000 - 2009

Page 2: Faz technical challenges 2000 - 2009

what i won’t show

• business numbers, €• business plans

Page 3: Faz technical challenges 2000 - 2009

what to do (from the point of view of lowly programmer)

• invent a business plan• define, plan, and implement desired functionality• build a robust, secure, scalable system• keep that system up 100% of the time• allow changes to support new business initiatives

Page 4: Faz technical challenges 2000 - 2009

a brief history

• launched 8 Jan 2001• “stable” by Spring of 2001• unstable on 11 Sep 2001• better able to handle (many classes of) huge load increases by

Spring 2002

Page 5: Faz technical challenges 2000 - 2009
Page 6: Faz technical challenges 2000 - 2009

how big is faz.net?

• much smaller than google • smaller than spiegel

Page 7: Faz technical challenges 2000 - 2009
Page 8: Faz technical challenges 2000 - 2009

how big is faz.net?

• much smaller than google • smaller than spiegel• comparable to other newspapers

Page 9: Faz technical challenges 2000 - 2009
Page 10: Faz technical challenges 2000 - 2009
Page 11: Faz technical challenges 2000 - 2009
Page 12: Faz technical challenges 2000 - 2009
Page 13: Faz technical challenges 2000 - 2009

a sketch of our system layout (a couple years old)

• load balancer• web servers• DB and file servers• other application servers• client machines, e.g. newsroom• external partners, e.g. freemail provider

Page 14: Faz technical challenges 2000 - 2009
Page 15: Faz technical challenges 2000 - 2009
Page 16: Faz technical challenges 2000 - 2009

an ancient attempt to show how changing an article affects site

• editor publishes a new article (or a new version of an existing article)

• a DB trigger fires• cached DB result sets get updated• cached HTML gets updated or deleted• (we do things differently now)

Page 17: Faz technical challenges 2000 - 2009
Page 18: Faz technical challenges 2000 - 2009
Page 19: Faz technical challenges 2000 - 2009

how to measure what is happening / whether things are ok

• measure throughput at / between various points

Page 20: Faz technical challenges 2000 - 2009

(partial) network traffic over time

• MRTG (http://oss.oetiker.ch/mrtg/)

• Standard, free (Gnu)

• Useful at a glance info

Page 21: Faz technical challenges 2000 - 2009

how to measure what is happening / whether things are ok

• measure throughput at / between various points• measure, e.g. cpu load on web servers (NB: load is pretty low, max

would be 12*100)

Page 22: Faz technical challenges 2000 - 2009
Page 23: Faz technical challenges 2000 - 2009
Page 24: Faz technical challenges 2000 - 2009
Page 25: Faz technical challenges 2000 - 2009

long term trend: one year

Page 26: Faz technical challenges 2000 - 2009
Page 27: Faz technical challenges 2000 - 2009

Some errors can be seen by any user with a browser who runs into them

• Server error• Wrong contents• Broken HTML, images, or …

Page 28: Faz technical challenges 2000 - 2009

some page ailments complain helpfully

Page 29: Faz technical challenges 2000 - 2009
Page 30: Faz technical challenges 2000 - 2009
Page 31: Faz technical challenges 2000 - 2009

digested log files can be helpful

• web sites tend to have many log files, several kinds of log files; and some kinds can be *huge*

• they tend to be straight ascii files in some format you might have little control over

• various kinds of statistics might sometimes interest you• in particular error statistics

Page 32: Faz technical challenges 2000 - 2009

ad hoc (logfiles | awk ... excel

Page 33: Faz technical challenges 2000 - 2009

ad hoc: mrtg + paint o.ä.

Page 34: Faz technical challenges 2000 - 2009

ad hoc

Page 35: Faz technical challenges 2000 - 2009

ad hoc: DB query -> Excel

Page 36: Faz technical challenges 2000 - 2009

external, hired monitoring service

• hire someone outside your site to watch certain pages on your site (load them periodically) and keep statistics about timing, sizes, errors

• ideally get regular reports showing everything is groovy• support “drilling” to get more details when necessary

Page 37: Faz technical challenges 2000 - 2009
Page 38: Faz technical challenges 2000 - 2009

using logarithms to graph events with highly varying scales

Page 39: Faz technical challenges 2000 - 2009

some 50x errors showed up on utility servers one day

Page 40: Faz technical challenges 2000 - 2009
Page 41: Faz technical challenges 2000 - 2009

a primitive top 10 most popular pictures (PIs per hour)

Page 42: Faz technical challenges 2000 - 2009

What does this mean? (irregular load distribution, strange peeks)

Page 43: Faz technical challenges 2000 - 2009

somewhat subtle: unexpected cpu load spikes on utility machines

Page 44: Faz technical challenges 2000 - 2009

diagnosis: software release increases cpu load

Page 45: Faz technical challenges 2000 - 2009

Confirmation: rollback helps

Page 46: Faz technical challenges 2000 - 2009
Page 47: Faz technical challenges 2000 - 2009

a little bit about development methods

• requirements gathering (quality varies)• planning• implementation

Page 48: Faz technical challenges 2000 - 2009

our implementation languages

• browser– html (+ „furniture graphics“)

– javascript

– css (fairly recently)

– public javascript libraries (fairly recently): MooTools, JQuery

Page 49: Faz technical challenges 2000 - 2009

One view of a web application pattern (Application Architecture Guide 2.0: Designing Applications on

the .NET Platform

Page 50: Faz technical challenges 2000 - 2009

our implementation languages

• webserver („front end“)– ASP (JScript, mainly 2000 – 2005)

– DotNet 2 (2005 – 2007)

– DotNet 3 (2007 - )

Page 51: Faz technical challenges 2000 - 2009

implementation languages

• „middle tier“– purchased DLLs (mostly INBS): 2000 –

– home-built DLL(s) (VBmostly INBS ): ca. 2003 –

– home-built DLLs in DotNet: ca. 2005 -

Page 52: Faz technical challenges 2000 - 2009

„back-end“ data base

• SQL• MS SQL add-ons:

– stored procedures

– user defined functions

– triggers

– schedulable DB „jobs“

Page 53: Faz technical challenges 2000 - 2009

more „back end“: file servers, application servers, background processes

• various scripting languages– lowly batch files

– „windows script host“

– cygwin (unix-like shells and friends under windows)

– recently some powershell (once called monad)

– windows „scheduled tasks“ (similar to Unix cron)

• special purpose utilities– gathering and digesting log files

– checking synchronization of distributed databases

Page 54: Faz technical challenges 2000 - 2009
Page 55: Faz technical challenges 2000 - 2009

scaling challenges

• as traffic grows log files get bigger• as a content site ages, content grows• as a site with registered users grows and ages, the number of users

(hopefully increases)

Page 56: Faz technical challenges 2000 - 2009

ways to scale

• exploit parallelism where possible• buy bigger, faster hardware• make units of work simpler, smaller• other suggestions?• combine these – what works best?