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
SREのチーム共通言語をGoにした話
Search
ryuichi1208
June 02, 2023
6
850
SREのチーム共通言語をGoにした話
ryuichi1208
June 02, 2023
Tweet
Share
More Decks by ryuichi1208
See All by ryuichi1208
AI前提のサービス運用について再考する
ryuichi1208
6
1.2k
A Shallow Dive into the World of TCP
ryuichi1208
1
570
入門リトライ
ryuichi1208
19
7.3k
超入門SRE 2025
ryuichi1208
4
1.4k
Goで作って学ぶWebSocket
ryuichi1208
5
3.7k
コード化されていない稼働中のサーバを移設_再構築する技術
ryuichi1208
20
13k
AI前提のサービス運用ってなんだろう?
ryuichi1208
9
1.9k
入門 バックアップ
ryuichi1208
22
10k
効果的なオンコール対応と障害対応
ryuichi1208
9
3.9k
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Agile that works and the tools we love
rasmusluckow
329
21k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Gamification - CAS2011
davidbonilla
81
5.4k
Designing for humans not robots
tammielis
253
25k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
390
Building Applications with DynamoDB
mza
95
6.5k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
760
Visualization
eitanlees
146
16k
Designing for Performance
lara
610
69k
Transcript
1 SREのチーム共通言語をGoにした話 渡部 龍一 / GMO PEPABO inc. 2023.06.02 Go
Conference 2023 Online
2 アジェンダ 1. 自己紹介 2. 担当サービス紹介 3. 所属チーム紹介 4. チームが抱えていた課題
5. なぜGoにしたか 6. 結果どうなったか 7. まとめ
3 1. 自己紹介
技術部プラットフォームグループ 2021年 中途入社 4 自己紹介 渡部 龍一 Watanabe Ryuichi •
住んでるところ: 宮城 • ロール: SRE • 趣味: 旅行、ドライブ、(緩めの)自宅サーバ • Go歴: 2年 好きな標準ライブラリos/signal • Twitter : @ryuichi_1208
5 2. サービス紹介
6
7 1. インターネットでものを売りたい人を支援 2. 2005年にサービスの提供を開始 3. 複数のユーザーで1つのリソースを共有するマルチテナント 4. ざっくりアプリエンジニア :
30〜名、SRE: 6名 5. オンプレ〜VM〜k8s
8 3. 所属チーム紹介
• 所属 • 技術部プラットフォームグループ • 役割 • ペパボのサービスの可用性を確保し、成長に合わせて適切な環境を提 供するグループ •
インフラエンジニア/バックエンドを経験してきたメンバー構成 9
10 4. チームが抱えていた課題
• 歴史あるサービス • メンバーの入れ替わりも多くあったり • インフラの構成も大きく変わっている • これまでたくさんのインフラや自動化ツールが作られてきた ◦ Ruby,
PHP, Perl, Python, ShellScript, JavaScript, C, Java, etc… 11
• ツールごとに違う言語で実装されていた • 触るために言語を学ぶ必要があった • 複数の言語を短期間で触るとコンテキストスイッチ • 精通したメンバーもいなく開発速度やバグを生みやすい • ライブラリが至る所で使われている
• 大きな脆弱性ニュースが出た際に影響の有無がわかりにくい 12
• 共通言語を定めてこれらの課題を解決していこう 13
14 5. なぜGoにしたのか
• 1. Kubernetesやインフラツールやそれらエコシステムの多くがGoで実装されて いて触れる機会が多いと判断 • 2. 作るツールの多くはIOバウンドなものが多くgoroutineと相性が良かった • sshして〜httpリクエストして〜自動化ツール •
3. クロスプラットフォーム対応 • Mac/Windows/Linux用のバイナリが生成しやすかったり • 4. 簡潔な文法とシンプルなデザイン • 入門資料が豊富で入門しやすかった i. 研修をやって1週間くらいで読めるようになった ii. https://learn.microsoft.com/ja-jp/training/paths/go-first-steps/ iii. シンタックスシュガーも少ない 15
16 6. その結果
• 結果 • 抱えていた課題の一部を解消出来ている • 開発速度は言語の取得時間が減ったので上がった • Goに精通したメンバーがいるわけではない i. 公式ドキュメントや書籍を読みつつ習得中
17
• 感想 • 最高、書いていて気持ちいい、goroutine便利... • やってること • 社内ツールをGoへrewrite • 新規ツールはGoで書く
◦ レビューしやすさ↑ • 標準ライブラリ/OSSのコードリーディング • ツール書いて公開 • コミュニティも多く地元でも参加して情報交換 18
• 倒せていない課題も多々ある ◦ メモリリーク ◦ パフォーマンスが出なかった ◦ 仮想メモリをシビアに管理してる場面 ◦ GoでAtCoderやってるが必須レベルの関数を知らない
• 伸び代なので今後解決していきたい 19
20 ご清聴ありがとうございました