Nature Bath vol.6での発表資料です
Go at fluctNature Bath vol.6 #naturebath, 2020/11/18@suzu_v
View Slide
ࣗݾհླ݈ଠ, ͚ͣ͢Μ (Twitter: @suzu_v)גࣜձࣾfluct औకCTOΈΜͳͷGoݴޠ ڞஶऀ࠷ۙTypeScriptͱPHPͱYAMLΛΑ͘ॻ͍͍ͯ·͢
fluctͰͷGoར༻-2015: PHP, Perl, Erlang͕ϝΠϯ2015͘Β͍͔ΒঃʑʹαϒγεςϜ͔Βར༻։࢝ݱঢ়ͰෳͷϓϩμΫγϣϯϫʔΫϩʔυʹΘΕ͍ͯΔcliπʔϧɺdebuggerɺAPIαʔόɺόον...ࠓ3ͭͷࣄྫΛհ͠·͢
ϨΠςϯγͱ҆ఆੑΛੜΉΞʔΩςΫνϟ - SSPͷݱʹֶͿɺߴՄ༻ੑͷͭ͘Γํ: ΤϯδχΞHubhttps://eh-career.com/engineerhub/entry/2019/07/12/103000
ࣄྫ1: PHP -> Goݩʑ: ࠂ৴ϩάΛग़ྗ͢Δαʔό Apache + PHPׂ: ৴ύϥϝʔλͷ෮߸ɺϩάग़ྗʢٻ & ࢹ༻ʣ// PHP -> Apache (custom log module) -> logapache_setenv(F_ENV_NAME_STATUS, $status);Testability͍, Apacheͳ͍ͱखݩͰࢼͤͳ͍-> ϦϓϨʔε
PHP -> Go: ςετ༰қੑͱҠ২TestMain ͰPHP + ApacheίϯςφͱGoίϯςφΛ্ཱ֤ͪ͛ςετέʔεͰϓϩμΫγϣϯͱಉ༷ͷύϥϝʔλΛ࣮ࡍʹ͛Δग़ྗ͞ΕΔϩά͕PHP + Apache࣮ͱGo࣮ͰಉҰͰ͋Δ͜ͱΛࢼݧ҉߸ԽɺloggerɺWeb API·ΘΓΛGoʹҠ২ & ֤ػೳΛpackageԽ
ࣄྫ2: Open BiddingͷଓGoogle Ad Managerʹbidderͱͯ͠ଓ @tomita τϛʔϧ͞Μ͕։ൃOpen Biddingͱͻͱ͜ͱͰ: Google͔ΒࠂϦΫΤετΛड͚ɺͦΕΛDSPsʹϦΞϧλΠϜʹΦʔΫγϣϯ͠ɺࠂΛฦ͢Έʢͯ͢αʔόؒ௨৴ʣϝσΟΞ bidder (fluct) DSPsGoͰ࣮ʢRTBαʔϏεErlang࣮Λར༻ʣ30ԯʙ req. / dayϚϧνΫϥυʢAWS, GCPʣɺϚϧνϦʔδϣϯഎܠ: ଟ༷ͳϦΫΤετɺεϧʔϓοτॏࢹɺطଘαʔϏεΛ͏·͍͘ճ͢
ࣄྫ2: Open Biddingͷଓ (cont.)https://www.youtube.com/watch?v=uE0ReWlYbNk
ࣄྫ3: romdb2010- memcachedb + Berkeley DBforkͨ͠memcachedbʢC++ʣͷϏϧυ͕ͭΒ͍Berkeley DBΛஈ֊తʹஔ͖͍͖͍͑ͯͨ-> memcachedb෦ΛGoʹஔ͖͑
ࣄྫ3: romdb (cont.)@yowcow ͕GoͰϦϓϨʔεhttps://github.com/yowcow/goromdbstorageͷࠩ͠ସ͕͑Մೳ: Berkeley DB, BoltDB, JSON etc.ಛఆσΟϨΫτϦʹ͓͘ͱstorageΛࠩ͠ସ͑ΒΕΔ (memcachedbͱಉ༷ʣϓϩτίϧෳରԠՄೳʢmemcached, etc.ʣຊ൪ڥͰBoltDBͱBerkeley DBΛซ༻
·ͱΊ• ͍ΖΜͳਓ͕ͳΜ͔ͩΜͩGoΛ৮͍ͬͯΔ• ϓϩμΫτͷ伱ؒɺͪΐͬͱϏϧυɾςετΛ͍ͨ͘͢͠͠ͱ͖ʹGo͕ͪΐ͏Ͳ͍͍