Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20190829_出張!Railsウォッチ in 銀座Rails#12

20190829_出張!Railsウォッチ in 銀座Rails#12

2019/08/29に銀座Rails#12で発表したスライドです。
銀座Rails#12: https://ginza-rails.connpass.com/event/139740/
週刊Railsウォッチ: https://techracho.bpsinc.jp/tag/%e9%80%b1%e5%88%8arails%e3%82%a6%e3%82%a9%e3%83%83%e3%83%81

Masato Mori

August 29, 2019
Tweet

More Decks by Masato Mori

Other Decks in Programming

Transcript

  1. About Me
 • 森 雅智: @morimorihoge
 • BPS株式会社でRailsの受託開発チームをやってたり、週1大学非常勤で Web開発を教えてたりします
 •

    Ruby/Rails歴は8年くらい。Web開発は14年くらい
 • 前回の銀座RalisでActiveRecordでVIEWを使おうという話をしました
 About BPS & TechRacho
 • Web受託開発や電子書籍製品開発をやっている会社です
 • TechRachoという自社技術Blogを運営しています
 ◦ 3年ほど前から平日毎日更新してます
 ◦ https://techracho.bpsinc.jp/ • お仕事相談、転職相談、TechRachoへのご意見など気軽にどうぞ
 ◦ https://www.bpsinc.jp/ 2

  2. @hachi8833(TechRacho編集部) • 八田昌三(はったしょうぞう) ◦ TechRacho 記事執筆・編集・翻訳( 2016.08 〜) ◦ サイトメンテナンス

    ◦ ローカライズ業界出身 ◦ 好きなもの : 正規表現 /Go/Ruby/Goby など多数 • やってきたこと ◦ Rails チュートリアル翻訳・翻訳ディレクション ◦ Rails ガイド翻訳 ◦ Goby 言語メンテナー 4
  3. 「Railsウォッチ」の情報源のほんの一部 • Rails 公式ニュース https://weblog.rubyonrails.org/news/ • Ruby 公式ニュース https://www.ruby-lang.org/en/news/ •

    Ruby Weekly https://rubyweekly.com/ -- おすすめ! • RubyFlow http://www.rubyflow.com/ • Hacklines https://hacklines.com/en?ucc=libhunt&tags=Ruby%2CRails • Postgres Weekly https://postgresweekly.com/ • DB Weekly https://dbweekly.com/ • Serverless Status https://serverless.email/ • JavaScript Weekly https://javascriptweekly.com/ ( React Status や Node Weekly など姉妹サイトも) • GitHub Trending https://github.com/trending 他にも強い人のツイート、はてなブックマーク、 Publickey なども 実は「 BPS 社内 Slack に流れてきた記事」「良記事からの別記事リンク」が重宝してます 5
  4. Rails 6の試し方
 環境を汚したくなければDockerで手軽にお試しできます
 9
 $ docker pull ruby $ docker

    run --rm -it ruby bash root@392debe154fd:/# gem install rails Fetching thread_safe-0.3.6.gem Fetching tzinfo-1.2.5.gem Fetching zeitwerk-2.1.9.gem Fetching rack-2.0.7.gem ...(略)... Successfully installed sprockets-3.7.2 Successfully installed sprockets-rails-3.2.1 Successfully installed rails-6.0.0 40 gems installed root@392debe154fd:/# rails -v Rails 6.0.0
  5. 複数DB: master-replica構成での負荷分散
 • 主要なユースケース
 ◦ 参照(SELECT)がとても多いサイトで、 更新系はmasterノード、参照系はreplicaに流す 
 ◦ ※以前まではmaster-slaveの用語が一般的だったので、検索したい人はそちらの用語も

    
 • Rails6以前の解決策の例(Gem)
 ◦ eagletmt/switch_point: ほぼ同じことができる 
 ◦ thiagopradi/octopus: Shardingにも対応している(が、公式はRails6にサポートしないと言っているの で、Sharding構成で使っているシステムは悩ましい) 
 • 嬉しいと思われる人たち
 ◦ AWS RDSなどで簡単にreplicaを作れる世の中になったので、サービスが育った時Gem追加せずに 対応できるのは利点 
 12

  6. 複数DB: 異なるDBの同時参照
 • 主要なユースケース
 ◦ 別システムのDBをActiveRecordで参照したい 
 ◦ ※replicaと異なり、接続先DBによってスキーマが異なる(Adapterも異なる) 


    • Rails6以前の解決策の例(Gem)
 ◦ eagletmt/switch_point: ほぼ同じことができるが、migrationサポートがないので必要ならridgepoleな どの併用が必要
 ◦ customink/secondbase: デフォルトの1つ目のDBの他にもう一つだけDBを設定できる。migrationも 対応している(が、Rails 5.1までで更新が止まっている?) 
 • 嬉しいと思われる人たち
 ◦ エンタープライズアプリケーションなどの要件によっては利用するケースがありえる 
 13

  7. Ruby on Jets
 • Railsっぽく書いたコードがAWSのAPI Gateway + Lambdaベースのコードとして deployできる
 ◦

    ruby-jp slackの #serverless channelでもっと情報交換したいです(願望) 
 ◦ https://rubyonjets.com/
 20

  8. Serveo / Ngrok
 • ローカルで動いているアプリをInternetから見られるように公開できる
 ◦ Ngrokは自前ドメインの利用などが有料(クライアントはバイナリ配布) 
 ◦ ServeoはOSSで自前でサーバーを立てることも可能

    
 ◦ 手元の開発環境を実機でサクッとデモしたい、などのときにとても便利です 
 21
 ※serveo.netがちょうど落ちていたのでSS撮れず・・・ 

  9. 宣伝:週刊Railsウォッチ 公開つっつき会
 • 毎月第一木曜日、社外の方も参加できる公開つっつき会を開 催してます
 ◦ 直近は2019/09/05(木)19:30~@西新宿 BPS会議スペー スにて
 •

    TechRachoの週刊Railsウォッチの最新記事、または「週刊 Railsウォッチ公開つっつき会」でぐぐってTECH PLAYから君も エントリー!
 ◦ https://techplay.jp/event/746615
 23