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: 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: 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: 37
たすきを渡す
https://github.com/kaigionrails/conference-app/pull/323