Rabbit Slide Show

TokyoRubyKaigi12

2025-01-17

Description

* <https://regional.rubykaigi.org/tokyo12/> * <https://connpass.com/event/339170/>

Text

Page: 1

Diff of the conference-app
from 2023 to 2024
unasuke
東京Ruby会議12 前夜祭
2025-01-17

Page: 2

自己紹介
Name: うなすけ
Work: フリーランス
Kaigi on Rails organizer
GitHub https://github.com/unasuke
Fediverse https://mstdn.unasuke.com/@unasuke
X (Twitter) https://twitter.com/yu_suke1994
https://unasuke.com

Page: 3

さっきのワークショップで書いたコード
CANVAS_SIZE = 800
DRAW_COUNT = 0
class Circle
def initialize
@x = rand(0..CANVAS_SIZE)
@y = rand(0..CANVAS_SIZE)
loop do
@speed = rand(-10.0..10.0)
break if abs(@speed) > 2.0
end
@angle = rand(0..Math::PI)
@timing = [10, 20, 30, 40, 50].shuffle.first
end
def next_position(count)
if count % @timing == 0
@angle = rand(0..(Math::PI*2))
end
@x = @x + cos(@angle) * @speed
@y = @y + sin(@angle) * @speed
if @x >= CANVAS_SIZE || @y >= CANVAS_SIZE
@angle += Math::PI
end
end
def draw(count)
next_position(count)
fill("#0077B6")
ellipse(@x, @y, 50, 50)
end
end
def setup
createCanvas(CANVAS_SIZE, CANVAS_SIZE)
background("#CAF0F8")
# noLoop
@circles = 100.times.map { Circle.new }
@draw_count = 0
end
def draw
noStroke
grid_size = 30
background("#CAF0F8")
@circles.each {|c| c.draw(@draw_count) }
@draw_count += 1
end

Page: 4

東京Ruby会議12では「Rubyと暮らす」発表をけっこう幅広く募集し
ています!!!!!!!!!!!!(いました)

Page: 5

https://note.com/tokyorubykaigi12/n/
n14803ce700dd
「Rubyと暮らす」
東京Ruby会議12がめざす方向性をあえて一言で示すならば、こう
なるでしょうか。Rubyを日々書いて暮らす、あなたの話を聞きたい
です! 小粒なものでも、大掛かりなものでも、どちらも歓迎です。
https://note.com/tokyorubykaigi12/n/n14803ce700dd より

Page: 6

「暮らし」
カンファレンス(コミュニティ)は暮らしの一部
ですよね?

Page: 7

「暮らし」
カンファレンス(コミュニティ)は暮らしの一部
ですよね?
特に運営メンバーともなると、暮らしですよね?

Page: 8

Kaigi on Railsは暮らし、そういうことにします
というわけで暮らしの話をします

Page: 9

Kaigi on Rails 2024
参加していただけましたか?
楽しんでもらえましたか?

Page: 10

Kaigi on Rails conference-app
https://app.kaigionrails.org
https://github.com/kaigionrails/conference-app

Page: 11

それはとあるafter eventでの出来事であった
「へ〜、そんなアプリがあったんですね」

Page: 12

2025年の抱負
2025年はもっとconference-appを宣伝する年にします

Page: 13

Diff of the conference-app from 2023 to 2024
1. DB移行
2. Redis移行
3. Heroku脱出
4. Rails 8移行
5. Solid Queue移行

Page: 14

2024、一番やりたかったこと
Heroku脱出!

Page: 15

Why 脱Heroku?
ログインセッションが短い
インスタンスがUSにある
HTTP/1.1しかサポートされていない
※ 2024-11-21にHTTP/2がGAになりました
https://devcenter.heroku.com/changelog-items/3066

Page: 16

どうすれば脱Herokuできるのか?
小さいマネージドのPostgreSQLがあって
小さいマネージドのRedisがあって
アクセスのない時はインスタンスを止めてくれて
そんなPaaS、IaaSがあればなあ……

Page: 17

移行先のPaaS候補
Render.com
https://render.com
Fly.io
https://fly.io

Page: 18

結局AWSに移行しました
AWS App Runnerがある
Google CloudでいうCloud Run的な
RubyKaigi側で使っているAWSアカウントを親にできる
(thanks sorah)
GitHubアカウントでOIDCできる (thanks sorah)
https://speakerdeck.com/sorah/serverless-idp-for-small-
team-himari
実はRubyKaigiのsponsor-appがApp Runnerに移行している

Page: 19

AWS移行、DBとRedisはどうするの?
ElastiCache Serverlessはあるけど……
Aurora Serverlessは最小を0にできないし(最小は0.5 ACU)
(後述)
1年で1週間くらいしか稼動しないのにずっとリソース確保しっぱなしはしたく
ない!

Page: 20

Serverless Postgres
Neon
https://neon.tech
Nile
https://www.thenile.dev
これならDBにアクセスしている時間のみの課金にできる!

Page: 21

ヨッシャ移行するぞ

Page: 22

ヨッシャ移行するぞ

Page: 23

ヨッシャ
https://github.com/kaigionrails/terraform/pull/4

Page: 24

Diff of the conference-app from 2023 to 2024
1. DB移行
2. Redis移行
3. Heroku脱出 ← ココまで終わり
4. Rails 8移行
5. Solid Queue移行

Page: 25

Rails 8移行
Rails 8 beta1 2024-09-27 released
ところでKaigi on Rails 2024は10/25

Page: 26

Rails 8 upgrade
conference-appの場合、以下の順でupdateをした
1. v7.1.3.4
2. v7.2.1
3. v8.0.0.beta1
4. v8.0.0.rc1 (Kaigi on Rails 2024開催中はここ)
5. v8.0.0.rc2 (10/30 released)
6. v8.0.0 (11/07 released)

Page: 27

Is rails 8 upgrade hard?
https://guides.rubyonrails.org/
upgrading_ruby_on_rails.html#upgrading-from-rails-7-2-to-
rails-8-0
全然長くない!

Page: 28

Diff of the conference-app from 2023 to 2024
1. DB移行
2. Redis移行
3. Heroku脱出
4. Rails 8移行 ← ココまで話した
5. Solid Queue移行

Page: 29

Solid Queue移行
やるだけ
(デカいdiffの大半はmigrationとrbsです)

Page: 30

現在の構成

Page: 31

Why 脱Heroku?
ログインセッションが短い
インスタンスがUSにある
HTTP/1.1しかサポートされていない
※ 2024-11-21にHTTP/2がGAになりました
https://devcenter.heroku.com/changelog-items/3066

Page: 32

結局オレゴン(アメリカ)やん!
はい……

Page: 33

2024-11-20 Amazon Aurora Serverless v2 update
Amazon Aurora Serverless v2 がゼロキャパシティへのスケーリングを
サポート
Amazon Aurora Serverless v2 では、0 個の Aurora 容量ユ
ニット (ACU) へのスケーリングがサポートされるようになりました。
このリリースにより、データベース接続に基づいて非アクティブ状態が
一定期間続くと、データベースを自動的に一時停止できます。最初の
接続が要求されると、データベースは自動的に再開し、アプリケーショ
ンの要求に合わせてスケールします。Aurora Serverless v2 は
ACU 単位で容量を計算します。1 つの ACU は、約 2 ギビバイト
(GiB) のメモリ、対応する CPU、およびネットワークから構成されま
す。容量範囲を指定すると、データベースはアプリケーションのニーズ
に合わせてこの範囲内でスケーリングされます。
https://aws.amazon.com/jp/about-aws/whats-new/
2024/11/amazon-aurora-serverless-v2-scaling-zero-
capacity/

Page: 34

つまり……?
全てがap-northeast-1になる時代

Page: 35

要は?
Kaigi on Rails 2025でもconference-appを使う予定です!
ポートフォリオ置き場にAWSという選択はいかが?
無理があるのではないか?

Page: 36

たすきを渡す

Page: 37

たすきを渡す
https://github.com/kaigionrails/conference-app/pull/323

Page: 38

たすきを渡す

Other slides

CNDF2023 CNDF2023
2023-08-03
ruby30th-lt ruby30th-lt
2023-02-25