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

Real Time Communication using Node.js and Socket.io
Real Time Communication using Node.js and Socket.ioReal Time Communication using Node.js and Socket.io
Real Time Communication using Node.js and Socket.ioMindfire Solutions
 
MongoDB Fundamentals
MongoDB FundamentalsMongoDB Fundamentals
MongoDB FundamentalsMongoDB
 
[오픈소스컨설팅]openstack_monitoring_session
[오픈소스컨설팅]openstack_monitoring_session[오픈소스컨설팅]openstack_monitoring_session
[오픈소스컨설팅]openstack_monitoring_sessionChanyeol yoon
 
RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개Wonchang Song
 
Reactive Card Magic: Understanding Spring WebFlux and Project Reactor
Reactive Card Magic: Understanding Spring WebFlux and Project ReactorReactive Card Magic: Understanding Spring WebFlux and Project Reactor
Reactive Card Magic: Understanding Spring WebFlux and Project ReactorVMware Tanzu
 
Ppt full stack developer
Ppt full stack developerPpt full stack developer
Ppt full stack developerSudhirVarpe1
 
[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들NHN FORWARD
 
Web Development on Web Project Presentation
Web Development on Web Project PresentationWeb Development on Web Project Presentation
Web Development on Web Project PresentationMilind Gokhale
 
Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBhargav Anadkat
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
 
Reactive Web 101: WebFlux, WebClient, and Reactor Netty
Reactive Web 101: WebFlux, WebClient, and Reactor NettyReactive Web 101: WebFlux, WebClient, and Reactor Netty
Reactive Web 101: WebFlux, WebClient, and Reactor NettyVMware Tanzu
 
Introduction to Progressive web app (PWA)
Introduction to Progressive web app (PWA)Introduction to Progressive web app (PWA)
Introduction to Progressive web app (PWA)Zhentian Wan
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.jsRob O'Doherty
 
StackStorm DevOps Automation Webinar
StackStorm DevOps Automation WebinarStackStorm DevOps Automation Webinar
StackStorm DevOps Automation WebinarStackStorm
 

Tendances (20)

Real Time Communication using Node.js and Socket.io
Real Time Communication using Node.js and Socket.ioReal Time Communication using Node.js and Socket.io
Real Time Communication using Node.js and Socket.io
 
React Server Side Rendering with Next.js
React Server Side Rendering with Next.jsReact Server Side Rendering with Next.js
React Server Side Rendering with Next.js
 
MongoDB Fundamentals
MongoDB FundamentalsMongoDB Fundamentals
MongoDB Fundamentals
 
[오픈소스컨설팅]openstack_monitoring_session
[오픈소스컨설팅]openstack_monitoring_session[오픈소스컨설팅]openstack_monitoring_session
[오픈소스컨설팅]openstack_monitoring_session
 
RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개
 
Reactive Card Magic: Understanding Spring WebFlux and Project Reactor
Reactive Card Magic: Understanding Spring WebFlux and Project ReactorReactive Card Magic: Understanding Spring WebFlux and Project Reactor
Reactive Card Magic: Understanding Spring WebFlux and Project Reactor
 
Node js introduction
Node js introductionNode js introduction
Node js introduction
 
Ppt full stack developer
Ppt full stack developerPpt full stack developer
Ppt full stack developer
 
Soap Vs Rest
Soap Vs RestSoap Vs Rest
Soap Vs Rest
 
[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들
 
Amazon ElastiCache and Redis
Amazon ElastiCache and RedisAmazon ElastiCache and Redis
Amazon ElastiCache and Redis
 
API Design- Best Practices
API Design-   Best PracticesAPI Design-   Best Practices
API Design- Best Practices
 
Web Development on Web Project Presentation
Web Development on Web Project PresentationWeb Development on Web Project Presentation
Web Development on Web Project Presentation
 
Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPM
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
 
Reactive Web 101: WebFlux, WebClient, and Reactor Netty
Reactive Web 101: WebFlux, WebClient, and Reactor NettyReactive Web 101: WebFlux, WebClient, and Reactor Netty
Reactive Web 101: WebFlux, WebClient, and Reactor Netty
 
Introduction to Progressive web app (PWA)
Introduction to Progressive web app (PWA)Introduction to Progressive web app (PWA)
Introduction to Progressive web app (PWA)
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
CockroachDB
CockroachDBCockroachDB
CockroachDB
 
StackStorm DevOps Automation Webinar
StackStorm DevOps Automation WebinarStackStorm DevOps Automation Webinar
StackStorm DevOps Automation Webinar
 

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

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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Dernier (20)

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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

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