SlideShare ist ein Scribd-Unternehmen logo
1 von 77
All slides are licensed CC BY-NC-SA 3.0
Stack Overflow Behind the Scenes
Oded Coster - @OdedCoster
CODEMOTION MILAN - SPECIAL EDITION
10 – 11 NOVEMBER 2017
All slides are licensed CC BY-NC-SA 3.0
Who Am I?
• Nearly 5 years at Stack Overflow
All slides are licensed CC BY-NC-SA 3.0
Overview
• The numbers
• Teamwork
• Web platform
• Scaling/Performance
• The Cloud
All slides are licensed CC BY-NC-SA 3.0
The Numbers
For Stack Overflow and all other Q&A sites and the different
services (chat, stackexchange.com, Talent, Business etc…)
All slides are licensed CC BY-NC-SA 3.0
1.3 Billion
Page Views per Month
All slides are licensed CC BY-NC-SA 3.0
370 Million
HTTP requests a day
(CDN gets another 3.7 billion)
that’s 99.9% cached!
All slides are licensed CC BY-NC-SA 3.0
528 Million
Stack Overflow database Queries a Day
(11,000 queries/second at peak)
All slides are licensed CC BY-NC-SA 3.0
3.75 Billion
Redis operations a Day
(60,000 operations a second)
All slides are licensed CC BY-NC-SA 3.0
3,644
Tag Engine Requests per Minute
All slides are licensed CC BY-NC-SA 3.0
34 Million
Elasticsearch Searches per Day
All slides are licensed CC BY-NC-SA 3.0
600,000
Sustained web socket connections
(15,000 connections/second at peak)
All slides are licensed CC BY-NC-SA 3.0
5.5 Billion
HAProxy Requests per Months
(4,500 requests/second at peak)
All slides are licensed CC BY-NC-SA 3.0
55 Terabytes
Transferred a Month
All slides are licensed CC BY-NC-SA 3.0
The Numbers
Hardware
All slides are licensed CC BY-NC-SA 3.0
2 Microsoft SQL Servers
(1 is a read-only replica)
1.5TB Ram, 16 cores * 2
(Stack Overflow)
All slides are licensed CC BY-NC-SA 3.0
2 Microsoft SQL Servers
(1 is a read-only replica)
768GB Ram, 8 cores * 2
(rest of network)
All slides are licensed CC BY-NC-SA 3.0
9 IIS Web Servers
(+2 for staging)
64 GB Ram, 12 cores * 2
All slides are licensed CC BY-NC-SA 3.0
2 Redis Servers
256 GB Ram, 10 cores * 2
All slides are licensed CC BY-NC-SA 3.0
3 Tag Engine Servers
(really service boxes)
64 GB Ram, 6 cores * 2 (2)
32 GB Ram, 6 cores * 2 (1)
All slides are licensed CC BY-NC-SA 3.0
3 Elasticsearch Servers
192 GB Ram, 8 cores * 2
All slides are licensed CC BY-NC-SA 3.0
4 HAProxy Load Balancers
192 GB Ram, 4 cores * 2 (2)
64GB Ram, 4 cores * 2 (2)
All slides are licensed CC BY-NC-SA 3.0
2 Networks
(switches + fabric extenders)
Cisco Nexus 5596UP (sw)
Cisco Nexus 2232TM (fex)
All slides are licensed CC BY-NC-SA 3.0
2 Firewalls
Fortinet 800C
All slides are licensed CC BY-NC-SA 3.0
4 Routers
Cisco ASR-1001
Cisco ASR-1001-x
All slides are licensed CC BY-NC-SA 3.0
The Numbers
Server side render times
All slides are licensed CC BY-NC-SA 3.0
18.3 ms
(on average)
To Render a Question Page
All slides are licensed CC BY-NC-SA 3.0
12.2 ms
(on average)
To Render the Home Page
All slides are licensed CC BY-NC-SA 3.0
How it is done
Teamwork
All slides are licensed CC BY-NC-SA 3.0
Globally Distributed
Stack Overflow has people all over the world:
- SE Asia: Japan, Australia
- Across Europe (Russia, France, Slovenia, Germany, UK and more)
- Across the US (New York, Colorado, Hawaii, North Carolina and more)
- Around 250 people
All slides are licensed CC BY-NC-SA 3.0
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, DAG, Jobs etc…
All slides are licensed CC BY-NC-SA 3.0
Online Communication
Sync:
• Stack Chat / Slack (team preference)
• Google Hangouts
• Zoom (for larger groups/presentations)
Video is recorded and uploaded to YouTube channel.
All slides are licensed CC BY-NC-SA 3.0
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
All slides are licensed CC BY-NC-SA 3.0
Chat Bots
Say when CI builds happen and what’s in them:
Who built to production and when:
All slides are licensed CC BY-NC-SA 3.0
Chat Bots
Some specific exceptions:
Unusual exception volumes:
All slides are licensed CC BY-NC-SA 3.0
Chat Bots
And a bit of fun…
All slides are licensed CC BY-NC-SA 3.0
Chat Bots
And a bit of fun…
All slides are licensed CC BY-NC-SA 3.0
Chat Bots
And a bit of fun…
All slides are licensed CC BY-NC-SA 3.0
Chat Bots
And a bit of fun…
All slides are licensed CC BY-NC-SA 3.0
How it is done
Web framework
All slides are licensed CC BY-NC-SA 3.0
Core Stack
• C#
• LESS  CSS
• TypeScript  JavaScript
• ASP.NET/MVC
• IIS
• SQL Server – T-SQL
All slides are licensed CC BY-NC-SA 3.0
Supporting Cast
• HAProxy - on CentOS
• Redis - on CentOS
• Elasticsearch - on CentOS
• Tag Engine - on Windows
All slides are licensed CC BY-NC-SA 3.0
Technology Agnostic
Stack Overflow uses what makes sense and in a way it makes
sense to use.
HAProxy on windows? Doesn’t make sense
Tag Engine on Linux? Doesn’t make sense (yet!)
All slides are licensed CC BY-NC-SA 3.0
Tools
• Visual Studio
• Git
• GitLab
• TeamCity
• SSMS
All slides are licensed CC BY-NC-SA 3.0
Development Process
• Local environments for developers
• IIS, SQL Server, Redis, Elasticsearch, socket server
• devlocalsetup – powershell scripts to install pretty much
the whole stack, as needed
• Mostly work off master
• For complex work and reviews – PRs
• Not much in tests
• Depends on team
All slides are licensed CC BY-NC-SA 3.0
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
All slides are licensed CC BY-NC-SA 3.0
What the Build does
• Localization (JavaScript, C#, Razor views)
• LESS compilation + minification
• JavaScript bundling + minification
• TypeScript transpiles are during dev
• Configuration transforms
• SQL migrations – in house tool
• Rolling build – 100% uptime
All slides are licensed CC BY-NC-SA 3.0
How it is done
Performance
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
Mini Profiler
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
Opeserver – dashboard and more
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
Web servers
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
SQL servers
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
SQL server – drill in
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
SQL server – top queries
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
Exceptions
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
Exceptions
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
Redis
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
Elasticsearch
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
HAProxy
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
Grafana – dashboards
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
Bosun
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
Bosun
All slides are licensed CC BY-NC-SA 3.0
Monitoring and Alerting
Bosun
All slides are licensed CC BY-NC-SA 3.0
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
All slides are licensed CC BY-NC-SA 3.0
Stack Overflow can run off one web server – that’s how much
headroom they have.
This is a fact – it has happened, though not intentionally!
(bad deploy left only one web server operating)
All slides are licensed CC BY-NC-SA 3.0
Optimization - Monitoring
All the monitoring mentioned previously is essential to their
great performance.
You can’t optimize what you can’t measure.
All slides are licensed CC BY-NC-SA 3.0
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.
All slides are licensed CC BY-NC-SA 3.0
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
All slides are licensed CC BY-NC-SA 3.0
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
All slides are licensed CC BY-NC-SA 3.0
Did I mention caching?
All slides are licensed CC BY-NC-SA 3.0
Performance – misc
• Performance is important to them – performance is a feature
• Everyone on the team understands the low level of
performance
• Understanding when to offload work – for example tag
engine
All slides are licensed CC BY-NC-SA 3.0
How it is done
“The Cloud”
All slides are licensed CC BY-NC-SA 3.0
Cloud Philosophy
• More expensive than co-located servers
• Unfit for their requirements:
• Extreme high performance
• Tight control of above
• Likely require re-engineering the DB (Stack Overflow DB
larger than largest Azure offering)
All slides are licensed CC BY-NC-SA 3.0
Cloud Philosophy - continued
• Doesn’t afford as much capacity headroom
• Unreliable internal network (slow, jittery)
• Latency issues
• Used for:
• Backups (glacier)
• DNS
All slides are licensed CC BY-NC-SA 3.0
Thank you!
Questions?
Oded Coster - @OdedCoster

Weitere ähnliche Inhalte

Was ist angesagt?

Appsec DC - wXf -2010
Appsec DC - wXf  -2010Appsec DC - wXf  -2010
Appsec DC - wXf -2010Chris Gates
 
Introduction openstack-meetup-nov-28
Introduction openstack-meetup-nov-28Introduction openstack-meetup-nov-28
Introduction openstack-meetup-nov-28Sadique Puthen
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Programaspyker
 
Building A SaaS with CoreOS, Docker, and Etcd
Building A SaaS with CoreOS, Docker, and EtcdBuilding A SaaS with CoreOS, Docker, and Etcd
Building A SaaS with CoreOS, Docker, and EtcdRoss Kukulinski
 
ThoughtWorks Technology Radar Roadshow - Perth
ThoughtWorks Technology Radar Roadshow - PerthThoughtWorks Technology Radar Roadshow - Perth
ThoughtWorks Technology Radar Roadshow - PerthThoughtworks
 
LasCon 2014 DevOoops
LasCon 2014 DevOoops LasCon 2014 DevOoops
LasCon 2014 DevOoops Chris Gates
 
Build Your Own SaaS using Docker
Build Your Own SaaS using DockerBuild Your Own SaaS using Docker
Build Your Own SaaS using DockerJulien Barbier
 
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native EraNATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Erawallyqs
 
Docker for Ops - Scott Coulton, Puppet
Docker for Ops - Scott Coulton, PuppetDocker for Ops - Scott Coulton, Puppet
Docker for Ops - Scott Coulton, PuppetDocker, Inc.
 
TW SEAT - DevOps: Security 干我何事?
TW SEAT - DevOps: Security 干我何事?TW SEAT - DevOps: Security 干我何事?
TW SEAT - DevOps: Security 干我何事?smalltown
 
Building a Secure App with Docker - Ying Li and David Lawrence, Docker
Building a Secure App with Docker - Ying Li and David Lawrence, DockerBuilding a Secure App with Docker - Ying Li and David Lawrence, Docker
Building a Secure App with Docker - Ying Li and David Lawrence, DockerDocker, Inc.
 
AWS Survival Guide
AWS Survival GuideAWS Survival Guide
AWS Survival GuideKen Johnson
 
Global Operations with Docker for the Enterprise - Nico Kabar, Docker
Global Operations with Docker for the Enterprise - Nico Kabar, DockerGlobal Operations with Docker for the Enterprise - Nico Kabar, Docker
Global Operations with Docker for the Enterprise - Nico Kabar, DockerDocker, Inc.
 
Turbocharged Java with Quarkus | JakartaOne Livestream
 Turbocharged Java with Quarkus | JakartaOne Livestream Turbocharged Java with Quarkus | JakartaOne Livestream
Turbocharged Java with Quarkus | JakartaOne LivestreamJakarta_EE
 
DockerCon EU 2015: Deploying and Managing Containers for Developers
DockerCon EU 2015: Deploying and Managing Containers for DevelopersDockerCon EU 2015: Deploying and Managing Containers for Developers
DockerCon EU 2015: Deploying and Managing Containers for DevelopersDocker, Inc.
 
DevOpsDays - DevOps: Security 干我何事?
DevOpsDays - DevOps: Security 干我何事?DevOpsDays - DevOps: Security 干我何事?
DevOpsDays - DevOps: Security 干我何事?smalltown
 
Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin  Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin Kuberton
 
Continuous Security in DevOps
Continuous Security in DevOpsContinuous Security in DevOps
Continuous Security in DevOpsMaciej Lasyk
 
DCSF19 Container Security: Theory & Practice at Netflix
DCSF19 Container Security: Theory & Practice at NetflixDCSF19 Container Security: Theory & Practice at Netflix
DCSF19 Container Security: Theory & Practice at NetflixDocker, Inc.
 
Crikeycon 2019 Velociraptor Workshop
Crikeycon 2019 Velociraptor WorkshopCrikeycon 2019 Velociraptor Workshop
Crikeycon 2019 Velociraptor WorkshopVelocidex Enterprises
 

Was ist angesagt? (20)

Appsec DC - wXf -2010
Appsec DC - wXf  -2010Appsec DC - wXf  -2010
Appsec DC - wXf -2010
 
Introduction openstack-meetup-nov-28
Introduction openstack-meetup-nov-28Introduction openstack-meetup-nov-28
Introduction openstack-meetup-nov-28
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 
Building A SaaS with CoreOS, Docker, and Etcd
Building A SaaS with CoreOS, Docker, and EtcdBuilding A SaaS with CoreOS, Docker, and Etcd
Building A SaaS with CoreOS, Docker, and Etcd
 
ThoughtWorks Technology Radar Roadshow - Perth
ThoughtWorks Technology Radar Roadshow - PerthThoughtWorks Technology Radar Roadshow - Perth
ThoughtWorks Technology Radar Roadshow - Perth
 
LasCon 2014 DevOoops
LasCon 2014 DevOoops LasCon 2014 DevOoops
LasCon 2014 DevOoops
 
Build Your Own SaaS using Docker
Build Your Own SaaS using DockerBuild Your Own SaaS using Docker
Build Your Own SaaS using Docker
 
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native EraNATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
 
Docker for Ops - Scott Coulton, Puppet
Docker for Ops - Scott Coulton, PuppetDocker for Ops - Scott Coulton, Puppet
Docker for Ops - Scott Coulton, Puppet
 
TW SEAT - DevOps: Security 干我何事?
TW SEAT - DevOps: Security 干我何事?TW SEAT - DevOps: Security 干我何事?
TW SEAT - DevOps: Security 干我何事?
 
Building a Secure App with Docker - Ying Li and David Lawrence, Docker
Building a Secure App with Docker - Ying Li and David Lawrence, DockerBuilding a Secure App with Docker - Ying Li and David Lawrence, Docker
Building a Secure App with Docker - Ying Li and David Lawrence, Docker
 
AWS Survival Guide
AWS Survival GuideAWS Survival Guide
AWS Survival Guide
 
Global Operations with Docker for the Enterprise - Nico Kabar, Docker
Global Operations with Docker for the Enterprise - Nico Kabar, DockerGlobal Operations with Docker for the Enterprise - Nico Kabar, Docker
Global Operations with Docker for the Enterprise - Nico Kabar, Docker
 
Turbocharged Java with Quarkus | JakartaOne Livestream
 Turbocharged Java with Quarkus | JakartaOne Livestream Turbocharged Java with Quarkus | JakartaOne Livestream
Turbocharged Java with Quarkus | JakartaOne Livestream
 
DockerCon EU 2015: Deploying and Managing Containers for Developers
DockerCon EU 2015: Deploying and Managing Containers for DevelopersDockerCon EU 2015: Deploying and Managing Containers for Developers
DockerCon EU 2015: Deploying and Managing Containers for Developers
 
DevOpsDays - DevOps: Security 干我何事?
DevOpsDays - DevOps: Security 干我何事?DevOpsDays - DevOps: Security 干我何事?
DevOpsDays - DevOps: Security 干我何事?
 
Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin  Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin
 
Continuous Security in DevOps
Continuous Security in DevOpsContinuous Security in DevOps
Continuous Security in DevOps
 
DCSF19 Container Security: Theory & Practice at Netflix
DCSF19 Container Security: Theory & Practice at NetflixDCSF19 Container Security: Theory & Practice at Netflix
DCSF19 Container Security: Theory & Practice at Netflix
 
Crikeycon 2019 Velociraptor Workshop
Crikeycon 2019 Velociraptor WorkshopCrikeycon 2019 Velociraptor Workshop
Crikeycon 2019 Velociraptor Workshop
 

Andere mochten auch

Agnieszka Naplocha - Breaking the norm with creative CSS - Codemotion Milan 2017
Agnieszka Naplocha - Breaking the norm with creative CSS - Codemotion Milan 2017Agnieszka Naplocha - Breaking the norm with creative CSS - Codemotion Milan 2017
Agnieszka Naplocha - Breaking the norm with creative CSS - Codemotion Milan 2017Codemotion
 
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Codemotion
 
Vincenzo Chianese - REST, for real! - Codemotion Milan 2017
Vincenzo Chianese - REST, for real! - Codemotion Milan 2017Vincenzo Chianese - REST, for real! - Codemotion Milan 2017
Vincenzo Chianese - REST, for real! - Codemotion Milan 2017Codemotion
 
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...Codemotion
 
Massimo Bonanni - L'approccio ai microservizi secondo Service Fabric - Codemo...
Massimo Bonanni - L'approccio ai microservizi secondo Service Fabric - Codemo...Massimo Bonanni - L'approccio ai microservizi secondo Service Fabric - Codemo...
Massimo Bonanni - L'approccio ai microservizi secondo Service Fabric - Codemo...Codemotion
 
Matteo Valoriani - How Augment your Reality: different perspective on the Rea...
Matteo Valoriani - How Augment your Reality: different perspective on the Rea...Matteo Valoriani - How Augment your Reality: different perspective on the Rea...
Matteo Valoriani - How Augment your Reality: different perspective on the Rea...Codemotion
 
James Williams - Demystifying Constraint Layout - Codemotion Milan 2017
James Williams - Demystifying Constraint Layout - Codemotion Milan 2017James Williams - Demystifying Constraint Layout - Codemotion Milan 2017
James Williams - Demystifying Constraint Layout - Codemotion Milan 2017Codemotion
 
Gabriele Nocco - Massive distributed processing with H2O - Codemotion Milan 2017
Gabriele Nocco - Massive distributed processing with H2O - Codemotion Milan 2017Gabriele Nocco - Massive distributed processing with H2O - Codemotion Milan 2017
Gabriele Nocco - Massive distributed processing with H2O - Codemotion Milan 2017Codemotion
 
Giovanni Laquidara - Hello ARCore - Codemotion Milan 2017
Giovanni Laquidara - Hello ARCore - Codemotion Milan 2017Giovanni Laquidara - Hello ARCore - Codemotion Milan 2017
Giovanni Laquidara - Hello ARCore - Codemotion Milan 2017Codemotion
 
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Codemotion
 
Anna Makarudze - Django Girls: Inspiring women to fall in love with programmi...
Anna Makarudze - Django Girls: Inspiring women to fall in love with programmi...Anna Makarudze - Django Girls: Inspiring women to fall in love with programmi...
Anna Makarudze - Django Girls: Inspiring women to fall in love with programmi...Codemotion
 
Gabriele Petronella - Mythical trees and where to find them - Codemotion Mila...
Gabriele Petronella - Mythical trees and where to find them - Codemotion Mila...Gabriele Petronella - Mythical trees and where to find them - Codemotion Mila...
Gabriele Petronella - Mythical trees and where to find them - Codemotion Mila...Codemotion
 
Nicola Corti - Building UI Consistent Android Apps - Codemotion Milan 2017
Nicola Corti - Building UI Consistent Android Apps - Codemotion Milan 2017Nicola Corti - Building UI Consistent Android Apps - Codemotion Milan 2017
Nicola Corti - Building UI Consistent Android Apps - Codemotion Milan 2017Codemotion
 
Maurizio Moriconi - ARKit: Augmented Reality made simple - Codemotion Milan 2017
Maurizio Moriconi - ARKit: Augmented Reality made simple - Codemotion Milan 2017Maurizio Moriconi - ARKit: Augmented Reality made simple - Codemotion Milan 2017
Maurizio Moriconi - ARKit: Augmented Reality made simple - Codemotion Milan 2017Codemotion
 
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - ...
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - ...Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - ...
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - ...Codemotion
 
Claudio Carboni - ArcGIS platformthe foundation of your idea - Codemotion Mil...
Claudio Carboni - ArcGIS platformthe foundation of your idea - Codemotion Mil...Claudio Carboni - ArcGIS platformthe foundation of your idea - Codemotion Mil...
Claudio Carboni - ArcGIS platformthe foundation of your idea - Codemotion Mil...Codemotion
 
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...Codemotion
 
Erik Tiengo - Embedding Cisco Spark and Location applications (ESRI) into bus...
Erik Tiengo - Embedding Cisco Spark and Location applications (ESRI) into bus...Erik Tiengo - Embedding Cisco Spark and Location applications (ESRI) into bus...
Erik Tiengo - Embedding Cisco Spark and Location applications (ESRI) into bus...Codemotion
 
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...Codemotion
 
Webinar - Big Data: Let's SMACK - Jorg Schad
Webinar - Big Data: Let's SMACK - Jorg SchadWebinar - Big Data: Let's SMACK - Jorg Schad
Webinar - Big Data: Let's SMACK - Jorg SchadCodemotion
 

Andere mochten auch (20)

Agnieszka Naplocha - Breaking the norm with creative CSS - Codemotion Milan 2017
Agnieszka Naplocha - Breaking the norm with creative CSS - Codemotion Milan 2017Agnieszka Naplocha - Breaking the norm with creative CSS - Codemotion Milan 2017
Agnieszka Naplocha - Breaking the norm with creative CSS - Codemotion Milan 2017
 
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
 
Vincenzo Chianese - REST, for real! - Codemotion Milan 2017
Vincenzo Chianese - REST, for real! - Codemotion Milan 2017Vincenzo Chianese - REST, for real! - Codemotion Milan 2017
Vincenzo Chianese - REST, for real! - Codemotion Milan 2017
 
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
 
Massimo Bonanni - L'approccio ai microservizi secondo Service Fabric - Codemo...
Massimo Bonanni - L'approccio ai microservizi secondo Service Fabric - Codemo...Massimo Bonanni - L'approccio ai microservizi secondo Service Fabric - Codemo...
Massimo Bonanni - L'approccio ai microservizi secondo Service Fabric - Codemo...
 
Matteo Valoriani - How Augment your Reality: different perspective on the Rea...
Matteo Valoriani - How Augment your Reality: different perspective on the Rea...Matteo Valoriani - How Augment your Reality: different perspective on the Rea...
Matteo Valoriani - How Augment your Reality: different perspective on the Rea...
 
James Williams - Demystifying Constraint Layout - Codemotion Milan 2017
James Williams - Demystifying Constraint Layout - Codemotion Milan 2017James Williams - Demystifying Constraint Layout - Codemotion Milan 2017
James Williams - Demystifying Constraint Layout - Codemotion Milan 2017
 
Gabriele Nocco - Massive distributed processing with H2O - Codemotion Milan 2017
Gabriele Nocco - Massive distributed processing with H2O - Codemotion Milan 2017Gabriele Nocco - Massive distributed processing with H2O - Codemotion Milan 2017
Gabriele Nocco - Massive distributed processing with H2O - Codemotion Milan 2017
 
Giovanni Laquidara - Hello ARCore - Codemotion Milan 2017
Giovanni Laquidara - Hello ARCore - Codemotion Milan 2017Giovanni Laquidara - Hello ARCore - Codemotion Milan 2017
Giovanni Laquidara - Hello ARCore - Codemotion Milan 2017
 
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
 
Anna Makarudze - Django Girls: Inspiring women to fall in love with programmi...
Anna Makarudze - Django Girls: Inspiring women to fall in love with programmi...Anna Makarudze - Django Girls: Inspiring women to fall in love with programmi...
Anna Makarudze - Django Girls: Inspiring women to fall in love with programmi...
 
Gabriele Petronella - Mythical trees and where to find them - Codemotion Mila...
Gabriele Petronella - Mythical trees and where to find them - Codemotion Mila...Gabriele Petronella - Mythical trees and where to find them - Codemotion Mila...
Gabriele Petronella - Mythical trees and where to find them - Codemotion Mila...
 
Nicola Corti - Building UI Consistent Android Apps - Codemotion Milan 2017
Nicola Corti - Building UI Consistent Android Apps - Codemotion Milan 2017Nicola Corti - Building UI Consistent Android Apps - Codemotion Milan 2017
Nicola Corti - Building UI Consistent Android Apps - Codemotion Milan 2017
 
Maurizio Moriconi - ARKit: Augmented Reality made simple - Codemotion Milan 2017
Maurizio Moriconi - ARKit: Augmented Reality made simple - Codemotion Milan 2017Maurizio Moriconi - ARKit: Augmented Reality made simple - Codemotion Milan 2017
Maurizio Moriconi - ARKit: Augmented Reality made simple - Codemotion Milan 2017
 
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - ...
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - ...Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - ...
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - ...
 
Claudio Carboni - ArcGIS platformthe foundation of your idea - Codemotion Mil...
Claudio Carboni - ArcGIS platformthe foundation of your idea - Codemotion Mil...Claudio Carboni - ArcGIS platformthe foundation of your idea - Codemotion Mil...
Claudio Carboni - ArcGIS platformthe foundation of your idea - Codemotion Mil...
 
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
 
Erik Tiengo - Embedding Cisco Spark and Location applications (ESRI) into bus...
Erik Tiengo - Embedding Cisco Spark and Location applications (ESRI) into bus...Erik Tiengo - Embedding Cisco Spark and Location applications (ESRI) into bus...
Erik Tiengo - Embedding Cisco Spark and Location applications (ESRI) into bus...
 
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...
 
Webinar - Big Data: Let's SMACK - Jorg Schad
Webinar - Big Data: Let's SMACK - Jorg SchadWebinar - Big Data: Let's SMACK - Jorg Schad
Webinar - Big Data: Let's SMACK - Jorg Schad
 

Ähnlich wie Oded Coster - Stack Overflow behind the scenes - how it's made - Codemotion Milan 2017

AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...Amazon Web Services
 
Azure Nights August2017
Azure Nights August2017Azure Nights August2017
Azure Nights August2017Michael Frank
 
Azure + DataStax Enterprise (DSE) Powers Office365 Per User Store
Azure + DataStax Enterprise (DSE) Powers Office365 Per User StoreAzure + DataStax Enterprise (DSE) Powers Office365 Per User Store
Azure + DataStax Enterprise (DSE) Powers Office365 Per User StoreDataStax Academy
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Henry S
 
Drizzle Keynote at the MySQL User's Conference
Drizzle Keynote at the MySQL User's ConferenceDrizzle Keynote at the MySQL User's Conference
Drizzle Keynote at the MySQL User's ConferenceBrian Aker
 
Introduction to architecture exploration
Introduction to architecture explorationIntroduction to architecture exploration
Introduction to architecture explorationDeepak Shankar
 
dba_lounge_Iasi: Everybody likes redis
dba_lounge_Iasi: Everybody likes redisdba_lounge_Iasi: Everybody likes redis
dba_lounge_Iasi: Everybody likes redisLiviu Costea
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowSpiffy
 
Azure VM 101 - HomeGen by CloudGen Verona - Marco Obinu
Azure VM 101 - HomeGen by CloudGen Verona - Marco ObinuAzure VM 101 - HomeGen by CloudGen Verona - Marco Obinu
Azure VM 101 - HomeGen by CloudGen Verona - Marco ObinuMarco Obinu
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978David Chou
 
Experiences of SOACS
Experiences of SOACSExperiences of SOACS
Experiences of SOACSSimon Haslam
 
HCL Nomad Web 101: Skip the Mistakes and Get on the Fast Track
HCL Nomad Web 101: Skip the Mistakes and Get on the Fast TrackHCL Nomad Web 101: Skip the Mistakes and Get on the Fast Track
HCL Nomad Web 101: Skip the Mistakes and Get on the Fast Trackpanagenda
 
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/MinAdvanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/MinMasahiro Nagano
 
You Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing It
You Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing ItYou Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing It
You Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing ItAleksandr Yampolskiy
 
Nordic infrastructure Conference 2017 - SQL Server on Linux Overview
Nordic infrastructure Conference 2017 - SQL Server on Linux OverviewNordic infrastructure Conference 2017 - SQL Server on Linux Overview
Nordic infrastructure Conference 2017 - SQL Server on Linux OverviewTravis Wright
 
Gruntwork Executive Summary
Gruntwork Executive SummaryGruntwork Executive Summary
Gruntwork Executive SummaryYevgeniy Brikman
 
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009eLiberatica
 

Ähnlich wie Oded Coster - Stack Overflow behind the scenes - how it's made - Codemotion Milan 2017 (20)

AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
 
Azure Nights August2017
Azure Nights August2017Azure Nights August2017
Azure Nights August2017
 
Azure + DataStax Enterprise (DSE) Powers Office365 Per User Store
Azure + DataStax Enterprise (DSE) Powers Office365 Per User StoreAzure + DataStax Enterprise (DSE) Powers Office365 Per User Store
Azure + DataStax Enterprise (DSE) Powers Office365 Per User Store
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
 
Drizzle Keynote at the MySQL User's Conference
Drizzle Keynote at the MySQL User's ConferenceDrizzle Keynote at the MySQL User's Conference
Drizzle Keynote at the MySQL User's Conference
 
Introduction to architecture exploration
Introduction to architecture explorationIntroduction to architecture exploration
Introduction to architecture exploration
 
Top 8 WCM Trends 2010
Top 8 WCM Trends 2010Top 8 WCM Trends 2010
Top 8 WCM Trends 2010
 
dba_lounge_Iasi: Everybody likes redis
dba_lounge_Iasi: Everybody likes redisdba_lounge_Iasi: Everybody likes redis
dba_lounge_Iasi: Everybody likes redis
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should Know
 
Azure VM 101 - HomeGen by CloudGen Verona - Marco Obinu
Azure VM 101 - HomeGen by CloudGen Verona - Marco ObinuAzure VM 101 - HomeGen by CloudGen Verona - Marco Obinu
Azure VM 101 - HomeGen by CloudGen Verona - Marco Obinu
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
 
Experiences of SOACS
Experiences of SOACSExperiences of SOACS
Experiences of SOACS
 
HCL Nomad Web 101: Skip the Mistakes and Get on the Fast Track
HCL Nomad Web 101: Skip the Mistakes and Get on the Fast TrackHCL Nomad Web 101: Skip the Mistakes and Get on the Fast Track
HCL Nomad Web 101: Skip the Mistakes and Get on the Fast Track
 
Rudder 3.0 and beyond
Rudder 3.0 and beyondRudder 3.0 and beyond
Rudder 3.0 and beyond
 
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/MinAdvanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
 
You Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing It
You Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing ItYou Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing It
You Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing It
 
Nordic infrastructure Conference 2017 - SQL Server on Linux Overview
Nordic infrastructure Conference 2017 - SQL Server on Linux OverviewNordic infrastructure Conference 2017 - SQL Server on Linux Overview
Nordic infrastructure Conference 2017 - SQL Server on Linux Overview
 
Gruntwork Executive Summary
Gruntwork Executive SummaryGruntwork Executive Summary
Gruntwork Executive Summary
 
Windows Azure Essentials V3
Windows Azure Essentials V3Windows Azure Essentials V3
Windows Azure Essentials V3
 
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
 

Mehr von Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 

Mehr von Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Kürzlich hochgeladen

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Kürzlich hochgeladen (20)

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Oded Coster - Stack Overflow behind the scenes - how it's made - Codemotion Milan 2017

  • 1. All slides are licensed CC BY-NC-SA 3.0 Stack Overflow Behind the Scenes Oded Coster - @OdedCoster CODEMOTION MILAN - SPECIAL EDITION 10 – 11 NOVEMBER 2017
  • 2. All slides are licensed CC BY-NC-SA 3.0 Who Am I? • Nearly 5 years at Stack Overflow
  • 3. All slides are licensed CC BY-NC-SA 3.0 Overview • The numbers • Teamwork • Web platform • Scaling/Performance • The Cloud
  • 4. All slides are licensed CC BY-NC-SA 3.0 The Numbers For Stack Overflow and all other Q&A sites and the different services (chat, stackexchange.com, Talent, Business etc…)
  • 5. All slides are licensed CC BY-NC-SA 3.0 1.3 Billion Page Views per Month
  • 6. All slides are licensed CC BY-NC-SA 3.0 370 Million HTTP requests a day (CDN gets another 3.7 billion) that’s 99.9% cached!
  • 7. All slides are licensed CC BY-NC-SA 3.0 528 Million Stack Overflow database Queries a Day (11,000 queries/second at peak)
  • 8. All slides are licensed CC BY-NC-SA 3.0 3.75 Billion Redis operations a Day (60,000 operations a second)
  • 9. All slides are licensed CC BY-NC-SA 3.0 3,644 Tag Engine Requests per Minute
  • 10. All slides are licensed CC BY-NC-SA 3.0 34 Million Elasticsearch Searches per Day
  • 11. All slides are licensed CC BY-NC-SA 3.0 600,000 Sustained web socket connections (15,000 connections/second at peak)
  • 12. All slides are licensed CC BY-NC-SA 3.0 5.5 Billion HAProxy Requests per Months (4,500 requests/second at peak)
  • 13. All slides are licensed CC BY-NC-SA 3.0 55 Terabytes Transferred a Month
  • 14. All slides are licensed CC BY-NC-SA 3.0 The Numbers Hardware
  • 15. All slides are licensed CC BY-NC-SA 3.0 2 Microsoft SQL Servers (1 is a read-only replica) 1.5TB Ram, 16 cores * 2 (Stack Overflow)
  • 16. All slides are licensed CC BY-NC-SA 3.0 2 Microsoft SQL Servers (1 is a read-only replica) 768GB Ram, 8 cores * 2 (rest of network)
  • 17. All slides are licensed CC BY-NC-SA 3.0 9 IIS Web Servers (+2 for staging) 64 GB Ram, 12 cores * 2
  • 18. All slides are licensed CC BY-NC-SA 3.0 2 Redis Servers 256 GB Ram, 10 cores * 2
  • 19. All slides are licensed CC BY-NC-SA 3.0 3 Tag Engine Servers (really service boxes) 64 GB Ram, 6 cores * 2 (2) 32 GB Ram, 6 cores * 2 (1)
  • 20. All slides are licensed CC BY-NC-SA 3.0 3 Elasticsearch Servers 192 GB Ram, 8 cores * 2
  • 21. All slides are licensed CC BY-NC-SA 3.0 4 HAProxy Load Balancers 192 GB Ram, 4 cores * 2 (2) 64GB Ram, 4 cores * 2 (2)
  • 22. All slides are licensed CC BY-NC-SA 3.0 2 Networks (switches + fabric extenders) Cisco Nexus 5596UP (sw) Cisco Nexus 2232TM (fex)
  • 23. All slides are licensed CC BY-NC-SA 3.0 2 Firewalls Fortinet 800C
  • 24. All slides are licensed CC BY-NC-SA 3.0 4 Routers Cisco ASR-1001 Cisco ASR-1001-x
  • 25. All slides are licensed CC BY-NC-SA 3.0 The Numbers Server side render times
  • 26. All slides are licensed CC BY-NC-SA 3.0 18.3 ms (on average) To Render a Question Page
  • 27. All slides are licensed CC BY-NC-SA 3.0 12.2 ms (on average) To Render the Home Page
  • 28. All slides are licensed CC BY-NC-SA 3.0 How it is done Teamwork
  • 29. All slides are licensed CC BY-NC-SA 3.0 Globally Distributed Stack Overflow has people all over the world: - SE Asia: Japan, Australia - Across Europe (Russia, France, Slovenia, Germany, UK and more) - Across the US (New York, Colorado, Hawaii, North Carolina and more) - Around 250 people
  • 30. All slides are licensed CC BY-NC-SA 3.0 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, DAG, Jobs etc…
  • 31. All slides are licensed CC BY-NC-SA 3.0 Online Communication Sync: • Stack Chat / Slack (team preference) • Google Hangouts • Zoom (for larger groups/presentations) Video is recorded and uploaded to YouTube channel.
  • 32. All slides are licensed CC BY-NC-SA 3.0 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
  • 33. All slides are licensed CC BY-NC-SA 3.0 Chat Bots Say when CI builds happen and what’s in them: Who built to production and when:
  • 34. All slides are licensed CC BY-NC-SA 3.0 Chat Bots Some specific exceptions: Unusual exception volumes:
  • 35. All slides are licensed CC BY-NC-SA 3.0 Chat Bots And a bit of fun…
  • 36. All slides are licensed CC BY-NC-SA 3.0 Chat Bots And a bit of fun…
  • 37. All slides are licensed CC BY-NC-SA 3.0 Chat Bots And a bit of fun…
  • 38. All slides are licensed CC BY-NC-SA 3.0 Chat Bots And a bit of fun…
  • 39. All slides are licensed CC BY-NC-SA 3.0 How it is done Web framework
  • 40. All slides are licensed CC BY-NC-SA 3.0 Core Stack • C# • LESS  CSS • TypeScript  JavaScript • ASP.NET/MVC • IIS • SQL Server – T-SQL
  • 41. All slides are licensed CC BY-NC-SA 3.0 Supporting Cast • HAProxy - on CentOS • Redis - on CentOS • Elasticsearch - on CentOS • Tag Engine - on Windows
  • 42. All slides are licensed CC BY-NC-SA 3.0 Technology Agnostic Stack Overflow uses what makes sense and in a way it makes sense to use. HAProxy on windows? Doesn’t make sense Tag Engine on Linux? Doesn’t make sense (yet!)
  • 43. All slides are licensed CC BY-NC-SA 3.0 Tools • Visual Studio • Git • GitLab • TeamCity • SSMS
  • 44. All slides are licensed CC BY-NC-SA 3.0 Development Process • Local environments for developers • IIS, SQL Server, Redis, Elasticsearch, socket server • devlocalsetup – powershell scripts to install pretty much the whole stack, as needed • Mostly work off master • For complex work and reviews – PRs • Not much in tests • Depends on team
  • 45. All slides are licensed CC BY-NC-SA 3.0 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
  • 46. All slides are licensed CC BY-NC-SA 3.0 What the Build does • Localization (JavaScript, C#, Razor views) • LESS compilation + minification • JavaScript bundling + minification • TypeScript transpiles are during dev • Configuration transforms • SQL migrations – in house tool • Rolling build – 100% uptime
  • 47. All slides are licensed CC BY-NC-SA 3.0 How it is done Performance
  • 48. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting Mini Profiler
  • 49. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting
  • 50. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting
  • 51. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting
  • 52. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting Opeserver – dashboard and more
  • 53. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting Web servers
  • 54. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting SQL servers
  • 55. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting SQL server – drill in
  • 56. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting SQL server – top queries
  • 57. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting Exceptions
  • 58. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting Exceptions
  • 59. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting Redis
  • 60. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting Elasticsearch
  • 61. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting HAProxy
  • 62. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting Grafana – dashboards
  • 63. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting Bosun
  • 64. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting Bosun
  • 65. All slides are licensed CC BY-NC-SA 3.0 Monitoring and Alerting Bosun
  • 66. All slides are licensed CC BY-NC-SA 3.0 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
  • 67. All slides are licensed CC BY-NC-SA 3.0 Stack Overflow can run off one web server – that’s how much headroom they have. This is a fact – it has happened, though not intentionally! (bad deploy left only one web server operating)
  • 68. All slides are licensed CC BY-NC-SA 3.0 Optimization - Monitoring All the monitoring mentioned previously is essential to their great performance. You can’t optimize what you can’t measure.
  • 69. All slides are licensed CC BY-NC-SA 3.0 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.
  • 70. All slides are licensed CC BY-NC-SA 3.0 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
  • 71. All slides are licensed CC BY-NC-SA 3.0 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
  • 72. All slides are licensed CC BY-NC-SA 3.0 Did I mention caching?
  • 73. All slides are licensed CC BY-NC-SA 3.0 Performance – misc • Performance is important to them – performance is a feature • Everyone on the team understands the low level of performance • Understanding when to offload work – for example tag engine
  • 74. All slides are licensed CC BY-NC-SA 3.0 How it is done “The Cloud”
  • 75. All slides are licensed CC BY-NC-SA 3.0 Cloud Philosophy • More expensive than co-located servers • Unfit for their requirements: • Extreme high performance • Tight control of above • Likely require re-engineering the DB (Stack Overflow DB larger than largest Azure offering)
  • 76. All slides are licensed CC BY-NC-SA 3.0 Cloud Philosophy - continued • Doesn’t afford as much capacity headroom • Unreliable internal network (slow, jittery) • Latency issues • Used for: • Backups (glacier) • DNS
  • 77. All slides are licensed CC BY-NC-SA 3.0 Thank you! Questions? Oded Coster - @OdedCoster