Upgrade to Pro — share decks privately, control downloads, hide ads and more …

技術基盤/SREの視点で取り組む、サービスの成長を継続し、加速させるためのPHPアプリケーション改善

Arakaki Yuji
October 12, 2019

 技術基盤/SREの視点で取り組む、サービスの成長を継続し、加速させるためのPHPアプリケーション改善

Arakaki Yuji

October 12, 2019
Tweet

More Decks by Arakaki Yuji

Other Decks in Programming

Transcript

  1. ©Payke, Inc.All rights reserved.
    #-(/SRE.'
    *"0
    +,/ PHP
    $
    & ) Payke
    #-(
    %1!

    View full-size slide

  2. ©Payke, Inc.All rights reserved. 2
    6)4%
    • /' 9- ( )
    • Twitter: @arakaji
    • 0,&3Payke
    • .7(2"
    • !
    • CODEBASE & Lagoon !"8*
    • Java Kueche
    • JAZUG 15 ($+#
    :;

    View full-size slide

  3. ©Payke, Inc.All rights reserved. 3
    .YN`
    N`
    .Y6 LF.YPayke
    bZ 2014D11I26H
    -_4\G 5T Af
    )M/B aH>;+7# %
    PaykelW$g: /
    Sd$98lW#!
    #


    OKINAWA OFFICEnJYo
    904-0115 P]X2cU^Q1-2-15
    TOKYO OFFICE
    107-0052 K*jR3e<1-9-13 &.=!4F
    OSAKA OFFICE
    541-0042 ?mE?mC(@3,O2-3-16
    THE LINKS KITAHAMA/
    Forbes 30 Under 30 Asia 2019
    #%%"%ik h0
    H[ 2019D2I4H
    'V1HJ+ 50+ h0

    View full-size slide

  4. ©Payke, Inc.All rights reserved. 4
    Payke$Payke 47/.
    && %/.81
    3EHCAG:20)-"%&$
    $=D
    47/.9
    35
    '/.*(
    BF!&&9
    400
    ')*(
    AppStore#%%
    ,?I>
    1
    +
    201752<6;@ 201958<6;@

    View full-size slide

  5. ©Payke, Inc.All rights reserved.

    View full-size slide

  6. ©Payke, Inc.All rights reserved. 6
    -
    • Payke=J:B;6
    • 02F1
    • $+.',. PHP".)- &
    • )%(.:B5@D
    • & (LC/EK3 /E?O8
    .!.*
    • .#GHA>9 4I

    View full-size slide

  7. ©Payke, Inc.All rights reserved.
    Payke

    View full-size slide

  8. ©Payke, Inc.All rights reserved. 8
    PaykeG5<>
    • 3
    "
    • B$G5
    • 0E0E
    )(B$G5@
    • *A%7
    • CTO'
    (E?2,6
    F/68= *A6DHC3
    • 9:G5
    • CTO'
    (Payke+ !.-41;

    View full-size slide

  9. ©Payke, Inc.All rights reserved. 9
    PaykeG5<>
    • 3
    "
    • B$G5
    • 0E0E
    )(B$G5@
    • *A%7
    • CTO'
    (E?2,6
    F/68= *A6DHC3
    • 9:G5
    • CTO'
    (Payke+ !.-41;

    View full-size slide

  10. ©Payke, Inc.All rights reserved. 1
    XdN`/B9^!q
    • Payke)B5,Wl"Kk eMn_kU

    • LT1TH"fg\ !ipP
    • 70*;ja[V]#&-,O"QR Y,(B=5>1$bF
    46%B8A,/;B2A'
    • PHP6?B9@B&3B+• PHP5.6c
    • :2.>A'DJZG
    • etc
    • eMn_/B9"IoChip"g\ Sm/B9"
    E

    View full-size slide

  11. ©Payke, Inc.All rights reserved. 1


    View full-size slide

  12. ©Payke, Inc.All rights reserved.
    PHP

    View full-size slide

  13. ©Payke, Inc.All rights reserved.
    /6:27:&9PHP.:(48#*0BP
    • 2018@9DCHPHP.:(485.6
    • @F5.6M)%35+$:#*0,:-ER> ;!

    • PHP.:(48#*0BS
    IG
    • ?J /6:27:&FuelPHP.:(481.7M
    • 1.7MPHP7M'1:- 7"=1.8#*0,
    :-BP

    View full-size slide

  14. ©Payke, Inc.All rights reserved.
    +6-A.e
    • 5>A7?A$+6-A. → PHP+6-A.j
    • +6-A.WRbBC& @
    • 2A(;@hPI#9+*+62A(;@+6
    \U
    `QKX
    • :1+.,).Hg3)
    • &A4)K
    !F)
    • fVSD8@2A+6-A.OTMJ
    • &A4)[^iLE'0=",).%A)FV()6>+/'A.)
    • aN,).
    • ! +6-A.WRdY
    GZ

    View full-size slide

  15. ©Payke, Inc.All rights reserved.
    3,
    9
    • FuelPHP1.81
    → 22+%
    • PHP
    7.21
    → 21+%

    ()

    $' #

    &6*804
    • PHP7.21
    -5 !
    7/".#

    View full-size slide

  16. ©Payke, Inc.All rights reserved.


    View full-size slide

  17. ©Payke, Inc.All rights reserved.
    (62#4:• Payke&:/:&".PHPc?L=OK` JC
    =ODY
    )%(4:7;W NV

    • MySQLschdules-:28 DY
    K` JC

    (62 T^
    • )%(4:7Q39*)schedules [DYK`M+)$
    [DY;W
    • 5:':!$*)B(62T^B9,$FSP
    bE
    >A
    • 9,$F @](62DY)1:.1U1@aR
    • &:0)I_)%(4:7HX\

    View full-size slide

  18. ©Payke, Inc.All rights reserved.
    /*.57ADF
    • ! .50()5+4!'#
    /*9?=F /
    *
    • 4&CJ?-52I6
    • <;GEAPI:3%5"@H
    • ! .5089?=F /*> /*.5!$,
    AD
    • AzureQueue StorageB /*.50*01
    • https://github.com/Arakaki-Yuji/backjob

    View full-size slide

  19. ©Payke, Inc.All rights reserved.
    HC
    • Azure Queue Storage*("3) 1("
    %/,K9:
    7
    J
    • %/,6E24 4-1'&= 1GM6E%/,
    B=5;I
    • $4+&AL%/,!.4• %.401("@N?>D A8

    View full-size slide

  20. ©Payke, Inc.All rights reserved.



    View full-size slide

  21. ©Payke, Inc.All rights reserved.
    /,'4ka=cjB\e":-(%:8 Qiq
    • ?DPayke5:&:@R)$39-M/,'4kajB
    \emIb^_oLh]
    • jB1+9U /,'4ka jB>[
    • /,'4kaYkNYWC #)( Z/,'4kajBV
    PTgK` ldFGjBYnG!9.6(%:79
    $f
    • ?;Hp
    • OXX</,'4kajB

    • AX!09-Gj
    • 5:&:+!2*:9Gj
    • SE(%:79$ TgK`Yn J

    View full-size slide

  22. ©Payke, Inc.All rights reserved.
    *$ /TM9NS• PaykeFKIB
    Azure=J

    • PaykeF;VM7+!'
    • Application Gateway L725()035>HVO
    • Payke3(.&(Payke 0-)Azure Web App7+!'
    • D?:8!51'4$*

    • Application Gateway"3!'51E
    • VME
    • Azure Web App3!#3!E
    • AzureCLI%51 az ,3( 6LRCAP
    Q?@

    View full-size slide

  23. ©Payke, Inc.All rights reserved.
    (&")D>/?C1:@.'$!.,EH
    • ;(&")D>/?C1:@4B
    • 9G63%$ 4A$!#).*0
    • (&")D>/? $!#).*/?9G%$ 9G$!#).*%$ 4A(&")D>C1

    • $!#).*2=
    571~284B-++.$A

    View full-size slide

  24. ©Payke, Inc.All rights reserved.
    %!'B<-=A.8>," ,)C
    F
    • 9Payke/+$( ,)" 16 Web API
    4?
    • API3%!'B<-=7EA.5:D2A.
    %
    !'B<7E0,#, ,)" 16
    * &+ @
    • ," ,)4;

    View full-size slide

  25. ©Payke, Inc.All rights reserved.
    3,*6aX=[`BS^%<.+(<9 bd
    • '7$/ZVW)<1 YCronDWeb API F
    • :+4;+]R+(<9"$. ON >E@
    +(<9"$.W+'83.#;27 +(<9"$.
    • :+4;+]R0<59#;27 +(<9#; +'8
    3. K_CM
    • )<1IQTL(0<59 or +(<9"$.) -&+.2!#9AJ
    Web API]R
    H?

    \G
    • 3,*6aX=[`B
    • `BPcG#;27%<.+(<9 KU

    View full-size slide

  26. ©Payke, Inc.All rights reserved.
    %" 'NC,DM/=G+#!+) E; P
    • %" 'NC0
    *$(J9.<6I2AO8
    • %" 'NC74F6I2ABK?L%" 'NC#(

    • %" 'NCM/5><@
    • 1:H&*#3 %" 'NC -:.<M/

    View full-size slide

  27. ©Payke, Inc.All rights reserved.



    View full-size slide

  28. ©Payke, Inc.All rights reserved.
    NFfqg%ly;4A72,%yk"
    • ^vPpV8.7/%`"NFf}]Y
    • #8.7/%Ju
    • NFf}
    K"qg(&,3'9?D-DaTt&*(C4a)w
    O~nBD5<2:%ly#!qg%|\"E^vo;4A72
    ,"s]%XK;4A72,%yi"
    h!#"
    • )C.6&
    U=0C~nmQ,@(5^v%I&D
    +3,1>Rc#$
    • ^vPpjMHr !x_{jMZ"_{WLe
    %G
    lyKd"[zb"
    SF

    View full-size slide

  29. ©Payke, Inc.All rights reserved.
    ;FK?HK*JPHP%3<5K6SR
    • PHP5.61)BE4&@I47I/q#"
    !PHP5.6$
    Nn!xUpWZt ,K:/mn
    !
    E/*$]!
    • Lawkb `,K:/\Ud"!;'K0 "$_
    !(I.8%^h MQ!(I.8%Q n
    Lxs
    • 1)BE4&@I47I/q#"9K.CII+u
    v$NA2=K-CIyifgZU
    X}!^h
    {ozcM9K.CI%3<$!|VU OP
    !
    • mnjyieT$

    [Yrl

    View full-size slide

  30. ©Payke, Inc.All rights reserved.
    "2+07
    • /)5,4G[PM
    XA &+17!7H;W
    J@#"073FT8\C KO
    • FT8\ 7*#]B 17!7ND.7&6
    $5ZU9YG[-'5(%=TF^

    • FT8\RQI
    "2+07:EV

    View full-size slide

  31. ©Payke, Inc.All rights reserved.
    %!'YP/QX6 -#-+@;
    • %!'YP]Z ,$*UH3KI\FS?OI\><=
    W
    • (--",),LD.%!'YPX6^BX6
    &,J[:ET
    • /QX6 -#-+AM
    • FS?O257N8 10VC
    • %!'YPX6R9:
    ?OG4

    View full-size slide

  32. ©Payke, Inc.All rights reserved.
    ".*% CDA;3
    7J 2I
    • F1#%',:=6L? >H
    • *$)%8@/7JB< >H
    F1#%',L?+(-)
    &!5E
    • 9G".*%7J K4

    2I 0
    E

    View full-size slide