facebook tornado tech talk

Upload: finiteloop

Post on 17-Feb-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 Facebook Tornado Tech Talk

    1/23

  • 7/23/2019 Facebook Tornado Tech Talk

    2/23

    Tornado Web Server

    Bret Taylor

    Director of Products

  • 7/23/2019 Facebook Tornado Tech Talk

    3/23

    Background

  • 7/23/2019 Facebook Tornado Tech Talk

    4/23

    Background

    Small, fast, and hackable

    Focus on the fundamentals: request handling, performance,templating, localization, security, and simplicity

    Non-blocking I/O to enable streaming and hanging connections (i.e.,real-time services)

    Few dependencies and application assumptions

  • 7/23/2019 Facebook Tornado Tech Talk

    5/23

    Hello, world

  • 7/23/2019 Facebook Tornado Tech Talk

    6/23

    Templates

  • 7/23/2019 Facebook Tornado Tech Talk

    7/23

    Templates

  • 7/23/2019 Facebook Tornado Tech Talk

    8/23

    Templatesbase.html

    items.html

  • 7/23/2019 Facebook Tornado Tech Talk

    9/23

    UI modules: reusable components

    home.html entry.html

  • 7/23/2019 Facebook Tornado Tech Talk

    10/23

    UI modules: reusable components

    blogentry.html

  • 7/23/2019 Facebook Tornado Tech Talk

    11/23

    UI modules: reusable components

  • 7/23/2019 Facebook Tornado Tech Talk

    12/23

    UI modules: reusable components

  • 7/23/2019 Facebook Tornado Tech Talk

    13/23

    UI modules: reusable components

  • 7/23/2019 Facebook Tornado Tech Talk

    14/23

    Secure cookies + authentication

    value timestamp signature

  • 7/23/2019 Facebook Tornado Tech Talk

    15/23

    Secure cookies + authentication

  • 7/23/2019 Facebook Tornado Tech Talk

    16/23

    Secure cookies + authentication

  • 7/23/2019 Facebook Tornado Tech Talk

    17/23

    Real-time + non-blocking

    wait for messages or timeout (, , or even seconds) ,s of activehanging connectionsin this state

  • 7/23/2019 Facebook Tornado Tech Talk

    18/23

    Real-time + non-blocking

  • 7/23/2019 Facebook Tornado Tech Talk

    19/23

    Third party authentication

  • 7/23/2019 Facebook Tornado Tech Talk

    20/23

    Tornado in production

    nginx(load balancer +static file server)

    Tornado frontends

    MySQL + memcached

  • 7/23/2019 Facebook Tornado Tech Talk

    21/23

    Asynchronous design style

    Blocking operations are not an issue if there's no more than oneconcurrent request per server instance

    Synchronous style of programming is easier, so dont asynceverything

    Fast things (e.g., memcache) dont need to be multiplexed, slow things(e.g., HTTP requests to external sites) do

    Gray area: database requests

    Service-oriented architecture helps mitigate some of these issues

  • 7/23/2019 Facebook Tornado Tech Talk

    22/23

    http://www.tornadoweb.org/

  • 7/23/2019 Facebook Tornado Tech Talk

    23/23

    (c) Facebook, Inc. or its licensors. "Facebook" is a registered trademark of Facebook, Inc.. All rights reserved. .