はじめに
9月21日に開催された Saitama.rb #21に参加してきました。
参加の目的
Rubyを書いている社外のエンジニアの人たちとつながるためです。 私の職場ではRubyを書く人が極端に少ないため、社内だけだと視野が非常に狭くなってしまいます。また、自分たちが抱えている課題が世の中の人たちから見て、どうなのかを確認する場が欲しいと思い参加しています。
ちなみに、今の私の悩みは、データベースの無停止デプロイはみんなどうやっているのか? ということです。
やったこと
Rails6の話
まずはじめに、主催の竹内さんからRails6の新機能のお話がありました。勉強になります。
- Rails6は複数DB対応した!
master
とslave
でDB分けるWriter
とReader
を分けるとかもOK
- モデル毎で接続先のDB変えることもできる
初参加の方からのQA
初参加の方から、「これからWeb開発を始める人にRuby/Railsをお勧めできるか?」という質問がありました。
主催の竹内さんからは、フルスタックなところがとてもいい、というお話がありました。Railsは規約が厳しいため、「こう書く」と決まることが多く、誰が書いても規約通りのコードになりやすいフレームワークです。私も同意です。
私は、少人数で軽量なWEBサービスをサクッと作る場合には、オススメできると思います。
私が Rails をやっている理由は、楽しいからです。これは Ruby が書くことが楽しいプログラミング言語だということに尽きます。私は長年、 Java で書かれたシステムに携わることが多かったですが、 Rails を使うことでコード量が劇的に減ったと実感しています。また、Java のシステム開発に比べると、圧倒的に少人数で開発することができます。
一方、弊害として Rails が色々よしなにやってくれることが多すぎるため、内部構造がどうなっているのかが見えにくいという点があります。このあたりは github のコードをきちんと読んで、理解して使っていく必要があると感じています。
もくもく会
今回、私はRails製のMediumクローンである、Storiesを自分の環境にデプロイして触って遊んでみました。
自分で自由にホストできるのが素敵です!
感想
今回もとても楽しかったです!懇親会まで参加させていただきました。
懇親会にて、データベースの無停止デプロイについて、どうやっているかをみなさんに聞いてみました。ゲーム系や Web サービスの企業は、特にメンテナンスページを表示せず、稼働させながら DB マイグレーションを実行しているところもある、というご意見をいただきました。これは、運営しているWEBサービスの特性にも左右される話で、明らかに利用者が少ない時間がわかっているのであれば、その時間帯に狙ってやる、という方法もあります。
私の勤務先は SIer であるため、割とかっちりした方法を採ります。メンテナンスページを表示して、サービスを停止してから DB マイグレーションを行っています。DB マイグレーションを伴わないデプロイであれば、ローリングアップデートなどを使って無停止デプロイを行うこともあります。
データベースに新規カラムを追加するようなマイグレーションであれば、無停止デプロイでも良いのではないか、というご意見もいただきました。世の中、色んな方法がありますね。
まとめ
土日に参加できるコミュニティは非常にありがたいです!タケユーウェブの竹内さん、ありがとうございました!