Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
1 SREのチーム共通言語をGoにした話 渡部 龍一 / GMO PEPABO inc. 2023.06.02 Go Conference 2023 Online
Slide 2
Slide 2 text
2 アジェンダ 1. 自己紹介 2. 担当サービス紹介 3. 所属チーム紹介 4. チームが抱えていた課題 5. なぜGoにしたか 6. 結果どうなったか 7. まとめ
Slide 3
Slide 3 text
3 1. 自己紹介
Slide 4
Slide 4 text
技術部プラットフォームグループ 2021年 中途入社 4 自己紹介 渡部 龍一 Watanabe Ryuichi ● 住んでるところ: 宮城 ● ロール: SRE ● 趣味: 旅行、ドライブ、(緩めの)自宅サーバ ● Go歴: 2年 好きな標準ライブラリos/signal ● Twitter : @ryuichi_1208
Slide 5
Slide 5 text
5 2. サービス紹介
Slide 6
Slide 6 text
6
Slide 7
Slide 7 text
7 1. インターネットでものを売りたい人を支援 2. 2005年にサービスの提供を開始 3. 複数のユーザーで1つのリソースを共有するマルチテナント 4. ざっくりアプリエンジニア : 30〜名、SRE: 6名 5. オンプレ〜VM〜k8s
Slide 8
Slide 8 text
8 3. 所属チーム紹介
Slide 9
Slide 9 text
● 所属 ● 技術部プラットフォームグループ ● 役割 ● ペパボのサービスの可用性を確保し、成長に合わせて適切な環境を提 供するグループ ● インフラエンジニア/バックエンドを経験してきたメンバー構成 9
Slide 10
Slide 10 text
10 4. チームが抱えていた課題
Slide 11
Slide 11 text
● 歴史あるサービス ● メンバーの入れ替わりも多くあったり ● インフラの構成も大きく変わっている ● これまでたくさんのインフラや自動化ツールが作られてきた ○ Ruby, PHP, Perl, Python, ShellScript, JavaScript, C, Java, etc… 11
Slide 12
Slide 12 text
● ツールごとに違う言語で実装されていた ● 触るために言語を学ぶ必要があった ● 複数の言語を短期間で触るとコンテキストスイッチ ● 精通したメンバーもいなく開発速度やバグを生みやすい ● ライブラリが至る所で使われている ● 大きな脆弱性ニュースが出た際に影響の有無がわかりにくい 12
Slide 13
Slide 13 text
● 共通言語を定めてこれらの課題を解決していこう 13
Slide 14
Slide 14 text
14 5. なぜGoにしたのか
Slide 15
Slide 15 text
● 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
Slide 16
Slide 16 text
16 6. その結果
Slide 17
Slide 17 text
● 結果 ● 抱えていた課題の一部を解消出来ている ● 開発速度は言語の取得時間が減ったので上がった ● Goに精通したメンバーがいるわけではない i. 公式ドキュメントや書籍を読みつつ習得中 17
Slide 18
Slide 18 text
● 感想 ● 最高、書いていて気持ちいい、goroutine便利... ● やってること ● 社内ツールをGoへrewrite ● 新規ツールはGoで書く ○ レビューしやすさ↑ ● 標準ライブラリ/OSSのコードリーディング ● ツール書いて公開 ● コミュニティも多く地元でも参加して情報交換 18
Slide 19
Slide 19 text
● 倒せていない課題も多々ある ○ メモリリーク ○ パフォーマンスが出なかった ○ 仮想メモリをシビアに管理してる場面 ○ GoでAtCoderやってるが必須レベルの関数を知らない ● 伸び代なので今後解決していきたい 19
Slide 20
Slide 20 text
20 ご清聴ありがとうございました