Slide 1

Slide 1 text

©iCARE Co.,Ltd
 SRE が Ruby アップグレードの時にやっていること あいさか (@mist_dev)

Slide 2

Slide 2 text

©iCARE Co.,Ltd
 自己紹介 ● あいさか (@mist_dev) ● iCARE SRE 2年生 ● Ruby💎とビール🍺が好き ● ふだんやってること ○ インフラ基盤のアップグレード ○ セキュリティ周り対策 ○ ポストモーテム回し業 ○ 問い合わせを開発者と一緒に対応 ○ 手順書書き業

Slide 3

Slide 3 text

©iCARE Co.,Ltd
 きょうの話 ● SRE が Ruby バージョンのアップグレードを牽引 するととってもよいです! ● うちの SRE チームはこういう関わりかたで Ruby バージョンのアップグレード をしています、という話をします ● 各社 SRE の業務領域に差異があるので、どの辺までやってるか?とかは懇親会 でぜひお話ししたい!☺

Slide 4

Slide 4 text

©iCARE Co.,Ltd
 Rubyバージョンのアップグレード ● Rubyはわかりやすく EOL が 1年おきにくるのでこまめにアップグレードをする ひつようがある 出典: https://www.ruby-lang.org/ja/downloads/branches/

Slide 5

Slide 5 text

©iCARE Co.,Ltd
 Rubyバージョンのアップグレード ● うちの SRE でやっていること ○ Ruby バージョンアップグレードの進行 取りまとめ ○ Ruby 新バージョンの リリースノート から変更を要する要素の洗い出し ○ アプリケーションの修正 ■ 廃止やリネームになった要素の置換 ■ Gemfile などの修正 ■ CI の変更前後の確認 ○ アップグレード環境の構築・テスト ○ アップグレード環境へのリプレイス

Slide 6

Slide 6 text

©iCARE Co.,Ltd
 リリースノートから変更の必要のある要素の洗い出し ● このあたりの削除されたメソッドを 使っていたら修正をしないとな〜🧐 出典: https://www.ruby-lang.org/ja/news/2022/12/25/ruby-3-2-0-released/

Slide 7

Slide 7 text

©iCARE Co.,Ltd
 リリースノートから変更の必要のある要素の洗い出し 目次 ● イメージや環境に入れておかないとい けないパッケージないかな〜🧐 出典: https://www.ruby-lang.org/ja/news/2022/12/25/ruby-3-2-0-released/

Slide 8

Slide 8 text

©iCARE Co.,Ltd
 アプリケーションの修正 ● 実際にやったこと ○ Time.new の引数の 型の厳格化 に対応 ○ File.exists? の削除にともない File.exist? に リネーム ○ bundled gem 化する予定の gem を Gemfile に追記 ○ YJIT の有効化 ■ rustc のインストール ○ などなど...

Slide 9

Slide 9 text

©iCARE Co.,Ltd
 そのあと 目次 ● CI が通ることを確認 ○ 通らない場合は調査して修正、開発者の方に修正を依頼など ● 新しい Ruby バージョンで稼働する環境を構築 ● 社内の QA チームに QA を依頼 ○ 特に変更のあったメソッドを利用している機能があれば伝える ○ 自明な変更がないときもある... ● リリース! ○ 変更前後の Datadog を比較して課題がないこと、予期した改善が予期した 通りに行われていること、予期していない変動がないかを確認

Slide 10

Slide 10 text

©iCARE Co.,Ltd
 SRE が Ruby アップグレードをリードするといいこと 目次 ● 開発エンジニアに 機能開発に集中 してもらえる ● インフラ環境側の変更をとりこみやすい ○ パッケージ入れなきゃ〜 ○ サービス側に変更入れなきゃ〜 ● アプリケーションのコードを触る いい機会になる ○ 開発のみなさまへのリスペクトがめちゃめちゃ生まれる ● おすすめです!

Slide 11

Slide 11 text

©iCARE Co.,Ltd
 ©iCARE Co.,Ltd
 Thank you.