SlideShare a Scribd company logo
1
SOFTWARE
and the Taste of Mayo

      Marco Tabini
         php|architect

       marcot@tabini.ca




                          1
Marco Tabini




               1
Marco Tabini




               1
Marco Tabini




               1
Marco Tabini




               1
Marco Tabini




               1
Marco Tabini




               1
Marco Tabini




               1
Marco Tabini




               1
2
What is Mayo?




                2
3
3
4
4
4
5
5
5
5
WTF????




          5
6
6
Where did they get this guy?



                               7
What does this have to do with
       SOFTWARE???



                                 8
9
CODE




       9
CODE


 +
DATA




       9
CODE


   +
  DATA


   +
INTERFACE




            9
CODE


   +
  DATA


   +
INTERFACE


   =
   APP


            9
CODE




       10
CODE




       10
CODE




       HARDWARE




                  10
CODE




       FIRMWARE
       HARDWARE




                  10
CODE




          O/S
       FIRMWARE
       HARDWARE




                  10
CODE




       WEB O/S
           SERVER
        FIRMWARE
        HARDWARE




                    10
CODE




           PHP
       WEB O/S
            SERVER
        FIRMWARE
        HARDWARE




                     10
CODE




       FRAMEWORK
        WEBPHP
            SERVER
           O/S
        FIRMWARE
        HARDWARE




                     10
CODE




       YOUR CODE
       FRAMEWORK
           PHP
        WEB SERVER
           O/S
        FIRMWARE
         HARDWARE




                     10
11
Hello, World!


                11
Hello, World!




                11
Hello, World!

                  Language      System Calls
                       C             46
                 Shell (TCSH)        37
                   PHP (CLI)        362
                PHP (Apache)        881

                                               11
Hello, World!

                  Language      System Calls
                       C             46
                 Shell (TCSH)        37
                   PHP (CLI)        362
                PHP (Apache)        881

                                               11
Hello, World!

                  Language      System Calls
                       C             46
                 Shell (TCSH)        37
                   PHP (CLI)        362
                PHP (Apache)        881

                                               11
Hello, World!

                  Language      System Calls
                       C             46
                 Shell (TCSH)        37
                   PHP (CLI)        362
                PHP (Apache)        881

                                               11
Hello, World!

                  Language      System Calls
                       C             46
                 Shell (TCSH)        37
                   PHP (CLI)        362
                PHP (Apache)        881

                                               11
Hello, World!

                                 Language      System Calls
          Once
                                      C             47
  Language
       C
                System Calls
                     46         Shell (TCSH)       146
 Shell (TCSH)        37
   PHP (CLI)        362           PHP (CLI)        368
PHP (Apache)        881
                               PHP (Apache)        887

                                                              11
Hello, World!

                                 Language      System Calls
          Once
                                      C             47
  Language
       C
                System Calls
                     46         Shell (TCSH)       146
 Shell (TCSH)        37
   PHP (CLI)        362           PHP (CLI)        368
PHP (Apache)        881
                               PHP (Apache)        887

                                                              11
Hello, World!

                                 Language      System Calls
          Once
                                      C             47
  Language
       C
                System Calls
                     46         Shell (TCSH)       146
 Shell (TCSH)        37
   PHP (CLI)        362           PHP (CLI)        368
PHP (Apache)        881
                               PHP (Apache)        887

                                                              11
Hello, World!

                                 Language      System Calls
          Once
                                      C             47
  Language
       C
                System Calls
                     46         Shell (TCSH)       146
 Shell (TCSH)        37
   PHP (CLI)        362           PHP (CLI)        368
PHP (Apache)        881
                               PHP (Apache)        887

                                                              11
Hello, World!

                                 Language      System Calls
          Once
                                      C             47
  Language
       C
                System Calls
                     46         Shell (TCSH)       146
 Shell (TCSH)        37
   PHP (CLI)        362           PHP (CLI)        368
PHP (Apache)        881
                               PHP (Apache)        887

                                                              11
Hello, World!

          Once                           Twice

  Language      System Calls     Language      System Calls
       C             46               C             47
 Shell (TCSH)        37         Shell (TCSH)       146
   PHP (CLI)        362           PHP (CLI)        368
PHP (Apache)        881        PHP (Apache)        887




                                                              11
12
Language     Time
     C       2.5hrs
  Erlang     1.8hrs
 PHP (CLI)   N/A*


                      12
Language     Time
     C       2.5hrs
  Erlang     1.8hrs
 PHP (CLI)   N/A*


                      12
Language     Time
     C       2.5hrs
  Erlang     1.8hrs
 PHP (CLI)   N/A*


                      12
Language                              Time
          C                                2.5hrs
       Erlang                              1.8hrs
      PHP (CLI)                            N/A*
* Sorry, had to catch flight to Amsterdam




                                                    12
Ease of use   Performance




                            13
Ease of use   Performance




ASM           C     PHP           Rails




                                          13
Ease of use   Performance




ASM           C     PHP           Rails




                                          13
Ease of use   Performance




ASM           C     PHP           Rails




                                          13
Ease of use   Performance




ASM           C     PHP           Rails




                                          13
Ease of use   Performance




ASM           C     PHP           Rails




                                          13
Single or double quotes?




                           14
Single or double quotes?

              vs.



file_get_contents(‘3gb_file.txt’)

                                  14
for? foreach? while?




                       15
for? foreach? while?
                   vs.

select * from
gigantic_unindexed_table
inner join
world_population_database
inner join
i_should_be_growing_plants_instead_of_coding


                                               15
CODE
SCALABILITY

              16
INFRA        CODE           DATA
STRUCTURE   SCALABILITY    SCALABILITY



  COST
               SOURCE          IT
   OF
            PERFORMANCE   ORGANIZATION
OWNERSHIP




                                         16
Profit Density
                                     (Profit / Pages)




Revenue Density   Page Impressions
                                                       17
Profit Density
                                     (Profit / Pages)




Revenue Density   Page Impressions
                                                       17
Profit Density
                                     (Profit / Pages)




Revenue Density   Page Impressions
                                                       17
Profit Density
                                     (Profit / Pages)




Revenue Density   Page Impressions
                                                       17
Profit Density
                                     (Profit / Pages)




Revenue Density   Page Impressions
                                                       17
Profit Density
                                     (Profit / Pages)




Revenue Density   Page Impressions
                                                       17
Cost Density
  (Cost / Pages)




                   18
Cost Density
  (Cost / Pages)




                   18
Cost Density
  (Cost / Pages)




                   18
Cost Density
  (Cost / Pages)




                   18
Cost Density
  (Cost / Pages)




                   18
Cost Density
  (Cost / Pages)




                   18
Cost Density
  (Cost / Pages)




                   19
Cost Density
  (Cost / Pages)




                   19
Cost Density
  (Cost / Pages)




                   19
Cost Density
  (Cost / Pages)




                   19
Cost Density
          (Cost / Pages)
FAIL!




                           19
Cost Density
  (Cost / Pages)

                   Bad   Good




                                20
Cost Density
  (Cost / Pages)

                   Bad   Good




                                20
Cost Density Problems


            •   Wrong scalability strategy

 Database   •   Wrong database type


            •   Wrong database use




                                             21
Cost Density Problems


            •   Architecture not scalable


            •   No use of parallelization


            •   No use of queuing




                                            22
Solving your infrastructure
         problems

     (let someone else deal with them)


                                         23
Example: AWS

•   300,000 page impressions / mo.

•   Avg. 100kiB / page (== 30 GB / mo), 30GB Data

•   20 queries per page, 20msec / query

•   30 objects per page ( == 9,000,000 GET reqs/month)

•   100 reqs/server/sec ( == 259,000,000 reqs/server/month)

•   2 servers

                                                              24
Example: AWS




               25
Example: AWS
    Item         Service   Cost/mo
   Storage          S3       4.5
Data Transfer       S3        30
Data Requests       S3        1
 DB Storage     SimpleDB      45
DB CPU Usage    SimpleDB      55
Server Usage       EC2       144
                 TOTALS     279.5
                                     25
Example: AWS
    Item         Service   Cost/mo
   Storage          S3       4.5
Data Transfer       S3        30
Data Requests       S3        1
 DB Storage     SimpleDB      45
DB CPU Usage    SimpleDB      55
Server Usage       EC2       144
                 TOTALS     279.5
                                     25
Example: AWS
    Item         Service   Cost/mo
   Storage          S3       4.5
Data Transfer       S3        30
Data Requests       S3        1
 DB Storage     SimpleDB      45
DB CPU Usage    SimpleDB      55
Server Usage       EC2       144
                 TOTALS     279.5
                                     25
Example: AWS
    Item         Service   Cost/mo
   Storage          S3       4.5
Data Transfer       S3        30
Data Requests       S3        1
 DB Storage     SimpleDB      45
DB CPU Usage    SimpleDB      55
Server Usage       EC2       144
                 TOTALS     279.5
                                     25
Example: AWS
    Item         Service   Cost/mo
   Storage          S3       4.5
Data Transfer       S3        30
Data Requests       S3        1
 DB Storage     SimpleDB      45
DB CPU Usage    SimpleDB      55
Server Usage       EC2       144
                 TOTALS     279.5
                                     25
Example: AWS
    Item         Service   Cost/mo
   Storage          S3       4.5
Data Transfer       S3        30
Data Requests       S3        1
 DB Storage     SimpleDB      45
DB CPU Usage    SimpleDB      55
Server Usage       EC2       144
                 TOTALS     279.5
                                     25
Example: AWS
    Item         Service   Cost/mo
   Storage          S3       4.5
Data Transfer       S3        30
Data Requests       S3        1
 DB Storage     SimpleDB      45
DB CPU Usage    SimpleDB      55
Server Usage       EC2       144
                 TOTALS     279.5
                                     25
Example: AWS
    Item         Service   Cost/mo
   Storage          S3       4.5
Data Transfer       S3        30
Data Requests       S3        1
 DB Storage     SimpleDB      45
DB CPU Usage    SimpleDB      55
Server Usage       EC2       144
                 TOTALS     279.5
                                     25
$280 / month
                          = $0.09 CPM
3,000,000 pages / month    (0.9% @ $10 RPM)




                                              26
Example: AWS

•   300,000,000 page impressions

•   Avg. 100kiB / page (== 30 TB / mo), 1TB Data

•   20 queries per page, 20msec / query

•   30 objects per page ( == 9,000,000,000 GET reqs/month)

•   100 reqs/server/sec ( == 259,000,000 reqs/server/month)

•   35 servers

                                                              27
Example: AWS




               28
Example: AWS
    Item         Service   Cost/mo
   Storage          S3        150
Data Transfer       S3       4,300
Data Requests       S3       9,000
 DB Storage     SimpleDB     1,500
DB CPU Usage    SimpleDB     3,800
Server Usage       EC2       2,500
                 TOTALS     21,250
                                     28
Example: AWS
    Item         Service   Cost/mo
   Storage          S3        150
Data Transfer       S3       4,300
Data Requests       S3       9,000
 DB Storage     SimpleDB     1,500
DB CPU Usage    SimpleDB     3,800
Server Usage       EC2       2,500
                 TOTALS     21,250
                                     28
Example: AWS
    Item         Service   Cost/mo
   Storage          S3        150
Data Transfer       S3       4,300
Data Requests       S3       9,000
 DB Storage     SimpleDB     1,500
DB CPU Usage    SimpleDB     3,800
Server Usage       EC2       2,500
                 TOTALS     21,250
                                     28
Example: AWS
    Item         Service   Cost/mo
   Storage          S3        150
Data Transfer       S3       4,300
Data Requests       S3       9,000
 DB Storage     SimpleDB     1,500
DB CPU Usage    SimpleDB     3,800
Server Usage       EC2       2,500
                 TOTALS     21,250
                                     28
Example: AWS
    Item         Service   Cost/mo
   Storage          S3        150
Data Transfer       S3       4,300
Data Requests       S3       9,000
 DB Storage     SimpleDB     1,500
DB CPU Usage    SimpleDB     3,800
Server Usage       EC2       2,500
                 TOTALS     21,250
                                     28
Example: AWS
    Item         Service   Cost/mo
   Storage          S3        150
Data Transfer       S3       4,300
Data Requests       S3       9,000
 DB Storage     SimpleDB     1,500
DB CPU Usage    SimpleDB     3,800
Server Usage       EC2       2,500
                 TOTALS     21,250
                                     28
Example: AWS
    Item         Service   Cost/mo
   Storage          S3        150
Data Transfer       S3       4,300
Data Requests       S3       9,000
 DB Storage     SimpleDB     1,500
DB CPU Usage    SimpleDB     3,800
Server Usage       EC2       2,500
                 TOTALS     21,250
                                     28
Example: AWS
    Item         Service   Cost/mo
   Storage          S3        150
Data Transfer       S3       4,300
Data Requests       S3       9,000
 DB Storage     SimpleDB     1,500
DB CPU Usage    SimpleDB     3,800
Server Usage       EC2       2,500
                 TOTALS     21,250
                                     28
$21,250 / month
                      = $0.08 CPM
300,000,000 / month    (0.8% @ $10 RPM)




                                          29
Them




You

       30
Design
Choose
 Scale
         31
Design THINK BIG—ITS CHEAP!
     Choose
        Scale
                              31
Design THINK BIG—ITS CHEAP!
Choose THE RIGHT TOOLS
        Scale
                              31
Design THINK BIG—ITS CHEAP!
Choose THE RIGHT TOOLS
Scale EVERYTHING, ALWAYS
                              31
Questions? Agree? Disagree? Want to rant?


                  marcot@tabini.ca
             http://mtabini.blogspot.com
              http://mtabini.com/twitter




                                            32

More Related Content

What's hot

[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
Min-Yih Hsu
 
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Kentaro Ebisawa
 
Docker 2014
Docker 2014Docker 2014
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP IntegrationBKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
Linaro
 
Open Source Toolchains to Manage Cloud Infrastructure
Open Source Toolchains to Manage Cloud InfrastructureOpen Source Toolchains to Manage Cloud Infrastructure
Open Source Toolchains to Manage Cloud Infrastructure
Mark Hinkle
 
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
Felipe Prado
 
Brno Perl Mongers 28.5.2015 - Perl family by mj41
Brno Perl Mongers 28.5.2015 - Perl family by mj41Brno Perl Mongers 28.5.2015 - Perl family by mj41
Brno Perl Mongers 28.5.2015 - Perl family by mj41
Michal Jurosz
 
Transferring Changes Between Perforce Servers
Transferring Changes Between Perforce ServersTransferring Changes Between Perforce Servers
Transferring Changes Between Perforce Servers
Perforce
 
How to implement a simple dalvik virtual machine
How to implement a simple dalvik virtual machineHow to implement a simple dalvik virtual machine
How to implement a simple dalvik virtual machine
Chun-Yu Wang
 
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on CloudDayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
Jung-Hong Kim
 
为11.2.0.2 grid infrastructure添加节点
为11.2.0.2 grid infrastructure添加节点为11.2.0.2 grid infrastructure添加节点
为11.2.0.2 grid infrastructure添加节点
maclean liu
 
Going FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixGoing FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at Netflix
Yunong Xiao
 
Architecting The Future - WeRise Women in Technology
Architecting The Future - WeRise Women in TechnologyArchitecting The Future - WeRise Women in Technology
Architecting The Future - WeRise Women in Technology
Daniel Barker
 
Kamaelia - Networking Using Generators
Kamaelia - Networking Using GeneratorsKamaelia - Networking Using Generators
Kamaelia - Networking Using Generators
kamaelian
 
Overview: Building Open Source Cloud Computing Environments
Overview: Building Open Source Cloud Computing EnvironmentsOverview: Building Open Source Cloud Computing Environments
Overview: Building Open Source Cloud Computing Environments
Mark Hinkle
 
Upgrade ipa to rhel 7
Upgrade ipa to rhel 7Upgrade ipa to rhel 7
Upgrade ipa to rhel 7
Amjad Yaseen
 
sed.pdf
sed.pdfsed.pdf
sed.pdf
MaenAlWedyan
 
Go 1.8 Release Party
Go 1.8 Release PartyGo 1.8 Release Party
Go 1.8 Release Party
Rodolfo Carvalho
 
H2O - making the Web faster
H2O - making the Web fasterH2O - making the Web faster
H2O - making the Web faster
Kazuho Oku
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
Linaro
 

What's hot (20)

[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
 
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
Howto createOpenFlow Switchusing FPGA (at FPGAX#6)
 
Docker 2014
Docker 2014Docker 2014
Docker 2014
 
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP IntegrationBKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
 
Open Source Toolchains to Manage Cloud Infrastructure
Open Source Toolchains to Manage Cloud InfrastructureOpen Source Toolchains to Manage Cloud Infrastructure
Open Source Toolchains to Manage Cloud Infrastructure
 
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
DEF CON 27 - workshop - ISAAC EVANS - discover exploit and eradicate entire v...
 
Brno Perl Mongers 28.5.2015 - Perl family by mj41
Brno Perl Mongers 28.5.2015 - Perl family by mj41Brno Perl Mongers 28.5.2015 - Perl family by mj41
Brno Perl Mongers 28.5.2015 - Perl family by mj41
 
Transferring Changes Between Perforce Servers
Transferring Changes Between Perforce ServersTransferring Changes Between Perforce Servers
Transferring Changes Between Perforce Servers
 
How to implement a simple dalvik virtual machine
How to implement a simple dalvik virtual machineHow to implement a simple dalvik virtual machine
How to implement a simple dalvik virtual machine
 
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on CloudDayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
 
为11.2.0.2 grid infrastructure添加节点
为11.2.0.2 grid infrastructure添加节点为11.2.0.2 grid infrastructure添加节点
为11.2.0.2 grid infrastructure添加节点
 
Going FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixGoing FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at Netflix
 
Architecting The Future - WeRise Women in Technology
Architecting The Future - WeRise Women in TechnologyArchitecting The Future - WeRise Women in Technology
Architecting The Future - WeRise Women in Technology
 
Kamaelia - Networking Using Generators
Kamaelia - Networking Using GeneratorsKamaelia - Networking Using Generators
Kamaelia - Networking Using Generators
 
Overview: Building Open Source Cloud Computing Environments
Overview: Building Open Source Cloud Computing EnvironmentsOverview: Building Open Source Cloud Computing Environments
Overview: Building Open Source Cloud Computing Environments
 
Upgrade ipa to rhel 7
Upgrade ipa to rhel 7Upgrade ipa to rhel 7
Upgrade ipa to rhel 7
 
sed.pdf
sed.pdfsed.pdf
sed.pdf
 
Go 1.8 Release Party
Go 1.8 Release PartyGo 1.8 Release Party
Go 1.8 Release Party
 
H2O - making the Web faster
H2O - making the Web fasterH2O - making the Web faster
H2O - making the Web faster
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
 

Similar to Software And The Taste Of Mayo - Marco Tabini

PHP Performance with APC + Memcached
PHP Performance with APC + MemcachedPHP Performance with APC + Memcached
PHP Performance with APC + Memcached
Ford AntiTrust
 
FortranCon2020: Highly Parallel Fortran and OpenACC Directives
FortranCon2020: Highly Parallel Fortran and OpenACC DirectivesFortranCon2020: Highly Parallel Fortran and OpenACC Directives
FortranCon2020: Highly Parallel Fortran and OpenACC Directives
Jeff Larkin
 
Streaming 101: Hello World
Streaming 101:  Hello WorldStreaming 101:  Hello World
Streaming 101: Hello World
Josh Fischer
 
PRoot improved kernel compatibility
PRoot improved kernel compatibilityPRoot improved kernel compatibility
PRoot improved kernel compatibility
cvinc02
 
Pi Is For Python
Pi Is For PythonPi Is For Python
Pi Is For Python
Brad Fortner
 
Whyp97
Whyp97Whyp97
Whyp97
bisristt
 
CLI, the other SAPI
CLI, the other SAPICLI, the other SAPI
CLI, the other SAPI
Combell NV
 
PHP 7 OPCache extension review
PHP 7 OPCache extension reviewPHP 7 OPCache extension review
PHP 7 OPCache extension review
julien pauli
 
Getting started with pic microcontrollers
Getting started with pic microcontrollersGetting started with pic microcontrollers
Getting started with pic microcontrollers
Pantech ProLabs India Pvt Ltd
 
Dutch php conference_2010_opm
Dutch php conference_2010_opmDutch php conference_2010_opm
Dutch php conference_2010_opm
isnull
 
Baby Demuxed's First Assembly Language Function
Baby Demuxed's First Assembly Language FunctionBaby Demuxed's First Assembly Language Function
Baby Demuxed's First Assembly Language Function
Kieran Kunhya
 
PHP & Performance
PHP & PerformancePHP & Performance
PHP & Performance
毅 吕
 
Dive into exploit development
Dive into exploit developmentDive into exploit development
Dive into exploit development
Payampardaz
 
Prepare for PHP Test Fest 2009
Prepare for PHP Test Fest 2009Prepare for PHP Test Fest 2009
Prepare for PHP Test Fest 2009
PHPBelgium
 
[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4
Open Networking Summits
 
Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?
Eelco Visser
 
走向开源:提交CPAN模块Step by Step
走向开源:提交CPAN模块Step by Step走向开源:提交CPAN模块Step by Step
走向开源:提交CPAN模块Step by Step
pluschen
 
php & performance
 php & performance php & performance
php & performance
simon8410
 
What Can Reverse Engineering Do For You?
What Can Reverse Engineering Do For You?What Can Reverse Engineering Do For You?
What Can Reverse Engineering Do For You?
Amanda Rousseau
 
NativeBoost
NativeBoostNativeBoost
NativeBoost
ESUG
 

Similar to Software And The Taste Of Mayo - Marco Tabini (20)

PHP Performance with APC + Memcached
PHP Performance with APC + MemcachedPHP Performance with APC + Memcached
PHP Performance with APC + Memcached
 
FortranCon2020: Highly Parallel Fortran and OpenACC Directives
FortranCon2020: Highly Parallel Fortran and OpenACC DirectivesFortranCon2020: Highly Parallel Fortran and OpenACC Directives
FortranCon2020: Highly Parallel Fortran and OpenACC Directives
 
Streaming 101: Hello World
Streaming 101:  Hello WorldStreaming 101:  Hello World
Streaming 101: Hello World
 
PRoot improved kernel compatibility
PRoot improved kernel compatibilityPRoot improved kernel compatibility
PRoot improved kernel compatibility
 
Pi Is For Python
Pi Is For PythonPi Is For Python
Pi Is For Python
 
Whyp97
Whyp97Whyp97
Whyp97
 
CLI, the other SAPI
CLI, the other SAPICLI, the other SAPI
CLI, the other SAPI
 
PHP 7 OPCache extension review
PHP 7 OPCache extension reviewPHP 7 OPCache extension review
PHP 7 OPCache extension review
 
Getting started with pic microcontrollers
Getting started with pic microcontrollersGetting started with pic microcontrollers
Getting started with pic microcontrollers
 
Dutch php conference_2010_opm
Dutch php conference_2010_opmDutch php conference_2010_opm
Dutch php conference_2010_opm
 
Baby Demuxed's First Assembly Language Function
Baby Demuxed's First Assembly Language FunctionBaby Demuxed's First Assembly Language Function
Baby Demuxed's First Assembly Language Function
 
PHP & Performance
PHP & PerformancePHP & Performance
PHP & Performance
 
Dive into exploit development
Dive into exploit developmentDive into exploit development
Dive into exploit development
 
Prepare for PHP Test Fest 2009
Prepare for PHP Test Fest 2009Prepare for PHP Test Fest 2009
Prepare for PHP Test Fest 2009
 
[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4
 
Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?
 
走向开源:提交CPAN模块Step by Step
走向开源:提交CPAN模块Step by Step走向开源:提交CPAN模块Step by Step
走向开源:提交CPAN模块Step by Step
 
php & performance
 php & performance php & performance
php & performance
 
What Can Reverse Engineering Do For You?
What Can Reverse Engineering Do For You?What Can Reverse Engineering Do For You?
What Can Reverse Engineering Do For You?
 
NativeBoost
NativeBoostNativeBoost
NativeBoost
 

More from dpc

ezComponents - Derick Rethans
ezComponents - Derick RethansezComponents - Derick Rethans
ezComponents - Derick Rethans
dpc
 
Best Practices with Zend Framework - Matthew Weier O'Phinney
Best Practices with Zend Framework - Matthew Weier O'PhinneyBest Practices with Zend Framework - Matthew Weier O'Phinney
Best Practices with Zend Framework - Matthew Weier O'Phinney
dpc
 
State Of PHP - Zeev Suraski
State Of PHP - Zeev SuraskiState Of PHP - Zeev Suraski
State Of PHP - Zeev Suraski
dpc
 
Symfony 1.1 - Fabien Potencier
Symfony 1.1 - Fabien PotencierSymfony 1.1 - Fabien Potencier
Symfony 1.1 - Fabien Potencier
dpc
 
Advanced PHP: Design Patterns - Dennis-Jan Broerse
Advanced PHP: Design Patterns - Dennis-Jan BroerseAdvanced PHP: Design Patterns - Dennis-Jan Broerse
Advanced PHP: Design Patterns - Dennis-Jan Broerse
dpc
 
New Features PHPUnit 3.3 - Sebastian Bergmann
New Features PHPUnit 3.3 - Sebastian BergmannNew Features PHPUnit 3.3 - Sebastian Bergmann
New Features PHPUnit 3.3 - Sebastian Bergmann
dpc
 
PHP 5.3 and PHP 6; a look ahead - Stefan Priebsch
PHP 5.3 and PHP 6; a look ahead - Stefan PriebschPHP 5.3 and PHP 6; a look ahead - Stefan Priebsch
PHP 5.3 and PHP 6; a look ahead - Stefan Priebsch
dpc
 
Quality Assurance in PHP projects - Sebastian Bergmann
Quality Assurance in PHP projects - Sebastian BergmannQuality Assurance in PHP projects - Sebastian Bergmann
Quality Assurance in PHP projects - Sebastian Bergmann
dpc
 
An Infrastructure for Team Development - Gaylord Aulke
An Infrastructure for Team Development - Gaylord AulkeAn Infrastructure for Team Development - Gaylord Aulke
An Infrastructure for Team Development - Gaylord Aulke
dpc
 
Enterprise PHP Development - Ivo Jansch
Enterprise PHP Development - Ivo JanschEnterprise PHP Development - Ivo Jansch
Enterprise PHP Development - Ivo Jansch
dpc
 
DPC2008 Intro - Ivo Jansch
DPC2008 Intro - Ivo JanschDPC2008 Intro - Ivo Jansch
DPC2008 Intro - Ivo Jansch
dpc
 
DPC 2007 My First Mashup (Cal Evans)
DPC 2007 My First Mashup (Cal Evans)DPC 2007 My First Mashup (Cal Evans)
DPC 2007 My First Mashup (Cal Evans)
dpc
 
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
dpc
 
DPC2007 Zend Framework (Gaylord Aulke)
DPC2007 Zend Framework (Gaylord Aulke)DPC2007 Zend Framework (Gaylord Aulke)
DPC2007 Zend Framework (Gaylord Aulke)
dpc
 
DPC2007 Objects Of Desire (Kevlin Henney)
DPC2007 Objects Of Desire (Kevlin Henney)DPC2007 Objects Of Desire (Kevlin Henney)
DPC2007 Objects Of Desire (Kevlin Henney)
dpc
 
DPC2007 Symfony (Stefan Koopmanschap)
DPC2007 Symfony (Stefan Koopmanschap)DPC2007 Symfony (Stefan Koopmanschap)
DPC2007 Symfony (Stefan Koopmanschap)
dpc
 
DPC2007 PHP And Oracle (Kuassi Mensah)
DPC2007 PHP And Oracle (Kuassi Mensah)DPC2007 PHP And Oracle (Kuassi Mensah)
DPC2007 PHP And Oracle (Kuassi Mensah)
dpc
 
DPC2007 Case Study Surfnet (Herman Van Dompseler)
DPC2007 Case Study Surfnet (Herman Van Dompseler)DPC2007 Case Study Surfnet (Herman Van Dompseler)
DPC2007 Case Study Surfnet (Herman Van Dompseler)
dpc
 
DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)
DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)
DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)
dpc
 
DPC2007 PDO (Lukas Kahwe Smith)
DPC2007 PDO (Lukas Kahwe Smith)DPC2007 PDO (Lukas Kahwe Smith)
DPC2007 PDO (Lukas Kahwe Smith)
dpc
 

More from dpc (20)

ezComponents - Derick Rethans
ezComponents - Derick RethansezComponents - Derick Rethans
ezComponents - Derick Rethans
 
Best Practices with Zend Framework - Matthew Weier O'Phinney
Best Practices with Zend Framework - Matthew Weier O'PhinneyBest Practices with Zend Framework - Matthew Weier O'Phinney
Best Practices with Zend Framework - Matthew Weier O'Phinney
 
State Of PHP - Zeev Suraski
State Of PHP - Zeev SuraskiState Of PHP - Zeev Suraski
State Of PHP - Zeev Suraski
 
Symfony 1.1 - Fabien Potencier
Symfony 1.1 - Fabien PotencierSymfony 1.1 - Fabien Potencier
Symfony 1.1 - Fabien Potencier
 
Advanced PHP: Design Patterns - Dennis-Jan Broerse
Advanced PHP: Design Patterns - Dennis-Jan BroerseAdvanced PHP: Design Patterns - Dennis-Jan Broerse
Advanced PHP: Design Patterns - Dennis-Jan Broerse
 
New Features PHPUnit 3.3 - Sebastian Bergmann
New Features PHPUnit 3.3 - Sebastian BergmannNew Features PHPUnit 3.3 - Sebastian Bergmann
New Features PHPUnit 3.3 - Sebastian Bergmann
 
PHP 5.3 and PHP 6; a look ahead - Stefan Priebsch
PHP 5.3 and PHP 6; a look ahead - Stefan PriebschPHP 5.3 and PHP 6; a look ahead - Stefan Priebsch
PHP 5.3 and PHP 6; a look ahead - Stefan Priebsch
 
Quality Assurance in PHP projects - Sebastian Bergmann
Quality Assurance in PHP projects - Sebastian BergmannQuality Assurance in PHP projects - Sebastian Bergmann
Quality Assurance in PHP projects - Sebastian Bergmann
 
An Infrastructure for Team Development - Gaylord Aulke
An Infrastructure for Team Development - Gaylord AulkeAn Infrastructure for Team Development - Gaylord Aulke
An Infrastructure for Team Development - Gaylord Aulke
 
Enterprise PHP Development - Ivo Jansch
Enterprise PHP Development - Ivo JanschEnterprise PHP Development - Ivo Jansch
Enterprise PHP Development - Ivo Jansch
 
DPC2008 Intro - Ivo Jansch
DPC2008 Intro - Ivo JanschDPC2008 Intro - Ivo Jansch
DPC2008 Intro - Ivo Jansch
 
DPC 2007 My First Mashup (Cal Evans)
DPC 2007 My First Mashup (Cal Evans)DPC 2007 My First Mashup (Cal Evans)
DPC 2007 My First Mashup (Cal Evans)
 
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
 
DPC2007 Zend Framework (Gaylord Aulke)
DPC2007 Zend Framework (Gaylord Aulke)DPC2007 Zend Framework (Gaylord Aulke)
DPC2007 Zend Framework (Gaylord Aulke)
 
DPC2007 Objects Of Desire (Kevlin Henney)
DPC2007 Objects Of Desire (Kevlin Henney)DPC2007 Objects Of Desire (Kevlin Henney)
DPC2007 Objects Of Desire (Kevlin Henney)
 
DPC2007 Symfony (Stefan Koopmanschap)
DPC2007 Symfony (Stefan Koopmanschap)DPC2007 Symfony (Stefan Koopmanschap)
DPC2007 Symfony (Stefan Koopmanschap)
 
DPC2007 PHP And Oracle (Kuassi Mensah)
DPC2007 PHP And Oracle (Kuassi Mensah)DPC2007 PHP And Oracle (Kuassi Mensah)
DPC2007 PHP And Oracle (Kuassi Mensah)
 
DPC2007 Case Study Surfnet (Herman Van Dompseler)
DPC2007 Case Study Surfnet (Herman Van Dompseler)DPC2007 Case Study Surfnet (Herman Van Dompseler)
DPC2007 Case Study Surfnet (Herman Van Dompseler)
 
DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)
DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)
DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)
 
DPC2007 PDO (Lukas Kahwe Smith)
DPC2007 PDO (Lukas Kahwe Smith)DPC2007 PDO (Lukas Kahwe Smith)
DPC2007 PDO (Lukas Kahwe Smith)
 

Recently uploaded

Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 

Recently uploaded (20)

Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 

Software And The Taste Of Mayo - Marco Tabini

  • 1. 1
  • 2. SOFTWARE and the Taste of Mayo Marco Tabini php|architect marcot@tabini.ca 1
  • 11. 2
  • 13. 3
  • 14. 3
  • 15. 4
  • 16. 4
  • 17. 4
  • 18. 5
  • 19. 5
  • 20. 5
  • 21. 5
  • 23. 6
  • 24. 6
  • 25. Where did they get this guy? 7
  • 26. What does this have to do with SOFTWARE??? 8
  • 27. 9
  • 28. CODE 9
  • 30. CODE + DATA + INTERFACE 9
  • 31. CODE + DATA + INTERFACE = APP 9
  • 32. CODE 10
  • 33. CODE 10
  • 34. CODE HARDWARE 10
  • 35. CODE FIRMWARE HARDWARE 10
  • 36. CODE O/S FIRMWARE HARDWARE 10
  • 37. CODE WEB O/S SERVER FIRMWARE HARDWARE 10
  • 38. CODE PHP WEB O/S SERVER FIRMWARE HARDWARE 10
  • 39. CODE FRAMEWORK WEBPHP SERVER O/S FIRMWARE HARDWARE 10
  • 40. CODE YOUR CODE FRAMEWORK PHP WEB SERVER O/S FIRMWARE HARDWARE 10
  • 41. 11
  • 44. Hello, World! Language System Calls C 46 Shell (TCSH) 37 PHP (CLI) 362 PHP (Apache) 881 11
  • 45. Hello, World! Language System Calls C 46 Shell (TCSH) 37 PHP (CLI) 362 PHP (Apache) 881 11
  • 46. Hello, World! Language System Calls C 46 Shell (TCSH) 37 PHP (CLI) 362 PHP (Apache) 881 11
  • 47. Hello, World! Language System Calls C 46 Shell (TCSH) 37 PHP (CLI) 362 PHP (Apache) 881 11
  • 48. Hello, World! Language System Calls C 46 Shell (TCSH) 37 PHP (CLI) 362 PHP (Apache) 881 11
  • 49. Hello, World! Language System Calls Once C 47 Language C System Calls 46 Shell (TCSH) 146 Shell (TCSH) 37 PHP (CLI) 362 PHP (CLI) 368 PHP (Apache) 881 PHP (Apache) 887 11
  • 50. Hello, World! Language System Calls Once C 47 Language C System Calls 46 Shell (TCSH) 146 Shell (TCSH) 37 PHP (CLI) 362 PHP (CLI) 368 PHP (Apache) 881 PHP (Apache) 887 11
  • 51. Hello, World! Language System Calls Once C 47 Language C System Calls 46 Shell (TCSH) 146 Shell (TCSH) 37 PHP (CLI) 362 PHP (CLI) 368 PHP (Apache) 881 PHP (Apache) 887 11
  • 52. Hello, World! Language System Calls Once C 47 Language C System Calls 46 Shell (TCSH) 146 Shell (TCSH) 37 PHP (CLI) 362 PHP (CLI) 368 PHP (Apache) 881 PHP (Apache) 887 11
  • 53. Hello, World! Language System Calls Once C 47 Language C System Calls 46 Shell (TCSH) 146 Shell (TCSH) 37 PHP (CLI) 362 PHP (CLI) 368 PHP (Apache) 881 PHP (Apache) 887 11
  • 54. Hello, World! Once Twice Language System Calls Language System Calls C 46 C 47 Shell (TCSH) 37 Shell (TCSH) 146 PHP (CLI) 362 PHP (CLI) 368 PHP (Apache) 881 PHP (Apache) 887 11
  • 55. 12
  • 56. Language Time C 2.5hrs Erlang 1.8hrs PHP (CLI) N/A* 12
  • 57. Language Time C 2.5hrs Erlang 1.8hrs PHP (CLI) N/A* 12
  • 58. Language Time C 2.5hrs Erlang 1.8hrs PHP (CLI) N/A* 12
  • 59. Language Time C 2.5hrs Erlang 1.8hrs PHP (CLI) N/A* * Sorry, had to catch flight to Amsterdam 12
  • 60. Ease of use Performance 13
  • 61. Ease of use Performance ASM C PHP Rails 13
  • 62. Ease of use Performance ASM C PHP Rails 13
  • 63. Ease of use Performance ASM C PHP Rails 13
  • 64. Ease of use Performance ASM C PHP Rails 13
  • 65. Ease of use Performance ASM C PHP Rails 13
  • 66. Single or double quotes? 14
  • 67. Single or double quotes? vs. file_get_contents(‘3gb_file.txt’) 14
  • 69. for? foreach? while? vs. select * from gigantic_unindexed_table inner join world_population_database inner join i_should_be_growing_plants_instead_of_coding 15
  • 71. INFRA CODE DATA STRUCTURE SCALABILITY SCALABILITY COST SOURCE IT OF PERFORMANCE ORGANIZATION OWNERSHIP 16
  • 72. Profit Density (Profit / Pages) Revenue Density Page Impressions 17
  • 73. Profit Density (Profit / Pages) Revenue Density Page Impressions 17
  • 74. Profit Density (Profit / Pages) Revenue Density Page Impressions 17
  • 75. Profit Density (Profit / Pages) Revenue Density Page Impressions 17
  • 76. Profit Density (Profit / Pages) Revenue Density Page Impressions 17
  • 77. Profit Density (Profit / Pages) Revenue Density Page Impressions 17
  • 78. Cost Density (Cost / Pages) 18
  • 79. Cost Density (Cost / Pages) 18
  • 80. Cost Density (Cost / Pages) 18
  • 81. Cost Density (Cost / Pages) 18
  • 82. Cost Density (Cost / Pages) 18
  • 83. Cost Density (Cost / Pages) 18
  • 84. Cost Density (Cost / Pages) 19
  • 85. Cost Density (Cost / Pages) 19
  • 86. Cost Density (Cost / Pages) 19
  • 87. Cost Density (Cost / Pages) 19
  • 88. Cost Density (Cost / Pages) FAIL! 19
  • 89. Cost Density (Cost / Pages) Bad Good 20
  • 90. Cost Density (Cost / Pages) Bad Good 20
  • 91. Cost Density Problems • Wrong scalability strategy Database • Wrong database type • Wrong database use 21
  • 92. Cost Density Problems • Architecture not scalable • No use of parallelization • No use of queuing 22
  • 93. Solving your infrastructure problems (let someone else deal with them) 23
  • 94. Example: AWS • 300,000 page impressions / mo. • Avg. 100kiB / page (== 30 GB / mo), 30GB Data • 20 queries per page, 20msec / query • 30 objects per page ( == 9,000,000 GET reqs/month) • 100 reqs/server/sec ( == 259,000,000 reqs/server/month) • 2 servers 24
  • 96. Example: AWS Item Service Cost/mo Storage S3 4.5 Data Transfer S3 30 Data Requests S3 1 DB Storage SimpleDB 45 DB CPU Usage SimpleDB 55 Server Usage EC2 144 TOTALS 279.5 25
  • 97. Example: AWS Item Service Cost/mo Storage S3 4.5 Data Transfer S3 30 Data Requests S3 1 DB Storage SimpleDB 45 DB CPU Usage SimpleDB 55 Server Usage EC2 144 TOTALS 279.5 25
  • 98. Example: AWS Item Service Cost/mo Storage S3 4.5 Data Transfer S3 30 Data Requests S3 1 DB Storage SimpleDB 45 DB CPU Usage SimpleDB 55 Server Usage EC2 144 TOTALS 279.5 25
  • 99. Example: AWS Item Service Cost/mo Storage S3 4.5 Data Transfer S3 30 Data Requests S3 1 DB Storage SimpleDB 45 DB CPU Usage SimpleDB 55 Server Usage EC2 144 TOTALS 279.5 25
  • 100. Example: AWS Item Service Cost/mo Storage S3 4.5 Data Transfer S3 30 Data Requests S3 1 DB Storage SimpleDB 45 DB CPU Usage SimpleDB 55 Server Usage EC2 144 TOTALS 279.5 25
  • 101. Example: AWS Item Service Cost/mo Storage S3 4.5 Data Transfer S3 30 Data Requests S3 1 DB Storage SimpleDB 45 DB CPU Usage SimpleDB 55 Server Usage EC2 144 TOTALS 279.5 25
  • 102. Example: AWS Item Service Cost/mo Storage S3 4.5 Data Transfer S3 30 Data Requests S3 1 DB Storage SimpleDB 45 DB CPU Usage SimpleDB 55 Server Usage EC2 144 TOTALS 279.5 25
  • 103. Example: AWS Item Service Cost/mo Storage S3 4.5 Data Transfer S3 30 Data Requests S3 1 DB Storage SimpleDB 45 DB CPU Usage SimpleDB 55 Server Usage EC2 144 TOTALS 279.5 25
  • 104. $280 / month = $0.09 CPM 3,000,000 pages / month (0.9% @ $10 RPM) 26
  • 105. Example: AWS • 300,000,000 page impressions • Avg. 100kiB / page (== 30 TB / mo), 1TB Data • 20 queries per page, 20msec / query • 30 objects per page ( == 9,000,000,000 GET reqs/month) • 100 reqs/server/sec ( == 259,000,000 reqs/server/month) • 35 servers 27
  • 107. Example: AWS Item Service Cost/mo Storage S3 150 Data Transfer S3 4,300 Data Requests S3 9,000 DB Storage SimpleDB 1,500 DB CPU Usage SimpleDB 3,800 Server Usage EC2 2,500 TOTALS 21,250 28
  • 108. Example: AWS Item Service Cost/mo Storage S3 150 Data Transfer S3 4,300 Data Requests S3 9,000 DB Storage SimpleDB 1,500 DB CPU Usage SimpleDB 3,800 Server Usage EC2 2,500 TOTALS 21,250 28
  • 109. Example: AWS Item Service Cost/mo Storage S3 150 Data Transfer S3 4,300 Data Requests S3 9,000 DB Storage SimpleDB 1,500 DB CPU Usage SimpleDB 3,800 Server Usage EC2 2,500 TOTALS 21,250 28
  • 110. Example: AWS Item Service Cost/mo Storage S3 150 Data Transfer S3 4,300 Data Requests S3 9,000 DB Storage SimpleDB 1,500 DB CPU Usage SimpleDB 3,800 Server Usage EC2 2,500 TOTALS 21,250 28
  • 111. Example: AWS Item Service Cost/mo Storage S3 150 Data Transfer S3 4,300 Data Requests S3 9,000 DB Storage SimpleDB 1,500 DB CPU Usage SimpleDB 3,800 Server Usage EC2 2,500 TOTALS 21,250 28
  • 112. Example: AWS Item Service Cost/mo Storage S3 150 Data Transfer S3 4,300 Data Requests S3 9,000 DB Storage SimpleDB 1,500 DB CPU Usage SimpleDB 3,800 Server Usage EC2 2,500 TOTALS 21,250 28
  • 113. Example: AWS Item Service Cost/mo Storage S3 150 Data Transfer S3 4,300 Data Requests S3 9,000 DB Storage SimpleDB 1,500 DB CPU Usage SimpleDB 3,800 Server Usage EC2 2,500 TOTALS 21,250 28
  • 114. Example: AWS Item Service Cost/mo Storage S3 150 Data Transfer S3 4,300 Data Requests S3 9,000 DB Storage SimpleDB 1,500 DB CPU Usage SimpleDB 3,800 Server Usage EC2 2,500 TOTALS 21,250 28
  • 115. $21,250 / month = $0.08 CPM 300,000,000 / month (0.8% @ $10 RPM) 29
  • 116. Them You 30
  • 118. Design THINK BIG—ITS CHEAP! Choose Scale 31
  • 119. Design THINK BIG—ITS CHEAP! Choose THE RIGHT TOOLS Scale 31
  • 120. Design THINK BIG—ITS CHEAP! Choose THE RIGHT TOOLS Scale EVERYTHING, ALWAYS 31
  • 121. Questions? Agree? Disagree? Want to rant? marcot@tabini.ca http://mtabini.blogspot.com http://mtabini.com/twitter 32