Elixir case study on mountaineering platform YAMAP

Elixir case study on mountaineering platform YAMAP

Stability, high-speed response, and resource saving realized through 2.5 years operation

44ea7adda8696d532cf421891eacc93c?s=128

Hidetaka Matsumoto

September 07, 2019
Tweet

Transcript

  1. &MJYJSDBTFTUVEZPO NPVOUBJOFFSJOHQMBUGPSN :"."1 4UBCJMJUZ IJHITQFFESFTQPOTF BOESFTPVSDFTBWJOH SFBMJ[FEUISPVHIZFBSTPQFSBUJPO &MJYJS$POG+1,PLVSBKP )JEFUBLB.BUTVNPUP

  2. .ZQSPpMF w)JEFUBLB.BUTVNPUP w#PSOJO4IJNPOPTFLJDJUZ :BNBHVDIJ w+PJO:"."1c#&%FW Z c%BUB"OBMZTJT Z

  3. *MPWFNPVOUBJOT

  4. JTXIBU w0⒐JOF.BQ"QQGPS USFLLFSTVTJOH(14 w$PNNVOJUZGPSUSFLLFST wNJMMJPO"QQ EPXOMPBET

  5. .JNBNPSJ w *OOPWBUJWFMPDBUJPOTIBSJOHVTJOH#MVFUPPUIPGTNBSU QIPOFIUUQTOPUFZBNBQDPNOOECFCFCG

  6. 4503&

  7. *OTVSBODF

  8. 'FT -PDBM(PWU

  9. 0LBZ-FU`TUBML BCPVU5FDI

  10. :"."1#BDLFOE0WFSWJFX w.BJO"1*T3VCZPO3BJMT w4VC"1*T&MJYJS1IPFOJY

  11. &MJYJSJO:"."1#BDLFOE w&MJYJS1IPFOJYSFMBUFE XJUI3%4 1PTUHSF42-  &MBTUJ$BDIF 3FEJT  &MBTUJDTFBSDI4FSWJDF 4

  12. 5XPTFSWJDFVTJOH&MJYJS 4VHHFTU"1* 6QMPBE"1*

  13. "CPVU4VHHFTU"1*

  14. 4VHHFTU"1*8IZ&MJYJS w 3FRVJSFNFOUT w )BOEMFNBOZSFRVFTUT 0OFSFRVFTUCZPOFXPSE UZQJOH  w 3FTQPOERVJDLUPDBUDIVQVTFS`TUZQJOH

    w 8FFWBMVBUFE"84"1*(BUFXBZ "84-BNCEB #VU-BNCEBJOWPLJOHUPPLUJNFT   w 8FFWBMVBUFE&MJYJS1IPFOJYBOEEFDJEFEUPVTFJU
  15. 4VHHFTU"1*"SDIJUFDUVSF w $BMM&MBTUJDTFBSDI3&45 BQJ w *OpSTUZFBST PO&$ w 4JODFFOEPG PO

    &$4 d d
  16. 5IFO IPXEJE 4VHHFTU"1*XPSL

  17. 4VHHFTU"1*4UBCJMJUZ w /PUSPVCMFTBCPVU&MJYJS1IPFOJYPWFSZFBST w &TQFDJBMMZJOpSTUZFBST BMNPTUMFGU#VUJULFQU SVOOJOH w *UXBTUPPTUBCMFBOEGPSHPUUPFYJTU

  18. 4VHHFTU"1*1FSGPSNBODF (&5NBQTTVHHFTU "MNPTUMFTTUIBONT (&5BDUJWJUJFTTVHHFTU "MJUUMFCJUTMPXdNT w 5IFEJTUSJCVUJPOJTEJ⒎FSFOUCZBQJ CFDBVTFUIFRVFSZJTEJ⒎FSFOU 3FTQPOTFUJNFIJTUPHSBNJOBXFFLdNT

  19. 4VHHFTU"1*1FSGPSNBODF (&5NBQTTVHHFTU .BJOMZNT7FSZRVJDL 3FTQPOTFUJNFIJTUPHSBNJOBXFFLdNT (&5NBQTTVHHFTU LFZXPSEIPP 4FBSDIRVFSZ dEPDVNFOUT NBQT

  20. 4VHHFTU"1*3FTPVSDFTBWJOH w &$UTNBMMYJOQSPEJO pSTUZFBST w $166TBHFXBTVOEFS  w "DIJFWFEWFSZMPXDPTU

  21. 4VHHFTU"1*4VNNBSZ w &MJYJS1IPFOJYHBWFVT w 7FSZHPPETUBCJMJUZ w 7FSZRVJDLSFTQPOTF w -FTTSFTPVSDFBOEWFSZMPXDPTU

  22. "SJHBUP &MJYJS1IPFOJY

  23. "CPVU6QMPBE"1*

  24. 6QMPBE"1*8IZ&MJYJS w 8IBUUPTPMWF w 0VSVTFSTTBJEJNBHFVQMPBEJTTMPX w 0VSBQJTCFDBNFVOTUBCMFXIFONVDIJNBHFVQMPBE CFDBVTFPVSTFSWJDFXBTNPOPMJUI w 8FUSJFEUPNBLFJNBHFVQMPBEGBTUFSBOETFQBSBUF

    JNBHFVQMPBEGSPNNBJOBQJT w 8FCVJMU6QMPBE"1*JOUPFYJTUJOHDPEFCBTFPG4VHHFTU "1*
  25. 6QMPBE"1*1SFFWBMVBUJPO 3FRT      +VTUVQMPBE UP4 $POWFSUJNBHF

    BOEVQMPBEUP4 &MJYJS 3VCZ &MJYJS 3VCZ     w #SJFGQFSGPSNBODFFWBMVBUJPO   w &MJYJS DPXCPZ w "QBDIF 1BTTFOHFS  3VCZ 4JOBUSB w &MJYJSBEWBOUBHFXBTMPTUJGDPOWFSU FWFSZUJNF4PJUJTJNQPSUBOUUPSFEVDF JNBHFDPOWFSTJPO
  26. 6QMPBE"1*"SDIJUFDUVSF w *NBHFJTQPTUFEXJUI$POUFOU5ZQF NVMUJQBSUGPSNEBUB w "VUIFOUJDBUFVTFSCZUPLFOXJUI 3FEJT w 1SPDFTTJNBHFXJUIVTJOH *NBHF.BHJDLFUD

    w 6QMPBEpMFUP4 w 3FDPSEJOUP%# w "VUPTDBMJOHCZ$166UJMJ[BUJPO
  27. 5IFO IPXEJE 6QMPBE"1*XPSL

  28. 6QMPBE"1*4UBCJMJUZ w /PUSPVCMFTBCPVU&MJYJS1IPFOJYJOUIJTZFBST

  29. 6QMPBE"1*1FSGPSNBODF w *NBHFDPOWFSTJPOUBLFT UJNF 3FTQPOTFUJNFIJTUPHSBNJOBXFFLdNT .BJOMZNT

  30. 6QMPBE"1*1FSGPSNBODF 3FRVFTUDPVOUIJTUPHSBN CZSFTQPOTFUJNF JOdCJOT SFRT JOQFBLUJNF 3FTQUJNFCFDBNFTMPX *UTFFNTUIBUIFBWZJNBHFT XFSFVQMPBEFE

  31. 6QMPBE"1*3FTPVSDFTBWJOH

  32. 6QMPBE"1*3FTPVSDFTBWJOH 1IPFOJYDPOUBJOFS$166TBHF.BY"WH 1IPFOJYDPOUBJOFS.FNPSZ6TBHF.BY"WH dBUQFBL d.#BUQFBL #BTJDBMMZd.#-PX DPOUBJOFST XFSFSVOOJOH

  33. 6QMPBE"1*3FTPVSDFTBWJOH w &MJYJS1IPFOJYVTFMFTTNFNPSZ w *UNBEF*NBHF.BHJDLFOBCMFUPVTFNPSF NFNPSZ

  34. 6QMPBE"1*4VNNBSZ w &MJYJS1IPFOJYHBWFVT w (PPETUBCJMJUZ w .PSFNFNPSZGPS*NBHF.BHJDL

  35. "SJHBUP &MJYJS1IPFOJY

  36. 4VNNBSZ w :"."1VTFE&MJYJS1IPFOJYJOQSPEJOZFBST w &MJYJS1IPFOJYHBWFVTTUBCJMJUZ IJHITQFFESFTQPOTF BOESFTPVSDFTBWJOH

  37. 5SPVCMFT\FSSPS FSPGT^ w *NBHFVQMPBECFDBNFUPGBJMTVEEFOMZ Elixir.Plug.Parsers.ParseError: malformed request, a CaseClauseError exception

    was raised with message "no case clause matching: {:error, :erofs}” File "lib/plug/upload.ex", line 88, in Plug.Upload.open_random_file/4 1045JNBHFT $POUFOU5ZQFNVMUJQBSU GPSNEBUB 8SJUFUFNQPSBSZ pMFUPEJTL
  38. 5SPVCMFT\FSSPS FSPGT^ w FSPGT3FBEPOMZpMFTZTUFN w   w IUUQFSMBOHPSHEPDNBOpMFIUNMQPTJYFSSPSDPEFT w

    $BVTFXBTlEJTLGVMMz 'JYFEXJUIFYQBOEJOH&#4  w 8FOFFEFENPSFVOEFSTUBOEJOHBCPVU%PDLFS&$4
  39. "SJHBUP FWFSZPOF