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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
mackee
March 25, 2024
Programming
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
マイクロサービス化を利用した Goへの移行事例
golang.tokyo #34
https://golangtokyo.connpass.com/event/310844/
mackee
March 25, 2024
More Decks by mackee
See All by mackee
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
470
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
1.1k
Agentに至る道 〜なぜLLMは自動でコードを書けるようになったのか〜
mackee
6
6.1k
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
14
7.3k
ワンバイナリWebサービスのススメ
mackee
10
8.9k
tanukistack ライブコーディング / tanukistack live-coding
mackee
0
740
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
1.2k
perl for shell, awk and sed programmers
mackee
3
2.9k
今更GoのWebフレームワークを作ろうとしているワケ / Why am I trying to create a Go web framework now?
mackee
1
1.1k
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
470
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
190
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
630
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
140
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
140
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
210
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
2
110
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1.1k
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
440
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.3k
Claude Team Plan導入・ガイド
tk3fftk
0
240
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
3
710
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Designing for Timeless Needs
cassininazir
1
420
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Done Done
chrislema
186
16k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
190
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
400
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.2k
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ʹҠߦͯ͠ਏ͔ͬͨ͜ͱ • νʔϜશମͰ͕ඞཁ • Ҡ২͍ͯ͠Δ࣌Ͳ͏ͯ͠ݟ͕ͨมΘΒͳ͍࣌ظ͕͋Δ • ϚΠΫϩαʔϏεͰҠ২தͱػೳ֦ுதͷͷʹ͚͍͢ͷͰͦ Ε͍͍͔͠Εͳ͍ • ෳͷݴޠѻ͑Δਓ͕ภΓ͕ͪ
• ؾ߹͍ͰΓӽ͍͔͑ͯ͘͠ͳ͍
Ҏ্Ͱ͢