Presented by Oded Coster

Slides:



Advertisements
Similar presentations
CloudStack Scalability Testing, Development, Results, and Futures Anthony Xu Apache CloudStack contributor.
Advertisements

© 2014 VMware Inc. All rights reserved. BlazeMeter Load Testing Solution with vCloud Air High-level Overview Jan 2015.
INTRODUCTION TO CLOUD COMPUTING CS 595 LECTURE 6 2/13/2015.
Web Server Hardware and Software
1 Scaling Stack Overflow David Fullerton, VP QCon NYC
Capacity Planning in SharePoint Capacity Planning Process of evaluating a technology … Deciding … Hardware … Variety of Ways Different Services.
Sitefinity Performance and Architecture
Cross Platform Mobile Backend with Mobile Services James
OM. Brad Gall Senior Consultant
DNN Performance & Scalability Planning, Evaluating & Improving : Part 2.
Scaling the Windows Stack George PICC ‘12.
Web/App Performance How to keep you out of the News
Nir Mashkowski Group Program Manager Azure websites.
BW Know-How Call : Performance Tuning dial-in phone numbers! U.S. Toll-free: (877) International: (612) Passcode: “BW”
WEBMATRIX Microsoft Pranav Rastogi.
Website s Azure Websites is an enterprise class cloud solution for developing, testing and running web apps. Azure Websites allows you to focus on what.
Social Media 101 An Overview of Social Media Basics.
Developer TECH REFRESH 15 Junho 2015 #pttechrefres h Understand your end-users and your app with Application Insights.
Putting Performance Best Practices Together to Create the Perfect SPA Chris Love2Dev.com.
Intro to Datazen.
Stairway to the cloud or can we take the highway? Taivo Liik.
Server Browser Network Complex pages Too many web parts Large payload Too many files Large distance to server Complex pages Busy computer.
Building and Diagnosing Applications using Visual Studio and Azure SDK Paul Yuknewicz Principal PM Manager.
Technology Drill Down: Windows Azure Platform Eric Nelson | ISV Application Architect | Microsoft UK |
SQL Server 2012 Session: 1 Session: 4 SQL Azure Data Management Using Microsoft SQL Server.
Windows Azure Boot CampWindowsAzureBootCamp.com. Windows Azure Boot CampWindowsAzureBootCamp.com.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
GSU-Schedule File Transformation Tools Presented by: Radhika Eedara Pratima Dharmala Phanendar Movva Advisor: Dr. Soon Ok Park CPSC Spring 2016.
1 Cutting Edge FE technologies for complex product August 6, 2015.
Azure.
Ramping Up On The SharePoint Framework (SPFx)
JQuery Fundamentals Introduction Tutorial Videos
Understanding and Improving Server Performance
Stress Free Deployments with Octopus Deploy
Deploying Web Application
Building GoDaddy.com’s Compute Cloud
Scalable Web Apps Target this solution to brand leaders responsible for customer engagement and roll-out of global marketing campaigns. Implement scenarios.
Creating Enterprise Grade BI Models with Azure Analysis Services
TechEd /1/2018 7:56 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
BIG Data 25 Need-to-Know Facts.
Line of Business Solutions in SharePoint Online
Platform as a Service.
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
Always On Multi-Site Patterns
Couchbase Server is a NoSQL Database with a SQL-Based Query Language
Azure-Powered Augmented Reality Storytelling Platform for Kids Makes Learning Adaptive, Fun “Azure and its associated storage, content delivery, and virtual.
Extensible Platform Microsoft Dynamics 365
Scalable Web Apps Target this solution to brand leaders responsible for customer engagement and roll-out of global marketing campaigns. Implement scenarios.
DNN Connect 2017 Microsoft Keynote
Azure.
New Mexico State University
5 Optimization Techniques for WordPress Websites.
Explore web development with Microsoft ASP.NET Core 1.0
Microsoft Build /16/2018 8:43 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
SharePoint 2019 Changes Point of View.
Azure the Power, Scale Behind Pre-Roll Ad SaaS Solution That Offers Real-Time Ad Decision Logic “With AdQ built upon the Microsoft Azure cloud platform,
Stack Overflow Behind the Scenes
What is Google+? Google+ is a social network and social layer for google services Some of its tools and features come from existing services and platforms,
Cloud Data Replication with SQL Data Sync
AWS Cloud Computing Masaki.
2/24/2019 6:15 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
.NET Conf 2018 Keynote Jose Barbosa Aaron Amm Theeranit.
Rich Benner SQL Server Performance Richbenner.com.
Windows Azure Hybrid Architectures and Patterns
Business Analytics & Reporting Platform
Johan Lindberg, inRiver
Running C# in the browser
Microsoft Azure Services Platform
The Database World of Azure
Presentation transcript:

Presented by Oded Coster - @OdedCoster Behind the Scenes How it’s made Presented by Oded Coster - @OdedCoster

Who Am I? Developer on the Stack Overflow Q&A team (4 years), recently with Jobs team

Overview Stack Overflow Our numbers Teamwork Web platform Scaling/Performance The Cloud

What we do

Stack Overflow Q&A

Stack Overflow Documentation

Stack Overflow Documentation

Stack Overflow Documentation

Stack Overflow Developer Story

Stack Overflow Developer Story

Stack Overflow Jobs

Stack Overflow Jobs

Stack Overflow Jobs

The Numbers For Stack Overflow and all other Q&A sites and the different services (chat, stackexchange.com, Talent, Business etc…)

1.3 Billion Page Views per Month

(CDN gets another 3.7 billion) 370 Million HTTP requests a day (CDN gets another 3.7 billion) that’s 99.9% cached!

528 Million Stack Overflow database Queries a Day (11,000 queries/second at peak)

Redis operations a Day (60,000 operations a second) 3.75 Billion Redis operations a Day (60,000 operations a second)

Tag Engine Requests per Minute 3,644 Tag Engine Requests per Minute

Elasticsearch Searches per Day 34 Million Elasticsearch Searches per Day

Sustained web socket connections (15,000 connections/second at peak) 600,000 Sustained web socket connections (15,000 connections/second at peak)

HAProxy Requests per Month (4,500 requests/second at peak) 5.5 Billion HAProxy Requests per Month (4,500 requests/second at peak)

55 Terabytes Transferred a Month

The Numbers Hardware

2 Microsoft SQL Servers (1 is a read-only replica) 384 GB Ram, 12 cores * 2 * (Stack Overflow) * Not strictly true since a week ago

2 Microsoft SQL Servers (1 is a read-only replica) 768GB Ram, 8 cores 2 Microsoft SQL Servers (1 is a read-only replica) 768GB Ram, 8 cores * 2 (rest of network)

9 IIS Web Servers (+2 for staging) 64 GB Ram, 12 cores * 2

2 Redis Servers 256 GB Ram, 10 cores * 2

3 Tag Engine Servers (really service boxes) 64 GB Ram, 6 cores 3 Tag Engine Servers (really service boxes) 64 GB Ram, 6 cores * 2 (2) 32 GB Ram, 6 cores * 2 (1)

3 Elasticsearch Servers 192 GB Ram, 8 cores * 2

4 HAProxy Load Balancers 192 GB Ram, 4 cores. 2 (2) 64GB Ram, 4 cores

2 Networks (switches + fabric extenders) Cisco Nexus 5596UP (sw) Cisco Nexus 2232TM (fex)

2 Firewalls Fortinet 800C

4 Routers Cisco ASR-1001 Cisco ASR-1001-x

Server side render times The Numbers Server side render times

18.3 ms (on average) To Render a Question Page

12.2 ms (on average) To Render the Home Page

How we do it Teamwork

Globally Distributed We have people all over the world: SE Asia: Japan, Philippines Across Europe (Russia, France, Slovenia, Spain, Germany, UK and more) Across the US (New York, Colorado, Hawaii, North Carolina and more) Over 300 people

Project Teams Multi-discipline teams – developers, designers, product manager, marketing, sales. Small teams – 5-10 people in each Focused on specific areas – Talent, Q&A Profiles, Jobs etc…

Online Communication Sync: Stack Chat / Slack (team preference) Google Hangouts Zoom (for larger groups/presentations) Video is recorded and uploaded to YouTube channel.

Online Communication Async: Google Docs - specs, RFCs… Trello – project work, organising YouTube - keynotes, fireside chat Point: have a record that people can refer to wherever and whenever they are

Chat Bots Tell us when CI builds happen and what’s in them: Who built to production and when:

Chat Bots Some specific exceptions: Unusual exception volumes:

Chat Bots And a bit of fun…

Chat Bots And a bit of fun…

Chat Bots And a bit of fun…

Chat Bots And a bit of fun…

How we do it Web framework

Core Stack C# LESS  CSS TypeScript  JavaScript ASP.NET/MVC IIS SQL Server – T-SQL

Supporting Cast HAProxy - on CentOS Redis - on CentOS Elasticsearch - on CentOS Tag Engine - on Windows

Technology Agnostic We use what makes sense and how it makes sense to use it. HAProxy on windows? Doesn’t make sense Tag Engine on Linux? Doesn’t make sense (yet!)

Tools Visual Studio Git GitLab TeamCity SSMS

Development Process Local environments for developers IIS, SQL Server, Redis, Elasticsearch, socket server Mostly work off master For complex work and reviews – MRs Not much in tests Depends on team

Promotion to Production Can by done by any developer at any time – one click deploy CI build to dev on push to origin Meta build – “staging” Prod build Watch logs and metas

What the Build does Localization (JavaScript, C#, Razor views) LESS compilation + minification JavaScript bundling + minification TypeScript transpiles are during dev Configuration transforms Rolling build – 100% uptime

How we do it Performance

Monitoring and Alerting Mini Profiler

Monitoring and Alerting

Monitoring and Alerting

Monitoring and Alerting

Monitoring and Alerting Opeserver – dashboard and more

Monitoring and Alerting SQL Servers

Monitoring and Alerting SQL Server – drill in

Monitoring and Alerting SQL Server – top queries

Monitoring and Alerting Web servers

Monitoring and Alerting Exceptions

Monitoring and Alerting Exceptions

Monitoring and Alerting Redis

Monitoring and Alerting Elasticsearch

Monitoring and Alerting HAProxy

Monitoring and Alerting Grafana – dashboard

Monitoring and Alerting Bosun

Monitoring and Alerting Bosun

Monitoring and Alerting Bosun

Monitoring and Alerting Mini profiler: github.com/MiniProfiler Opserver: github.com/opserver/Opserver Grafana: grafana.org Bosun: bosun.org Stack Overflow OSS: stackexchange.github.io

Stack Overflow can run off one web server – that’s how much headroom we have. We know this to be a fact – it has happened, though not intentionally!

Optimization - Monitoring All the monitoring mentioned previously is essential to our great performance. You can’t optimize what you can’t measure.

Optimization - SQL Writing highly optimized SQL – everyone on the team goes through a SQL course where we learn how to read query plans and optimize written SQL. Mini Profilers helps us find badly performing queries.

Caching Multiple levels of caching: L1 cache – on each web server L2 cache – Redis Caches include results from the DB, HTML fragments and so on

Fast libraries When existing functionality is not fast enough and no 3rd party library is fast enough – we will sometimes write our own highly optimized / specific library. Dapper – a micro ORM Jil – a JSON serializer / deserializer

Did I mention caching?

Performance – misc Performance is important for us – performance is a feature Everyone on the team understands the low level of performance Understanding when to offload work – for example tag engine

How we do it “The Cloud”

Cloud Philosophy More expensive for us Unfit for our requirements: Extreme high performance Tight control of above Likely require re-engineering our DB (Stack Overflow DB larger than largest Azure offering)

Cloud Philosophy - cntd Doesn’t afford as much capacity headroom Unreliable internal network (slow, jittery) Latency issues Used for: Backups (glacier) DNS

Questions? Oded Coster - @OdedCoster Thank you! Questions? Oded Coster - @OdedCoster