Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Go が支えるインフラストラクチャサービス / Go in Gehirn Web Services
Search
Kohei YOSHIDA
December 05, 2015
Programming
0
350
Go が支えるインフラストラクチャサービス / Go in Gehirn Web Services
2015.12.06 Go Conference 2015 Winter
Kohei YOSHIDA
December 05, 2015
Tweet
Share
More Decks by Kohei YOSHIDA
See All by Kohei YOSHIDA
2015.04.21 Bracket x Aratana x Gehirn 勉強会
yosida95
2
680
2015.03.11 Gunosy.Go
yosida95
3
2.3k
2014.03.15 SHARE! U20
yosida95
1
310
2013.04.14 DentooLT #3 「自宅 VPS のススメ」
yosida95
0
940
2012.12.23 CombConf
yosida95
1
2.2k
プロ生勉強会 第19回@品川
yosida95
0
790
2012.11.27 #石狩DCツアー
yosida95
0
1.6k
2012.09.15 PyCon JP 2012 「ナウでヤングな17歳のVPS 構築機」
yosida95
6
3.7k
#upcamp
yosida95
1
1.4k
Other Decks in Programming
See All in Programming
Fiber Scheduler vs. General-Purpose Parallel Client
hayaokimura
1
290
State of Namespace
tagomoris
5
2.4k
実践Webフロントパフォーマンスチューニング
cp20
45
10k
Browser and UI #2 HTML/ARIA
ken7253
2
170
eBPF超入門「o11yに使える」とは (20250424_eBPF_o11y)
thousanda
1
110
Enterprise Web App. Development (1): Build Tool Training Ver. 5
knakagawa
1
120
ComposeでWebアプリを作る技術
tbsten
0
130
Golangci-lint v2爆誕: 君たちはどうすべきか
logica0419
1
230
今話題のMCPサーバーをFastAPIでサッと作ってみた
yuukis
0
110
Making TCPSocket.new "Happy"!
coe401_
1
3.1k
Laravel × Clean Architecture
bumptakayuki
PRO
0
130
インプロセスQAにおいて大事にしていること / In-process QA Meetup
medley
0
140
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Building Applications with DynamoDB
mza
94
6.4k
For a Future-Friendly Web
brad_frost
177
9.7k
Producing Creativity
orderedlist
PRO
344
40k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
How to train your dragon (web standard)
notwaldorf
91
6k
The Pragmatic Product Professional
lauravandoore
33
6.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
Go ͕ࢧ͑Δ ΠϯϑϥετϥΫνϟαʔϏε Kohei YOSHIDA / yosida95 Gehirn Inc.
ࣗݾհ
https://twitter.com/yosida95 https://github.com/yosida95 https://yosida95.com/ ٢ా ߉ฏ / yosida95 Software Engineer at
Gehirn Inc.
NHK EςϨʮχοϙϯͷδϨϯϚʯ http://www.nhk.or.jp/jirenma/20150829.html
Gehirn Inc. http://www.gehirn.co.jp/
Mission ຊΛͬͱ҆શʹ͢Δ
Security ϖωτϨʔγϣϯςετ ੬ऑੑϋϯυϦϯάαʔϏε | http://gs3.jp/ Disaster Prevention ؾใͷ৴ | @UN_NERV
Infrastructure Gehirn Infrastructure Services
Go ͕ࢧ͑Δ ΠϯϑϥετϥΫνϟαʔϏε
2015.04.01 Public Preview 2012.11.22 1st Release
Scrap and Build ͷΛݟͳ͔ͬͨίʔυ
GWS02 طଘαʔϏεͷ Go ͰͷϦϓϨʔε ΑΓຬͰ͖ΔαʔϏεΛࢦ͓ͯ͠ଂೖΓ GehirnInc/GOpenID Go ͷ Open ID
2.0 Provider Open ID Connect Ҡߦ
Concept ϕετϓϥΫςΟεͷఏڙ
Services ఏڙதͷαʔϏε
Gehirn RS2 Plus ϨϯλϧαʔόʔαʔϏε QEMU ʹΑΔશԾԽ Apache / Nginx /
TCP ( FastCGI / WSGI / HTTP ) Gehirn DNS DNS ίϯςϯπαʔόʔ κʔϯͷόʔδϣϯཧ όʔδϣϯΓସ͑࣌ͷ TTL ͷࣗಈௐ
Gehirn MTA ϝʔϧૹड৴ API ૹ৴ : SMTP / HTTP API
ड৴ : Gehirn EDJ Gehirn EDJ Πϕϯτϋϒ ༰: ϝϯςφϯε / Gehirn MTA ड৴ etc… ௨: HTTP Push / Slack / Pushover etc…
Golang Scene Go ͷΘΕํ
Gehirn RS2 Plus STQBHFOU ԾϚγϯʹৗற͢ΔσʔϞϯ ! ઃఆϑΝΠϧฤू ίϚϯυ࣮ߦ ϥΠϒϥϦͳͲఏڙڥͷΞοϓσʔτ !
Debian Package (.deb) Ͱ
None
Gehirn RS2 Plus 4OBQTIPU VM ΠϝʔδͷόοΫΞοϓ ! มߋͷΈอଘ͢Δ૿όοΫΞοϓ ෮ݩมߋͷΈద༻ σʔλετΞ
Gehirn KVS ʹอଘ ! ϗετϚγϯͰಈ࡞
Gehirn MTA 4.51αʔόʔ (PͰϑϧεΫϥον ϝʔϧͷૹ৴ɾड৴ ֎෦αʔόʔͷૹ ૹεςʔλεͷϋϯυϦϯά ར༻ঢ়گͷࢹ3BUF-JNJUJOH ϝʔϧύʔαʔ CPVODFϝʔϧͷύʔε
(FIJSO&%+ૹલͷલॲཧ
Gehirn EDJ Πϕϯτࢹ Gehirn MTA ͷΠϕϯτͷαϒεΫϥΠϒ ! ΠϕϯτϧʔςΟϯά ૹํ๏͝ͱʹ୲ϫʔΧʔׂΓৼΔ !
! Πϕϯτૹ 4MBDL*3$ɺ)551)PPLͳͲͷૹ
Why use Go ͳͥ Go Λ͏͔
Battery Included ඪ४ϥΠϒϥϦ͕ॆ࣮͍ͯ͠Δ DSZQUP DPNQSFTT OFU ฒྻॲཧΛ༰қʹهड़Ͱ͖Δ DIBOOFMHPSPVUJOFTFMFDU ෳͷฦΓFYDFQUJPO͕ͳ͍
ΤϥʔΛඞͣॲཧ͢Δ ྫ֎Λ௫ΈଛͶͳ͍ ! ωοτϫʔΫαʔόʔΛॻ͖͍͢
Static Link / Cross Compile Ϣʔβʔʹ͍͢͠ ίϯύΠϧͯ͠όΠφϦͻͱͭ͢Δ͚ͩ ! σϓϩΠ͍͢͠ ΫϩείϯύΠϧͯ͠4ʹஔ
֤αʔόʔ͕μϯϩʔυ࣮ͯ͠ߦ͢Δ͚ͩ
Easy to Scale σϓϩΠ͍͢͠ ૉૣ͍ԣల։ ωοτϫʔΫαʔόʔΛॻ͖͍͢ ΫϥελΛߏ͍͢͠ %JTUSJCVUFE$PNQVUJOH αʔυύʔςΟʔ IBTIJDPSQNFNCFSMJTU
DPSFPTFUDESBGU
Conclusion ·ͱΊ
Go ΠϯϑϥαʔϏεͰੜ͖Δ େྔͷσʔϞϯ ɾσϓϩΠ͕༰қ ! େͳॲཧϦιʔε ࢄίϯϐϡʔςΟϯά ΫϥελϦϯά ! ωοτϫʔΫαʔϏε
SMTP ɺ DNS ݎ࿚ʹॻ͚Δ ͘ͳ͍