StackOverflow.com - architektura v roce 2016

Kdo z programátorů by neznal webový portál StackOverflow.com, který slouží jako platforma pro sdílení a řešení dotazů či problémů? Tyto stránky vytvořili v roce 2008 Jeff Atwood, který je znám mimo jiné i díky svému blogu blog.codinghorror.com a Joel Spolsky. StackOverflow.com získal za roky provozu velkou návštěvnost. Jak velkou za rok 2015?

  • 209 420 973 HTTP požadavků na load balancery
  • 1 240 266 346 053 bajtů HTTP trafficu (1,24 TB)
  • 569 449 470 023 bajtů přijato (569 GB)
  • 3 084 303 599 266 bajtů celkem odesláno (3 TB)
  • 504 816 843 přímých dotazů do SQL
  • 5 831 683 114 dotazů do Redis Cache
  • 17 158 874 vyhledávání do Elasticsearch
  • 607 073 066 ms zpracovávání SQL dotazů (168 hodin)
  • 10 396 073 ms zpracováváním dotazů do Redis Cache (2,8 hodiny)
  • 1 609 944 301 ms zpracováváním ASP.NET (447 hodin)
  • 22,71 ms průměrně (19,12 ms v ASP.NET) za celkem 49 180 275 renderovaných stránek s dotazy
  • 11,80 ms průměrně (8,81 ms v ASP.NET) za celkem 6 370 076 renderovaných home page

Jakkoliv by se mohla následující data zdát jako nízká, je třeba si uvědomit fakt, že kód serveru je vysoce optimalizovaný, co se týče velikosti i doby zpracovávání každého požadavku.

Na čem běží StackOverflow.com?

StackOverflow.com je naprogramován v jazyce ASP.NET (ve stejném, v jakém programujeme i my ;-) a využívá databázového serveru Microsoft SQL Server. Fyzický hardware zajišťující provoz čítá:

  • 4 Microsoft SQL servery
  • 11 webových serverů IIS
  • 2 servery pro Redis cache
  • 3 servery pro Tap Engine
  • 3 servery pro Elasticsearch
  • 4 HAProxy load balancery (ochranu před útoky a distribuci požadavků po celém světě - CDN zajišťuje CloudFlare)
  • 2 oddělené sítě, každá obsahuje Nexus 5596 Core + 2232TM Fabric Extenders
  • 2 Fortinet 800C firewally
  • 2 Cisco ASR-1001 routery (BGP routování)
  • 2 Cisco ASR-1001-x routery

Fotografie z datacentra

Zajímá Vás více obrázků? Navštivte galerii na adrese http://imgur.com/a/X1HoY a podívejte se na více než 250 obrázků.

Webová vrstva

Servírování webového obsahu zajišťují webové servery IIS na platformě Microsoft Windows Server 2012. Doplňují je Linuxové servery běžící na operačním systému CentOS 7. Na těchto Linuxových serverech běží load balancer HAProxy, který rozděluje požadavky mezi jednotlivé IIS servery.

StackExchange.com běží na technologii ASP.NET MVC 5.2.3 a .NET Framework 4.6.1. Jako databázové servery jsou MSSQL 2014 servery v SQL clusteru pomocí technologie AlwaysOn.

Open-source

Vývojáři StackOverflow.com uvolnili řadu knihoven a software, které na tomto serveru používají jako open-source. Můžete si je stáhnout nebo i pomoci s rozvojem. Jedná se především o:

  • Dapper (.Net Core) - High-performance Micro-ORM for ADO.Net
  • StackExchange.Redis - High-performance Redis client
  • MiniProfiler - Lightweight profiler we run on every page (also supports Ruby, Go, and Node)
  • Exceptional - Error logger for SQL, JSON, MySQL, etc.
  • Jil - High-performance JSON (de)serializer
  • Sigil - A .Net CIL generation helper (for when C# isn’t fast enough)
  • NetGain - High-performance websocket server
  • Opserver - Monitoring dashboard polling most systems directly and feeding from Orion, Bosun, or WMI as well.
  • Bosun - Backend monitoring system, written in Go

Zdroj: nickcraver.com

Sledujte a sdílejte nás na sociálních sítích

PROGRAMATORI s.r.o.

Sídlo společnosti PROGRAMATORI s.r.o.

PROGRAMÁTOŘI nabízí více než 14 let zkušeností s vývojem software na zakázku, mobilní a webové aplikace, SEO optimalizace.

Kontaktní údaje

Vědeckotechnický park TITC

Purkyňova 648/125
612 00 Brno
Czech Republic

 +420 774 129 374

 info@programatori.cz

Copyright © 2018 PROGRAMATORI s.r.o. Všechna práva vyhrazena.

ASP.NET webhosting zajišťuje ASPIFY.com