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への移行事例
Search
mackee
March 25, 2024
Programming
0
910
マイクロサービス化を利用した Goへの移行事例
golang.tokyo #34
https://golangtokyo.connpass.com/event/310844/
mackee
March 25, 2024
Tweet
Share
More Decks by mackee
See All by mackee
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
15
5.2k
ワンバイナリWebサービスのススメ
mackee
10
8k
tanukistack ライブコーディング / tanukistack live-coding
mackee
0
120
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
920
perl for shell, awk and sed programmers
mackee
3
2.5k
今更GoのWebフレームワークを作ろうとしているワケ / Why am I trying to create a Go web framework now?
mackee
1
890
database/sqlでNullを扱う歴史とsql.Null[T]の登場 / sql.Null[T] history
mackee
0
770
PerlでつくるフルスクラッチWebAuthn/パスキー認証 / Demonstration of full-scratch WebAuthn/Passkey Authentication written in Perl
mackee
3
5.3k
SRE定例やその辺の取り組みをアプリケーションエンジニア目線で語る / "Observe" about SRE Meeting by Application Engineer
mackee
0
2k
Other Decks in Programming
See All in Programming
iOSアプリの信頼性を向上させる取り組み/ios-app-improve-reliability
shino8rayu9
0
150
Go言語の特性を活かした公式MCP SDKの設計
hond0413
1
190
CSC509 Lecture 03
javiergs
PRO
0
330
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
200
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
160
CSC305 Lecture 04
javiergs
PRO
0
250
Breaking Up with Big ViewModels — Without Breaking Your Architecture (droidcon Berlin 2025)
steliosf
PRO
1
340
ソフトウェア設計の実践的な考え方
masuda220
PRO
3
490
なぜあの開発者はDevRelに伴走し続けるのか / Why Does That Developer Keep Running Alongside DevRel?
nrslib
3
370
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
natmark
2
460
WebエンジニアがSwiftをブラウザで動かすプレイグラウンドを作ってみた
ohmori_yusuke
0
170
iOS 17で追加されたSubscriptionStoreView を利用して5分でサブスク実装チャレンジ
natmark
0
620
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Embracing the Ebb and Flow
colly
88
4.8k
Into the Great Unknown - MozCon
thekraken
40
2.1k
KATA
mclloyd
32
15k
GraphQLとの向き合い方2022年版
quramy
49
14k
Mobile First: as difficult as doing things right
swwweet
224
10k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Docker and Python
trallard
46
3.6k
The Invisible Side of Design
smashingmag
301
51k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Transcript
ϚΠΫϩαʔϏεԽΛར༻ͨ͠ GoͷҠߦࣄྫ @mackee_w a.k.a @macopy
Δਓ • X: @mackee_w • GitHub: @mackee • ໘ന๏ਓΧϠοΫ •
Tonamel αʔόʔαΠυΤϯδχΞ
GoͷҠߦΛͨ͠αʔϏε
None
ݱࡏͷػೳͷ୲ • PerlϞϊϦε෦ • ΞΧϯτཧɾೝূɾ௨ • GoϚΠΫϩαʔϏε෦ • ্هҎ֎શͯ •
τʔφϝϯτදɾΠϕϯτཧɾओ࠵ஂମཧɾܾࡁetc…
ͳͥGoʹ͔ͨ͠ʁ • 2020࣌PerlͷGraphQLϥΠϒϥϦͷύʔείετ͕ॏ͔ͬͨ • ͪΐ͏ͲτʔφϝϯτදʹػೳΛՃ͢Δͱ͜ΖͩͬͨͷͰɺ·Δ·Δ GoʹҠ২+৽ن࣮͢Δ͜ͱʹͨ͠ • ͔͜͜Βࡉ͔͘PerlϞϊϦε͔ΒGoϚΠΫϩαʔϏεΓग़͍ͯ͘͠ • ΧϠοΫࣾͰGoͷݟ͋ͬͨͷͰɺҠߦઌͷݴޠͱͯ͠GoΛબͿ
ͷࣗવͩͬͨ
GoͷҠߦͷํ • ແཧʹPerlΛണ͕͞ͳ͍ • طଘػೳͷվम৽ػೳΛಋೖ͢Δͱ͖ʹΔ • ઌʹҠ২Λͬͯಉ͡ػೳͰϦϦʔε্ͨ͠ͰɺվमΛΔͱ͍͍ײ͡ • σʔλετΞطଘͷαʔϏεͱ͢Δ •
τʔφϝϯτද͚ͩDynamoDBɺ͋ͱશͯAurora MySQL͕ͩαʔ Ϗε͝ͱʹσʔλϕʔεΛ͚͍ͯΔ
Ҡߦͷख๏ ΠϕϯτཧαʔϏεͷҠߦ࣌ͷࣄྫ
υϝΠϯΠϕϯτ • ݩʑPerlͷϞϊϦεҰ෦͕ϞδϡϥϞϊϦεతͳΞʔΩςΫνϟʹ ͳ͍ͬͯͨ • ڥք͚ͮΒΕͨίϯςΩετ͝ͱʹಠཱ͍ͯͯ͠ɺίϯςΩετؒ ͷσʔλͷΓऔΓυϝΠϯΠϕϯτͰΔ • υϝΠϯΠϕϯτ: ίϯςΩετͰൃੜͨ͠ग़དྷࣄͷ͜ͱ
• υϝΠϯΠϕϯτΛίϯςΩετؒͰ͛߹ͬͯେ͖ͳػೳΛ࣮ݱ͢ Δ
ୈ0ஈ֊: υϝΠϯΠϕϯτͷඇಉظԽ • ͦΕ·ͰυϝΠϯΠϕϯτ࣮ࡍʹଞͷؔͷಉظతͳݺͼग़͠ ͩͬͨ • ֎෦ͷΠϕϯτόεΛհͨ͠ඇಉظԽΛ·ͣߦͬͨ ίϯςΩετ" ίϯςΩετ# Πϕϯτόε
υϝΠϯ Πϕϯτ υϝΠϯ Πϕϯτ Perlϓϩηε
ୈ1ஈ֊: υϝΠϯΠϕϯτͷՃ • υϝΠϯΠϕϯτΛൃߦ͍ͯ͠ͳ͔ͬͨλΠϛϯάͰυϝΠϯΠϕ ϯτΛൃߦ͢ΔΑ͏ʹͨ͠ • ୈ2ஈ֊Ͱ৽αʔϏεଆͰσʔλͷಉظΛऔΔͨΊ ίϯςΩετ" Πϕϯτόε υϝΠϯ
Πϕϯτ Perlϓϩηε
ୈ2ஈ֊: μϒϧϥΠτ • ৽αʔϏεଆͰυϝΠϯΠϕϯτΛsubscribeͯࣗ͠ͷαʔϏεʹ ߹ͬͨܗͰσʔλΛॻ͖ࠐΉ • GoͷαʔϏεͰ·ͩϢʔβʔ͔ΒͷϦΫΤετΛड͚͚ͳ͍ ίϯςΩετ" Πϕϯτόε υϝΠϯ
Πϕϯτ Perlϓϩηε υϝΠϯ Πϕϯτ ίϯςΩετ$ GoαʔϏε
ୈ3ஈ֊: ٯํμϒϧϥΠτ • ৽αʔϏεଆͰϦΫΤετΛड͚͚࢝ΊΔɻҰ෦ͷσʔλͷओैΛೖΕସ͑Δ • ·ͩଞͷػೳ͕Perlϓϩηεଆʹ͍ͬͯΔͷͰ৽αʔϏεଆͰൃߦͨ͠υϝΠ ϯΠϕϯτΛͱʹچαʔϏεଆͷσʔλΛߋ৽͢Δ ίϯςΩετ" Πϕϯτόε υϝΠϯ
Πϕϯτ Perlϓϩηε υϝΠϯ Πϕϯτ ίϯςΩετ$ GoαʔϏε
ୈ4ஈ֊: Perlଆͷػೳͷআ • ͋ΔίϯςΩετͷػೳΛશʹ৽αʔϏεଆʹҠߦͨ͠ΒPerlଆͷ ίϯςΩετͷίʔυΛআ͠ͰσϓϩΠ͢Δ • υϝΠϯΠϕϯτͦͷ··ϩά༻ʹ͍ͯ͠Δ ίϯςΩετ" Πϕϯτόε υϝΠϯ
Πϕϯτ Perlϓϩηε ίϯςΩετ$ GoαʔϏε
Ҡߦͷίπ • ϏοάόϯΛͱʹ͔͘ආ͚Δ • ݩͷίʔυͷҙਤΛͪΌΜͱཧղ͢Δ • ॻ͍ͨਓ͕͍Εฉ͘ ͍ͳ͚ΕBlameͳͲΛؤுΔ • Ҡߦظʹ෦͚APIʹΑΔಉظతݺͼग़͠ซ༻͢Δ
• ͨͩ͠ϧʔϓʹҙ • ࠷దͳΓํαʔϏεಛੑυϝΠϯʹ߹Θͤͯߟ͑Δ͔͠ͳ͍…
GoʹҠߦͨ͠ྑ͔ͬͨ͜ͱ • ܕ͕͍ͭͯϋοϐʔ • ਓͷ࠾༻͕͘͢͠ͳͬͨ…Α͏ͳؾ͕͢Δ • ͱ͍͑νʔϜϝϯόʔΈΜͳPerlॻ͘ػձ͕·ͩগ͋͠Γ·͢ • GoPHPRuby, JavaʹൺͨΒগͳ͍ͷͰͦ͜·Ͱ͕ࠩͳ͍͔͠Εͳ͍
• ϦΫΤετ͋ͨΓͷຊ൪Ϧιʔεͷফඅ͕গͳ͍ • ݩʑPerlগͳ͍͕ɺ͞Βʹগͳ͍
GoʹҠߦͯ͠ਏ͔ͬͨ͜ͱ • νʔϜશମͰ͕ඞཁ • Ҡ২͍ͯ͠Δ࣌Ͳ͏ͯ͠ݟ͕ͨมΘΒͳ͍࣌ظ͕͋Δ • ϚΠΫϩαʔϏεͰҠ২தͱػೳ֦ுதͷͷʹ͚͍͢ͷͰͦ Ε͍͍͔͠Εͳ͍ • ෳͷݴޠѻ͑Δਓ͕ภΓ͕ͪ
• ؾ߹͍ͰΓӽ͍͔͑ͯ͘͠ͳ͍
Ҏ্Ͱ͢