SlideShare une entreprise Scribd logo
1  sur  124
How Flipkart
 Scales PHP
   Tips & Tricks
About Flipkart


• Flipkart.com
• India’s largest eCommerce website*
• Millions of requests/day
About Me


• Siddhartha Reddy
• Tech Lead at Flipkart
• Taking care of Search & Browse experience
Today



• Flipkart.com’s Architecture
   • How each component addresses scale
Flipkart.com’s
           Architecture
                                   Session
                        Database
                                    Store



                                   CMS
 Load         Web
Balancer    Server(s)

                                   Search



                        Caches     OMS
What is Scaling?
What is Scaling?


• Handle large amount of traffic
• High availability
• Good response times
How Flipkart Scales
How Flipkart Scales
• Logging and measuring
• Horizontal Scaling
   • Load-balancing
• High Availability setup
• Web-server optimizations
• Caching
How Flipkart Scales
How Flipkart Scales
• Logging and measuring
• Horizontal Scaling
   • Load-balancing
• High Availability setup
• Web-server optimizations
• Caching
Logging & Measuring
Logging & Measuring
How Flipkart Scales

• Horizontal Scaling
   • Load-balancing
• High Availability setup
• Web-server optimizations
• Caching
Traffic
Servers: Chuck Norris Style
Servers: Spartan Style
Horizontal Scaling
Horizontal Scaling


      Traffic




   web-1       web-2   ...   web-n
Horizontal Scaling


                    Load-
      Traffic       balancer




   web-1       web-2          ...   web-n
Horizontal Scaling


                    Load-
      Traffic       balancer




   web-1       web-2          ...   web-n
Horizontal Scaling


                    Load-
      Traffic       balancer




   web-1       web-2          ...   web-n
Horizontal Scaling


                    Load-
      Traffic       balancer




   web-1       web-2          ...   web-n
Horizontal Scaling


                    Load-
      Traffic       balancer




   web-1       web-2          ...   web-n
How Flipkart Scales

• Horizontal Scaling
   • Load-balancing
• High Availability setup
• Web-server optimizations
• Caching
Load Balancer
Load Balancer


• Internal binary services (Apache Thrift)
• Internal web services (HTTP)
• External web traffic (HTTP/HTTPS)
Load Balancer


• Internal binary services (Apache Thrift)
• Internal web services (HTTP)
• External web traffic (HTTP/HTTPS)
Load Balancer
• Internal binary services (Apache Thrift)
   • Software: HAProxy
   • Transport layer (TCP) load balancer
   • TCP connect for availability check
• Internal web services (HTTP)
• External web traffic (HTTP/HTTPS)
Load Balancer


• Internal binary services (Apache Thrift)
• Internal web services (HTTP)
• External web traffic (HTTP/HTTPS)
Load Balancer
• Internal binary services (Apache Thrift)
• Internal web services (HTTP)
    • Software: Varnish
    • Application Layer (HTTP) load balancer
    • Configurable/scriptable caching
    • HTTP GET for availability check
• External web traffic (HTTP/HTTPS)
Load Balancer


• Internal binary services (Apache Thrift)
• Internal web services (HTTP)
• External web traffic (HTTP/HTTPS)
Load Balancer
• Internal binary services (Apache Thrift)
• Internal web services (HTTP)
• External web traffic (HTTP/HTTPS)
    • Software: Nginx
    • Application Layer (HTTP/HTTPS) load balancer
    • Caches and serves static content (JS/images)
    • HTTP GET for availability check
Load Balancer:
Session Affinity?

               Load-
              balancer




                         ...   web-n
  web-1   web-2
Load Balancer:
Session Affinity?

     SID: 123 (1)
                         Load-
                        balancer




                                   ...   web-n
  web-1             web-2
Load Balancer:
Session Affinity?

     SID: 123 (1)
                         Load-
                        balancer




                                   ...   web-n
  web-1             web-2
Load Balancer:
Session Affinity?

     SID: 123 (1)
                         Load-
                        balancer


                                   SID: 123 (1)




                                   ...            web-n
  web-1             web-2
Load Balancer:
Session Affinity?

     SID: 123 (1)
                         Load-
     SID: 123 (2)       balancer


                                   SID: 123 (1)




                                   ...            web-n
  web-1             web-2
Load Balancer:
Session Affinity?

     SID: 123 (1)
                         Load-
     SID: 123 (2)       balancer


                                   SID: 123 (1)




                                   ...            web-n
  web-1             web-2
Load Balancer:
Session Affinity?

     SID: 123 (1)
                           Load-
     SID: 123 (2)         balancer


                                     SID: 123 (1)
                      SID: 123 (2)




                                     ...            web-n
  web-1             web-2
HTTP Load Balancing:
  Session Affinity
HTTP Load Balancing:
    Session Affinity

• (+) Sessions can be stored on the web server

• (+) Different code on different web servers

    • Useful for testing new code on a subset of users

• (-) If any web server goes down, need to migrate sessions

• (-) Not easy to take a web server out-of-rotation
HTTP Load Balancer:
Session Non-affinity
HTTP Load Balancer:
   Session Non-affinity
• Sessions stored in a common session-store
• (+) Easy to manage -- all web servers have identical state
• (+) If a web server goes down -- no problem
• (+) Can take any web server out-of-rotation
• (-) Can’t deploy to a subset of servers for testing
• (-) Central session-store could be slower
HTTP Load Balancer:
Session Some-affinity
HTTP Load Balancer:
 Session Some-affinity


• Sessions sticky to a subset (group) of machines
• Use a common session-store
How Flipkart Scales

• Horizontal Scaling
   • Load-balancing
• High Availability setup
• Web-server optimizations
• Caching
Load Balancer:
  Hardware?
Load Balancer:
            Hardware?

• Expensive

• Inflexible to manage

• They run Linux anyway!
Flipkart’s Load-
   Balancers
Flipkart’s Load-
   Balancers
Flipkart’s Load-
   Balancers
Flipkart’s Load-
   Balancers
Flipkart’s Load-
   Balancers
Flipkart’s Load-
   Balancers
Flipkart’s Load-
   Balancers
Flipkart’s Load-
   Balancers
Flipkart’s Load-
       balancers



 bond:1            bond:1
(10.3.1.1)        (10.3.1.2)


 bond:0            bond:0
(10.3.0.1)        (10.3.0.2)
Flipkart’s Load-
        balancers



  bond:1            bond:1
 (10.3.1.1)        (10.3.1.2)


  bond:0            bond:0
 (10.3.0.1)        (10.3.0.2)




Active
Flipkart’s Load-
        balancers



  bond:1              bond:1
 (10.3.1.1)          (10.3.1.2)


  bond:0              bond:0
 (10.3.0.1)          (10.3.0.2)




Active           Hot Stand-by
Flipkart’s Load-
        balancers



  bond:1              bond:1
 (10.3.1.1)          (10.3.1.2)


  bond:0              bond:0
 (10.3.0.1)          (10.3.0.2)


 bond:0:0
 (10.3.0.0)


Active           Hot Stand-by
Flipkart’s Load-
        balancers



  bond:1                       bond:1
 (10.3.1.1)                   (10.3.1.2)


  bond:0                       bond:0
              Heartbeat
 (10.3.0.1)                   (10.3.0.2)


 bond:0:0
 (10.3.0.0)


Active                    Hot Stand-by
How Flipkart Scales

• Horizontal Scaling
   • Load-balancing
• High Availability setup
• Web-server optimizations
• Caching
On the Web Servers
On the Web Servers


• PHP5
On the Web Servers


• PHP5
• Apache/mod_php
On the Web Servers


• PHP5
• Apache/mod_php
On the Web Servers


• PHP5
• Apache/mod_php
• Apache/mod_fcgid (FastCGI)
On the Web Servers


• PHP5
• Apache/mod_php
• Apache/mod_fcgid (FastCGI)
On the Web Servers

• PHP5
• Apache/mod_php
• Apache/mod_fcgid (FastCGI)
• PHP-FPM
On the Web Servers
• PHP5
• Apache/mod_php
• Apache/mod_fcgid (FastCGI)
• PHP-FPM
    • PHP FastCGI Process Manager
    • Great process management
    • Security
    • Configurability & control
    • Adaptive process spawning (5.3.3RC1+)
On the Web Server:
   fk-w3-agent
On the Web Server:
      fk-w3-agent

• Simple Java “middleware” daemon
On the Web Server:
      fk-w3-agent

• Simple Java “middleware” daemon
• Deployed on each web server
On the Web Server:
      fk-w3-agent

• Simple Java “middleware” daemon
• Deployed on each web server
• Communicates with PHP through local socket
On the Web Server:
      fk-w3-agent

• Simple Java “middleware” daemon
• Deployed on each web server
• Communicates with PHP through local socket
• Hosts pluggable “handlers”
On the Web Server:
      fk-w3-agent

• Simple Java “middleware” daemon
• Deployed on each web server
• Communicates with PHP through local socket
• Hosts pluggable “handlers”
fk-w3-agent: Why?
fk-w3-agent: Why?
• “I wish PHP could ...”
fk-w3-agent: Why?
• “I wish PHP could ...”
• Logging
fk-w3-agent: Why?
• “I wish PHP could ...”
• Logging
• Connection pools
fk-w3-agent: Why?
• “I wish PHP could ...”
• Logging
• Connection pools
• Parallelization
fk-w3-agent: Why?
• “I wish PHP could ...”
• Logging
• Connection pools
• Parallelization
• Config & discovery
fk-w3-agent: Why?
• “I wish PHP could ...”
• Logging
• Connection pools
• Parallelization
• Config & discovery
• Running statistics
fk-w3-agent: Logging
fk-w3-agent: Logging
• We like to log, a lot
fk-w3-agent: Logging
• We like to log, a lot
• Logs need to be flushed to disk
fk-w3-agent: Logging
• We like to log, a lot
• Logs need to be flushed to disk
• PHP resources wasted
    • waiting for disk I/O
    • waiting for lock on log files

    • or logs go missing
fk-w3-agent: Logging
fk-w3-agent: Logging


• PHP processes send logs to fk-w3-agent
• fk-w3-agent writes logs to files
fk-w3-agent:
Connection Pooling
fk-w3-agent:
   Connection Pooling

• Many service calls / request
fk-w3-agent:
   Connection Pooling

• Many service calls / request
• Cost of recreating connections high
fk-w3-agent:
   Connection Pooling

• Many service calls / request
• Cost of recreating connections high
• PHP does not support connection pools*
fk-w3-agent:
Connection Pooling
fk-w3-agent:
   Connection Pooling

• fk-w3-agent maintains persistent connection pools
  to various services
• PHP accesses services by communicating with fk-
  w3-agent
fk-w3-agent:
Parallelization
fk-w3-agent:
        Parallelization


• Service calls can be parallelized
fk-w3-agent:
        Parallelization


• Service calls can be parallelized
• Multi-threading in PHP is ...
fk-w3-agent:
Parallelization
fk-w3-agent:
        Parallelization


• PHP sends request to fk-w3-agent
• fk-w3-agent uses multiple threads to hit services in
  parallel
fk-w3-agent:
Config & Discovery
fk-w3-agent:
    Config & Discovery

• Change config without deployment?
fk-w3-agent:
    Config & Discovery

• Change config without deployment?
• Simple: store config in a database
fk-w3-agent:
    Config & Discovery

• Change config without deployment?
• Simple: store config in a database
• But: reloading config on each request: expensive
fk-w3-agent:
Config & Discovery
fk-w3-agent:
    Config & Discovery

• fk-w3-agent loads config from database
   • Caches it in memory
   • Keeps it up-to-date
• PHP gets config from fk-w3-agent
fk-w3-agent:
Running Statistics
fk-w3-agent:
    Running Statistics

• PHP sends basic stats to fk-w3-agent for every
  request
• fk-w3-agent aggregates these stats
• Used for monitoring
How Flipkart Scales

• Horizontal Scaling
   • Load-balancing
• Web-server optimizations
• Caching
To Cache or not to
     Cache?
To Cache or not to
          Cache?
• “There are only two hard things in Computer
  Science: cache invalidation and naming things”. --
  Tim Bray quoting Phil Karlton
To Cache or not to
          Cache?
• “There are only two hard things in Computer
  Science: cache invalidation and naming things”. --
  Tim Bray quoting Phil Karlton
• “There are only two hard problems in Computer
  Science: cache invalidation, naming things and off-by-1
  errors.”
Caches Invalidation
Caches Invalidation

• Objects updated => Notification Message
Caches Invalidation

• Objects updated => Notification Message
• Remove updated objects from cache
Caches Invalidation

• Objects updated => Notification Message
• Remove updated objects from cache

• Replace updated objects in cache
Caches Invalidation

• Objects updated => Notification Message
• Remove updated objects from cache

• Replace updated objects in cache
• Aggressively populate cold cache
Caches at Flipkart
Caches at Flipkart

• Memcached -- in memory caching
Caches at Flipkart

• Memcached -- in memory caching
• Redis -- persistent store/cache
Caches at Flipkart

• Memcached -- in memory caching
• Redis -- persistent store/cache
• Varnish -- HTTP caching
Caches at Flipkart

• Memcached -- in memory caching
• Redis -- persistent store/cache
• Varnish -- HTTP caching
• fk-w3-agent -- Config caching
Let’s continue the
         discussion

• @sids on Twitter
• siddhartha@flipkart.com
• #phpcloud on irc.freenode.net

Contenu connexe

Tendances

Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKJosé Paumard
 
OpenGL Mini Projects With Source Code [ Computer Graphics ]
OpenGL Mini Projects With Source Code [ Computer Graphics ]OpenGL Mini Projects With Source Code [ Computer Graphics ]
OpenGL Mini Projects With Source Code [ Computer Graphics ]Daffodil International University
 
Event Management System Document
Event Management System Document Event Management System Document
Event Management System Document LJ PROJECTS
 
Going realtime with Socket.IO
Going realtime with Socket.IOGoing realtime with Socket.IO
Going realtime with Socket.IOChristian Joudrey
 
Presentation on Railway Reservation System
Presentation on Railway Reservation SystemPresentation on Railway Reservation System
Presentation on Railway Reservation SystemPriyanka Sharma
 
DevOps Powered by Splunk
DevOps Powered by SplunkDevOps Powered by Splunk
DevOps Powered by SplunkSplunk
 
Synopsis gor online Tourism.
Synopsis gor online Tourism.Synopsis gor online Tourism.
Synopsis gor online Tourism.Janu Ansari
 
Taxi service UML
Taxi service UMLTaxi service UML
Taxi service UMLAyushi Shah
 
Java RMI Presentation
Java RMI PresentationJava RMI Presentation
Java RMI PresentationMasud Rahman
 
Introduction to Java 11
Introduction to Java 11 Introduction to Java 11
Introduction to Java 11 Knoldus Inc.
 
Final year project presentation in android application
Final year project presentation in android applicationFinal year project presentation in android application
Final year project presentation in android applicationChirag Thaker
 
Asp.net architecture
Asp.net architectureAsp.net architecture
Asp.net architectureIblesoft
 
Introduction to APIs (Application Programming Interface)
Introduction to APIs (Application Programming Interface) Introduction to APIs (Application Programming Interface)
Introduction to APIs (Application Programming Interface) Vibhawa Nirmal
 
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshellFluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshellN Masahiro
 
Airline Reservation System - Software Engineering
Airline Reservation System - Software EngineeringAirline Reservation System - Software Engineering
Airline Reservation System - Software EngineeringDrishti Bhalla
 
Online Vegetable Selling project Presentation
Online Vegetable Selling project PresentationOnline Vegetable Selling project Presentation
Online Vegetable Selling project Presentationmayur patel
 

Tendances (20)

Cookie
CookieCookie
Cookie
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UK
 
OpenGL Mini Projects With Source Code [ Computer Graphics ]
OpenGL Mini Projects With Source Code [ Computer Graphics ]OpenGL Mini Projects With Source Code [ Computer Graphics ]
OpenGL Mini Projects With Source Code [ Computer Graphics ]
 
Event Management System Document
Event Management System Document Event Management System Document
Event Management System Document
 
Going realtime with Socket.IO
Going realtime with Socket.IOGoing realtime with Socket.IO
Going realtime with Socket.IO
 
Food donation project report II
Food donation project report IIFood donation project report II
Food donation project report II
 
Airlines Database Design
Airlines Database DesignAirlines Database Design
Airlines Database Design
 
Presentation on Railway Reservation System
Presentation on Railway Reservation SystemPresentation on Railway Reservation System
Presentation on Railway Reservation System
 
DevOps Powered by Splunk
DevOps Powered by SplunkDevOps Powered by Splunk
DevOps Powered by Splunk
 
Synopsis gor online Tourism.
Synopsis gor online Tourism.Synopsis gor online Tourism.
Synopsis gor online Tourism.
 
Online Voting System ppt
Online Voting System pptOnline Voting System ppt
Online Voting System ppt
 
Taxi service UML
Taxi service UMLTaxi service UML
Taxi service UML
 
Java RMI Presentation
Java RMI PresentationJava RMI Presentation
Java RMI Presentation
 
Introduction to Java 11
Introduction to Java 11 Introduction to Java 11
Introduction to Java 11
 
Final year project presentation in android application
Final year project presentation in android applicationFinal year project presentation in android application
Final year project presentation in android application
 
Asp.net architecture
Asp.net architectureAsp.net architecture
Asp.net architecture
 
Introduction to APIs (Application Programming Interface)
Introduction to APIs (Application Programming Interface) Introduction to APIs (Application Programming Interface)
Introduction to APIs (Application Programming Interface)
 
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshellFluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
 
Airline Reservation System - Software Engineering
Airline Reservation System - Software EngineeringAirline Reservation System - Software Engineering
Airline Reservation System - Software Engineering
 
Online Vegetable Selling project Presentation
Online Vegetable Selling project PresentationOnline Vegetable Selling project Presentation
Online Vegetable Selling project Presentation
 

Similaire à How Flipkart scales PHP

Routage à grande échelle des requêtes via RabbitMQ
Routage à grande échelle des requêtes via RabbitMQRoutage à grande échelle des requêtes via RabbitMQ
Routage à grande échelle des requêtes via RabbitMQScaleway
 
tc server - vfabric hyperic
tc server - vfabric hyperictc server - vfabric hyperic
tc server - vfabric hypericNadia Boumaza
 
Rethinking State Management in Cloud-Native Streaming Systems
Rethinking State Management in Cloud-Native Streaming SystemsRethinking State Management in Cloud-Native Streaming Systems
Rethinking State Management in Cloud-Native Streaming SystemsYingjun Wu
 
Rethinking State Management in Cloud-Native Streaming Systems With Yingjun Wu...
Rethinking State Management in Cloud-Native Streaming Systems With Yingjun Wu...Rethinking State Management in Cloud-Native Streaming Systems With Yingjun Wu...
Rethinking State Management in Cloud-Native Streaming Systems With Yingjun Wu...HostedbyConfluent
 
Caching the Uncacheable [Long Version]
Caching the Uncacheable [Long Version]Caching the Uncacheable [Long Version]
Caching the Uncacheable [Long Version]Fastly
 
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...Ontico
 
Northeast PHP - High Performance PHP
Northeast PHP - High Performance PHPNortheast PHP - High Performance PHP
Northeast PHP - High Performance PHPJonathan Klein
 
Simplifying Hyper-V Management for VMware Administrators
Simplifying Hyper-V Management for VMware AdministratorsSimplifying Hyper-V Management for VMware Administrators
Simplifying Hyper-V Management for VMware Administrators5nine
 
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr MalykFwdays
 
Web前端性能优化 2014
Web前端性能优化 2014Web前端性能优化 2014
Web前端性能优化 2014Yubei Li
 
Evolving Archetecture
Evolving ArchetectureEvolving Archetecture
Evolving Archetectureleo lapworth
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 SystemsDavid Newman
 
Scaling Systems: Architectures that Grow
Scaling Systems: Architectures that GrowScaling Systems: Architectures that Grow
Scaling Systems: Architectures that GrowGibraltar Software
 
The Load Balancer: War Stories with HAProxy
The Load Balancer: War Stories with HAProxyThe Load Balancer: War Stories with HAProxy
The Load Balancer: War Stories with HAProxyGeoff Ballinger
 
Cassandra and drivers
Cassandra and driversCassandra and drivers
Cassandra and driversBen Bromhead
 

Similaire à How Flipkart scales PHP (20)

Routage à grande échelle des requêtes via RabbitMQ
Routage à grande échelle des requêtes via RabbitMQRoutage à grande échelle des requêtes via RabbitMQ
Routage à grande échelle des requêtes via RabbitMQ
 
Demystifying Service Mesh
Demystifying Service MeshDemystifying Service Mesh
Demystifying Service Mesh
 
tc server - vfabric hyperic
tc server - vfabric hyperictc server - vfabric hyperic
tc server - vfabric hyperic
 
Rethinking State Management in Cloud-Native Streaming Systems
Rethinking State Management in Cloud-Native Streaming SystemsRethinking State Management in Cloud-Native Streaming Systems
Rethinking State Management in Cloud-Native Streaming Systems
 
Rethinking State Management in Cloud-Native Streaming Systems With Yingjun Wu...
Rethinking State Management in Cloud-Native Streaming Systems With Yingjun Wu...Rethinking State Management in Cloud-Native Streaming Systems With Yingjun Wu...
Rethinking State Management in Cloud-Native Streaming Systems With Yingjun Wu...
 
Caching the Uncacheable [Long Version]
Caching the Uncacheable [Long Version]Caching the Uncacheable [Long Version]
Caching the Uncacheable [Long Version]
 
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
 
Cdn cs6740
Cdn cs6740Cdn cs6740
Cdn cs6740
 
Northeast PHP - High Performance PHP
Northeast PHP - High Performance PHPNortheast PHP - High Performance PHP
Northeast PHP - High Performance PHP
 
Simplifying Hyper-V Management for VMware Administrators
Simplifying Hyper-V Management for VMware AdministratorsSimplifying Hyper-V Management for VMware Administrators
Simplifying Hyper-V Management for VMware Administrators
 
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
 
Web前端性能优化 2014
Web前端性能优化 2014Web前端性能优化 2014
Web前端性能优化 2014
 
Evolving Archetecture
Evolving ArchetectureEvolving Archetecture
Evolving Archetecture
 
Lattice yapc-slideshare
Lattice yapc-slideshareLattice yapc-slideshare
Lattice yapc-slideshare
 
Istio presentation jhug
Istio presentation jhugIstio presentation jhug
Istio presentation jhug
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 Systems
 
Scaling Systems: Architectures that Grow
Scaling Systems: Architectures that GrowScaling Systems: Architectures that Grow
Scaling Systems: Architectures that Grow
 
Scalable Web Apps
Scalable Web AppsScalable Web Apps
Scalable Web Apps
 
The Load Balancer: War Stories with HAProxy
The Load Balancer: War Stories with HAProxyThe Load Balancer: War Stories with HAProxy
The Load Balancer: War Stories with HAProxy
 
Cassandra and drivers
Cassandra and driversCassandra and drivers
Cassandra and drivers
 

Dernier

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Dernier (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

How Flipkart scales PHP

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n