紙一重の積み重ね

アラフォーのエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

【参加レポート】Saitama.rb#21 に参加してきました

f:id:yokoyantech:20190921214823p:plain

はじめに

9月21日に開催された Saitama.rb #21に参加してきました。

saitamarb.connpass.com

参加の目的

Rubyを書いている社外のエンジニアの人たちとつながるためです。 私の職場ではRubyを書く人が極端に少ないため、社内だけだと視野が非常に狭くなってしまいます。また、自分たちが抱えている課題が世の中の人たちから見て、どうなのかを確認する場が欲しいと思い参加しています。

ちなみに、今の私の悩みは、データベースの無停止デプロイはみんなどうやっているのか? ということです。

やったこと

Rails6の話

まずはじめに、主催の竹内さんからRails6の新機能のお話がありました。勉強になります。

  • Rails6は複数DB対応した!
    • masterslaveでDB分ける
      • WriterReaderを分けるとかもOK
    • モデル毎で接続先のDB変えることもできる

f:id:yokoyantech:20190921214852p:plain

初参加の方からのQA

初参加の方から、「これからWeb開発を始める人にRuby/Railsをお勧めできるか?」という質問がありました。

主催の竹内さんからは、フルスタックなところがとてもいい、というお話がありました。Railsは規約が厳しいため、「こう書く」と決まることが多く、誰が書いても規約通りのコードになりやすいフレームワークです。私も同意です。

私は、少人数で軽量なWEBサービスをサクッと作る場合には、オススメできると思います。

私が Rails をやっている理由は、楽しいからです。これは Ruby が書くことが楽しいプログラミング言語だということに尽きます。私は長年、 Java で書かれたシステムに携わることが多かったですが、 Rails を使うことでコード量が劇的に減ったと実感しています。また、Java のシステム開発に比べると、圧倒的に少人数で開発することができます。

一方、弊害として Rails が色々よしなにやってくれることが多すぎるため、内部構造がどうなっているのかが見えにくいという点があります。このあたりは github のコードをきちんと読んで、理解して使っていく必要があると感じています。

もくもく会

今回、私はRails製のMediumクローンである、Storiesを自分の環境にデプロイして触って遊んでみました。

github.com

自分で自由にホストできるのが素敵です!

感想

今回もとても楽しかったです!懇親会まで参加させていただきました。

懇親会にて、データベースの無停止デプロイについて、どうやっているかをみなさんに聞いてみました。ゲーム系や Web サービスの企業は、特にメンテナンスページを表示せず、稼働させながら DB マイグレーションを実行しているところもある、というご意見をいただきました。これは、運営しているWEBサービスの特性にも左右される話で、明らかに利用者が少ない時間がわかっているのであれば、その時間帯に狙ってやる、という方法もあります。

私の勤務先は SIer であるため、割とかっちりした方法を採ります。メンテナンスページを表示して、サービスを停止してから DB マイグレーションを行っています。DB マイグレーションを伴わないデプロイであれば、ローリングアップデートなどを使って無停止デプロイを行うこともあります。

データベースに新規カラムを追加するようなマイグレーションであれば、無停止デプロイでも良いのではないか、というご意見もいただきました。世の中、色んな方法がありますね。

まとめ

土日に参加できるコミュニティは非常にありがたいです!タケユーウェブの竹内さん、ありがとうございました!