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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ryuichi1208
June 02, 2023
6
920
SREのチーム共通言語をGoにした話
ryuichi1208
June 02, 2023
Tweet
Share
More Decks by ryuichi1208
See All by ryuichi1208
会話で作る信頼性
ryuichi1208
0
140
シグナル(Unix)と仲良くなる
ryuichi1208
1
24
AI前提のサービス運用について再考する
ryuichi1208
6
1.4k
A Shallow Dive into the World of TCP
ryuichi1208
1
640
入門リトライ
ryuichi1208
20
8k
超入門SRE 2025
ryuichi1208
4
1.5k
Goで作って学ぶWebSocket
ryuichi1208
5
4k
コード化されていない稼働中のサーバを移設_再構築する技術
ryuichi1208
20
15k
AI前提のサービス運用ってなんだろう?
ryuichi1208
9
2k
Featured
See All Featured
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
230
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
970
The Curse of the Amulet
leimatthew05
1
10k
Google's AI Overviews - The New Search
badams
0
930
Measuring & Analyzing Core Web Vitals
bluesmoon
9
780
Bash Introduction
62gerente
615
210k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.1k
The untapped power of vector embeddings
frankvandijk
2
1.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
220
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 ご清聴ありがとうございました