faz net technical challenges 2000 2009 n.
Download
Skip this Video
Download Presentation
Faz technical challenges 2000 - 2009

Loading in 2 Seconds...

play fullscreen
1 / 56

Faz technical challenges 2000 - 2009 - PowerPoint PPT Presentation


  • 88 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Faz technical challenges 2000 - 2009' - lani-vaughan


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
what i won t show
what i won’t show
  • business numbers, €
  • business plans
what to do from the point of view of lowly programmer
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
a brief history
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
how big is faz net
how big is faz.net?
  • much smaller than google 
  • smaller than spiegel
how big is faz net1
how big is faz.net?
  • much smaller than google 
  • smaller than spiegel
  • comparable to other newspapers
a sketch of our system layout a couple years old
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
an ancient attempt to show how changing an article affects site
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)
how to measure what is happening whether things are ok
how to measure what is happening / whether things are ok
  • measure throughput at / between various points
partial network traffic over time
(partial) network traffic over time
  • MRTG (http://oss.oetiker.ch/mrtg/)
  • Standard, free (Gnu)
  • Useful at a glance info
how to measure what is happening whether things are ok1
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)
some errors can be seen by any user with a browser who runs into them
Some errors can be seen by any user with a browser who runs into them
  • Server error
  • Wrong contents
  • Broken HTML, images, or …
digested log files can be helpful
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
external hired monitoring service
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
a little bit about development methods
a little bit about development methods
  • requirements gathering (quality varies)
  • planning
  • implementation
our implementation languages
our implementation languages
  • browser
    • html (+ „furniture graphics“)
    • javascript
    • css (fairly recently)
    • public javascript libraries (fairly recently): MooTools, JQuery
slide49
One view of a web application pattern (Application Architecture Guide 2.0: Designing Applications on the .NET Platform
our implementation languages1
our implementation languages
  • webserver („front end“)
    • ASP (JScript, mainly 2000 – 2005)
    • DotNet 2 (2005 – 2007)
    • DotNet 3 (2007 - )
implementation languages
implementation languages
  • „middle tier“
    • purchased DLLs (mostly INBS): 2000 –
    • home-built DLL(s) (VBmostly INBS ): ca. 2003 –
    • home-built DLLs in DotNet: ca. 2005 -
back end data base
„back-end“ data base
  • SQL
  • MS SQL add-ons:
    • stored procedures
    • user defined functions
    • triggers
    • schedulable DB „jobs“
more back end file servers application servers background processes
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
scaling challenges
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)
ways to scale
ways to scale
  • exploit parallelism where possible
  • buy bigger, faster hardware
  • make units of work simpler, smaller
  • other suggestions?
  • combine these – what works best?