- Ruby / Rails関連
週刊Railsウォッチ: Kamalはゲームチェンジャーになるか、Solid Queueで使われているfugitほか(20240423後編)
こんにちは、hachi8833です。後編が遅れてしまい申し訳ありません🙇
RubyKaigi 2024の公式パーティをはじめとするイベント募集が始まりました。
We just revealed details of the official party for RubyKaigi 2024 and its registration is now open: https://t.co/MUTBTeaFCi
And more social events will follow during this week!#rubykaigi— RubyKaigi (@rubykaigi) April 16, 2024
🔗Rails
🔗 Kamalはゲームチェンジャーになるか?(Ruby Weeklyより)
つっつきボイス:「SREの専門家としてKamalを評価した記事だそうです」「ざっと見たところ、アプリケーションデプロイ管理の仕組みの歴史というか経緯みたいなものを簡潔に説明していたり、Kamalがどういうユーザー層に刺さるのかみたいな話までが網羅的に書かれていてなかなか良い記事👍: マネージドサービスに委ねたいならKamalよりもECSとかの方が良いと思うけど、ロックインされたくないならKamalかなという感じ」
「従来Railsアプリなどのデプロイに使われてきたcapistranoを今後も使うかどうかは微妙ですし、自分たちにはDocker ComposeがあればデプロイできるKamalのようなツールで良かったのかもしれないという気持ちにはなりますね」「なるほど」「Kamalの方法自体は悪くないと思いますけど、コンテナを自分たちで管理することにはなりますし、自分はAWSを使うことも多いので、自分ならAWS Fargateのコンテナ管理システムに乗せることをまず考えるかも」
参考: AWS Fargate(サーバーやクラスターの管理が不要なコンテナの使用)| AWS
- 管理やデプロイを深追いしたくない人や、現在使っているHerokuやFly.ioやRenderなどに特に不満がなければ、現状のソリューションを使うべき
- パブリッククラウドが好きでなく、VPSやベアメタルへのホスティングをやりたいのであればKamalを試してみよう
- すでにKubernetesを使っていて不満もなく、あるいはセットアップが複雑ならば、当面そのままにするのが賢明そう
- アプリケーションの利用量が急増してインフラを頻繁に自動または手動スケーリングしなければならないのであれば、Kubernetesを検討すべき(まだであれば)
- Kubernetesが好きでないor難しすぎると思うのであればKamalが合うかもしれないのでぜひチェックすべき
同記事より抜粋・要約
🔗 fugit: さまざまなスケジューリング構文を解釈するツール
つっつきボイス:「fugitはSolid QueueのREADMEで言及されていて知りました↓」
「fugitはflorというRuby製ワークフローツールにcron風の構文やDurationなどでスケジュールを渡したりできる↓: まさにSolid Queueでやりそうな処理だし、GoodJobやdelayed_cron_jobでもfugitが使われているのね」「'every day at noon'はSlackにも似たようなスケジューリング機能がありますね」
# 同リポジトリより
require 'fugit'
Fugit.parse('0 0 1 jan *').class # ==> ::Fugit::Cron
Fugit.parse('12y12M').class # ==> ::Fugit::Duration
Fugit.parse('2017-12-12').class # ==> ::EtOrbi::EoTime
Fugit.parse('2017-12-12 UTC').class # ==> ::EtOrbi::EoTime
Fugit.parse('every day at noon').class # ==> ::Fugit::Cron
🔗 react_on_railsが14.0.0にメジャーアップデート(Ruby Weeklyより)
参考: Release 14.0.0 · shakacode/react_on_rails
つっつきボイス:「react_on_railsがメジャーアップデートされてRuby 2.7以前のサポートを打ち切ったそうです」「メンテナンスは活発なようなので、react_on_railsを既に導入していたところはしばらくは安心できそうですけど、新しいRailsでサポートが廃止されたWebpacker/Shakapackerに依存するgemなので、いずれにしろ先細り感はありますね」「それもそうですね」「react_on_railsを剥がしたいプロジェクトは今の時代だと結構多いんじゃないかな」
🔗Ruby
🔗 Vernier: Rubyの次世代プロファイラ(Ruby Weeklyより)
つっつきボイス:「CRuby 3.2.1以降を対象とした次世代プロファイラだそうです」「このvernierから出力したJSONをこのVernier Profilerやtendeloveさんのprofilerに渡すとこんな感じで表示できるようですね↓」
Ruby/Vernier – 2023/9/6 5:16:19 UTC (public) – Firefox Profilerより
参考: バーニヤ - Wikipedia
🔗 RubyGemsはxz/liblzmaバックドアの影響を受けていない(Ruby Weeklyより)
つっつきボイス:「先週xzのバックドアが騒ぎになっていましたけど、RubyGem.orgが全gemをスキャンして、liblzmaが含まれていないことを確認できたそうです」「RubyGem.orgのDockerfileにも混入はなかったことが確認できてよかった👍」
参考: XZ Utils バックドア — 知っておくべきこと、できること | Akamai
🔗 clipboard: マルチプラットフォームで使えるクリップボード操作gem(Ruby Weeklyより)
つっつきボイス:「クリップボードにアクセスできるgemですけど、マルチプラットフォームを謳っているのが珍しいですね」「WindowsのWSLやLinuxのGtk+に加えてCygwinでも使えるのね」
🔗 その他Ruby
ちなみに教科書の編集さんから「いかにもプログラミングのコードっぽい画像を」と言われたのでこっそりCRubyのコードを忍ばせています。 https://t.co/HmfD8Rqckq
— やきとりい (@yotii23) April 8, 2024
つっつきボイス:「やきとりいさんの著書が小学校の国語の教科書で引用されたそうです🎉」「CRubyのソースコードなので、映っているのはRubyではなくC言語のコードですけどね」
Rubygemsコードリーディング部が1年以上ぶりに再始動します!今回はRubyKaigi直前ということで、ruby-lspを読んでいきます。オンライン開催です、みなさんのご参加お待ちしております😆
ruby-lspを読む https://t.co/CvQ1c5zSwR #rubygems_code_reading— 大倉雅史(OKURA Masafumi) (@okuramasafumi) April 5, 2024
「ruby-lspのソースコードを読むという企画は面白そう👍: ruby-lspは起動後に常駐するのでVS Codeとかから使うとマジで速いですよ」
後編は以上です。
バックナンバー(2024年度第2四半期)
- 20240410後編 SeleniumでRubyの全クラスとモジュールにRBSが追加ほか
- 20240409前編 Rails公式の"rails-new"ツールでRailsプロジェクトをセットアップほか
- 20240402 solid_queueとmission_control-jobsが正式にRailsのgemに、Rubyの"チルド"文字列ほか
ソースの表記されていない項目は独自ルート(TwitterやはてブやRSSやruby-jp SlackやRedditなど)です。
週刊Railsウォッチについて
TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ)