Kaigi onRails 2024 に参加しました こんにちは、クラウドハウス採用でエンジニアインターンをしている Higashiji です。 10 月の 25・26 日、Ruby onRails についてのカンファレンス、 Kaigi onRails 2024 が開催されました。 弊社からは新卒エンジニアの @izumitomo が「デプロイを任されたので、教わった通りにデプロイしたら障害になった件 ~俺のやらかしを越えてゆけ~ 」というセッションで登壇しました。 スライドがアップロードされているので、興味を持っていただけた方はぜひご覧になってください。 私はこれまでカンファレンスに参加したことがなかったのですが、カンファレンス参加費補助制度を使って初めて参加させていただきました。本記事では、Shinichi Maeshima (@willnet) さんによるセッション Sid

rails newでRailsアプリケーションを作成したときのデフォルトWebサーバーは、Pumaになります。PumaがHTTPリクエストをどのように処理するかを説明しましょう。 🔗Pumaがリクエストを処理するしくみPumaは受信リクエストをTCPソケットでリッスンします。 リクエストが到着すると、そのリクエストはそのTCPソケットのキューに入れられます。次に、そのリクエストがPumaのプロセスによって取得されます。Pumaのプロセスとは、Railsアプリケーションのインスタンスを実行する、独立したOSプロセスです。 それでは、Pumaがリクエストをどのように処理するかを、順を追って見てみましょう。Pumaの内部構造 すべての受信コネクションは、ソケットバックログ(socket backlog)に追加されます。ソケットバックログは、保留中のコネクションを保持するOSレベルのキュー

タイトルに書きたいことが長いとタイトル付けに困りますね。 今日は、「Ruby onRails の ActiveRecord の insert_all でMySQL向けに発行されるSQLに ON DUPLICATE KEY UPDATE foo = foo が含まれている理由」について、知っておこう。(調べました) TL;DRRuby onRails の insert_all で発行されるSQLには ON DUPLICATE KEY UPDATE foo = foo が末尾に指定されている foo はどうやら INSERT INTO で登録先として指定している列の1番目 upsert_all に ON DUPLICATE KEY UPDATE が指定されているならまだしも、insert_all にこの指定があるのは感覚的に気持ち悪い 該当の実装部分はここ https://github

はじめにNext.jsにServer Actionが新しく導入されました。サーバ上の関数をブラウザから直接呼び出すようなコードの書き味を提供するもので、非常に魅力のあるコンセプトだと私は思っています。ただしサーバ上で実行されるコードとブラウザで実行されるコードの境界が曖昧で、"use server"のセキュリティ上の懸念もよく議論されています。 一方で、私の先日の記事Next.jsで簡単なCRUDアプリを作りながら気になったセキュリティ:Railsの視点からで、私はこの"use server"問題には言及しませんでした。まだ非常に新しい話題でかつNext.js側の対応も進行中だというのもありますが、実は個人的にあまり気にならないのが最大の理由です。 気にならなくなったきっかけは、Server ActionをRuby onRailsのコントローラと同じように考え始めたことです。こうする

The firstRails 8 beta has officially been released, bringing an exciting set of features, bug fixes, and improvements. This versionbuilds on the foundation ofRails 7.2, while introducing new features and optimizations to makeRails development even more productive and enjoyable. Key highlights include an integration with Kamal 2 for hassle-free deployments, the introduction of Propshaft as the

静岡市でWeb開発しているkazuomatzです。 以前、こちらの記事で、Rails +MySQL で位置情報を扱う時に標準だったライブラリ activerecord-mysql2spatial-adapterについて書きました。 ライブラリの開発が止まってしまい、新しいRailsのバージョンに更新しようとすると対応されていないので、リポジトリをforkして、Rails6.0で何とか動かした話です。 今年、AWSのRDSのMySQL5.7系のサポートの終了がアナウンスされました。2024年2月以降、RDSでMySQL5.7を利用し続けるには、有償の延長サポートに入る必要があります。 というわけで今年は、MySQL5.7で稼働しているシステムをMySQL8に更新するお仕事が数件ありました(2023年12月現在、まだまだ絶賛実施中です)。 当然、MySQL5.7とMySQL8.0に移行するに

この記事は、hacomono Advent Calender2023の20日目の記事です。 はじめに こんにちは、プラットフォームチーム所属のまこたすです。 この記事は主にMySQL5.7,MySQL8.0のcollation周りの挙動の違いについて書いています。AWS RDSMySQL5.7がEOLを迎える今、一番話したい内容はRails xMySQL5.7環境からRails xMySQL8.0環境へ移行する際にハマった話とそこからみる気をつけるべき観点という話題ではあるのですが、前提の話が長いので記事を2つに分けてお伝えします。今回はRailsの話は触れず、MySQLのcollation周りの話のみをします。 この記事で書くことMySQL5.7,MySQL8.0でのサーバー, データベース, テーブルのcollationの決まり方とSHOWCREATE (TABLE|DA

railsが参照しているrdsをmysql5.7から8.0にアップグレードした時の注意点メモ utf8mb4を指定した場合は以下のパラメーターグループをutf8mb4にする必要がある character_set_database データベースの文字セットを定義します。文字セットは、文字を数値で表現する方法を定義するデータエンコーディングの一種です。 この設定は、新しく作成されるテーブルとそのカラムに使用されるデフォルトの文字セットを指定します。特定のテーブルやカラムに対して異なる文字セットを設定することも可能ですが、character_set_databaseはデフォルトの設定で、特定でない指定がない場合はこれが適用されます。 character_set_client ユーザーからのSQLステートメントがエンコードされている方法を定義します。クライアントからデータベースサーバーに送信される

GitHub、1200台以上のMySQL 5.7を8.0へアップグレード。サービス無停止のまま成功させるGitHubが提供するGitHub.comは、世界最大のソースコード管理システムを始めとするソフトウェア開発者向け支援サービスを提供しています。 そのGitHub.comはRuby onRailsで構築されており、同社はつねにRubyとRuby onRailsをアップデートし続けていることを今年(2023年)4月に明らかにしています。 参考:GitHubは200万行規模のRailsアプリケーションであり、毎週RailsとRubyを最新版にアップデートし続けている そして同社はこのGitHub.comを支える1200台以上のMySQL 5.7を、GitHub.comのサービスレベルを維持したまま1年以上かけてMySQL 8.0にアップグレードしたことをブログで明らかにしました。 Up

※1:RUNTEQ受講生のうち所定の学習を履行された方およびRUNTEQ Agent経由で転職活動を履行された方に関する就職率(2023年1月〜2023年6月の当社統計より) ※2:2025年5月に卒業生を対象とした自社アンケート結果より この先のキャリアについて、漠然とした不安を抱えていませんか? 変化の激しいIT業界で、5年後、10年後も「選ばれるエンジニア」で あり続けるために、今、何をすべきか。 それは、「長く活躍できるエンジニア」になることです。 最近では、AIの進化が目覚ましく、エンジニアの働き方も大きく変わろうとしています。 これからの時代、ただコードが書けるだけではもう不十分です。AIを理解し、うまく使いこなし、自分の開発に役立てられるエンジニアこそが、企業から本当に求められる人材になります。

こんにちは、電話自動応答サービスIVRyでエンジニアをしている小瀬です! 実は先月、ユーザーさんには伝わらない形で大幅な「作り直し」を行っておりました。 余談ですが、このブログを書いている時にちょうどこのツイートがバズっているのを見かけました。 過去のコードを作り直したいけど、作り直せない、みたいなことってあるあるなんだなと改めて思いました笑 今回僕らは勇気を出して作り直す決断をして、過去のコードはレポジトリ単位で捨てて、新規でAPIを100本弱、2-3ヶ月ほどかけて粛々と実装しました。 完全な作り替えだったので、リスクの高めのリリースでしたが、無事に障害なく乗り越えることができました。 今回は、作り直しの動機や、失敗しないために気をつけたことなどをブログにまとめていきたいと思います。 さらなる飛躍のために、一時停止 IVRyは、初めからリッチな構成で作ったわけではなく、どちらかと言うとプ

こんにちは!SmartHRで基本機能の開発を担当している、エンジニアのwakasaです。2023年の1月から半年かけて、自チームのテストフロー見直しを行い、実装時間を大幅に増やすことができました。今回はその取り組みをご紹介します。 見直し前のチームの状態 私の所属するEチームは、SmartHRの基本機能の中でも、従業員情報やマスターデータの履歴データ管理周りの機能開発を主に担当しています。2023年8月現在、エンジニアが6名、プロダクトマネージャーが1名、プロダクトデザイナーが1名所属しており、QAエンジニアは所属していません。以前はQAエンジニアがチームに所属していましたが、2022年10月にチームを離れました。QAエンジニアがチームを離れたあとはエンジニアがテスト業務を兼務しています。 今回の取り組みを始めるきっかけとなったのは、2022年の年末に実装にどのくらい時間を使えているのか計

Ijust started using New Relic RPM with myrails app, and one of the metrics they provide is "Throughput RPM". I havegoogled everywhere and thoroughly combed the New Relic docs, and I cannot find ANY written explanation of the RPM throughput metric. Isit "requests per minute" or "requests per millisecond" or something else? ** combustion engines and revolutions per minute make this impossible to
【天才の育て方】三橋優希 ~アプリ開発を行う15歳の若きクリエータ KIDSNA編集部の連載企画『天才の育て方』。#09は三橋優希にインタビュー。未踏ジュニアスーパークリエータに選ばれた彼女は、15歳にしてスマホ向けアプリを開発。プロ顔負けのアイデアとプログラミング技術が育まれた背景に迫る。
こんにちは、最近野菜が高いのでもやしばかり食べているWebエンジニアの本間です。 そろそろレタスが食べたい...。 さて、ここ1、2年、ユニファではAmazon ECS+AWS Fargateを使用して、Railsアプリケーションを本番運用することが増えてきました。 stagingでテストしたDockerイメージがそのまま本番で使えて安心だったり、オートスケールが簡単だったりとメリットが多く、大変便利だと感じています。 ただ、そのような環境を構築する中で、vCPU数やメモリ量、およびPumaの並行性に関するパラメーターをどうしようか毎回悩んでいたため、この辺で自分の中で整理しておこうと思います。 前提 下記を使用したWebアプリケーションを前提にします。Amazon ECSAWS FargatePumaRuby onRails MRI(CRuby) このようなシステム構成において
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く