Download - Ruby with My Life
![Page 1: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/1.jpg)
!
Ruby with My Life !
Hiroshi SHIBATA @hsbt
RubyWorld Conference 2014
![Page 2: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/2.jpg)
自己紹介
![Page 3: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/3.jpg)
SHIBATA !Hiroshi !@hsbt
![Page 4: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/4.jpg)
学生時代北海道 苫小牧工業高等専門学校 情報工学科
同級生に Ruby コミッタの @mrkn
4年生の”情報数学”の講師が @gotoken
新潟 長岡技術科学大学 経営情報システム専攻blade のサーバーがあるところtDiary や Hiki のコミッタになる
![Page 5: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/5.jpg)
社会人時代とある SIer の札幌支社
Ruby とは無縁の生活
「仕事で Ruby 使えたらなあ」と思う日々
永和システムマネジメントRuby と Rails で受託開発
Asakusa.rb に毎週参加
![Page 6: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/6.jpg)
![Page 7: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/7.jpg)
「優秀なプログラマとデザイナを揃えたぞ」
「プランナーのアイデアを簡単に実現できる」
「これで最高のサービスができる!!!」
![Page 8: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/8.jpg)
「優秀なプログラマとデザイナを揃えたぞ」
「プランナーのアイデアを簡単に実現できる」
「これで最高のサービスができる!!1」
「何故か開発のスピードが遅くなっていく…」
「いつまで経ってもリリース出来ない…」
![Page 9: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/9.jpg)
![Page 10: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/10.jpg)
ミドルウェアのアップグレード
社内開発基盤の構築
統計基盤の構築JSOXの運用整備
github
セキュリティ監査コードレビューテスト基盤の構築
アクセス解析基盤の構築
開発プロセス
新人教育原稿執筆
カンファレンス発表
OSS開発 サーバー構成管理の刷新
リーンスタートアップ
Jenkins
Ruby/Rails
RDBMS
技術基盤チーム
![Page 11: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/11.jpg)
OSS も だいたい同じ
![Page 12: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/12.jpg)
Ruby Committer
![Page 13: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/13.jpg)
![Page 14: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/14.jpg)
Continuous Integration
プログラムの変更を”継続”して”統合”する仕組み
Ruby の場合、統合とはテストを実行して パッケージングすること
Ruby CI は様々なプラットフォームで Ruby の 変更を可能な限り小さい単位でビルド、テスト パッケージングする仕組み
![Page 15: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/15.jpg)
Ruby CI の悩み
テストを実行するインスタンス(ターゲットマシン) がボランティアベースで集められている
時間の経過につれて、最新の OS が不足してきた
2014年、VPS(DigitalOcean)や IaaS(AWS)などの活用によりインスタンスの構築は容易のはず
![Page 16: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/16.jpg)
![Page 17: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/17.jpg)
成果
様々なプラットフォーム/OSで発生する不具合を容易に検知できるようになった
費用の出資先である Ruby アソシエーションと交渉
インスタンスの作成とセットアップ
![Page 18: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/18.jpg)
![Page 19: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/19.jpg)
OSX の環境問題Mac OSX は Web サービス開発で広く使われている
一方で Ruby コミッタで OSX を常用している人は少ない
ライセンスの問題で Ruby CIにVPSやIaaSを用いてインスタンスを追加することは困難
![Page 20: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/20.jpg)
![Page 21: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/21.jpg)
成果
CI が困難な OSX でテストが可能となり、不具合の検出が容易になった
Travis CI の @hiro_asari と交渉
Linux と OSX の両方のテスト実行の設定
![Page 22: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/22.jpg)
他にやったこと
![Page 23: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/23.jpg)
ホスティング
heroku の支援を得て PaaS に開発リソースを移行することで困難さを解決
これまでは NaCl 所有のサーバーに開発リソースを構築していたため、サーバーの保守や各種ソフトウェアのバージョンアップが困難
![Page 24: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/24.jpg)
![Page 25: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/25.jpg)
SSL証明書
GlobalSign の OSS 支援プログラムを利用し、ワイルドカード証明書を *.ruby-lang.org に適用した
サイトの信頼性確保のための証明書はこれまで誰かが用意し続けていた
![Page 26: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/26.jpg)
![Page 27: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/27.jpg)
CDN
fastly の OSS 支援プランを利用して CDN 経由で配布することにより、全世界でソースコードを高速に入手可能になった
海外からの Ruby のソースコードのダウンロードが非常に遅い
![Page 28: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/28.jpg)
![Page 29: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/29.jpg)
サーバー監視
Hatena が提供する mackerel の OSS プランを利用することでサーバー監視を行い、安定したリソースの提供が可能となった
Ruby CI や *.ruby-lang.org のサーバー監視とアラートの仕組みがこれまで存在しなかった
![Page 30: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/30.jpg)
![Page 31: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/31.jpg)
まとめ
環境を用意することで Ruby の開発スピードやコードの品質を向上を実現しました
開発者に良い仕事をしてもらうには開発者が良い仕事を出来るように環境を用意することが重要
プログラマは受託・サービス開発でもOSSでも良い仕事をしたい
![Page 32: Ruby with My Life](https://reader033.vdocuments.mx/reader033/viewer/2022052907/5594056b1a28ab370d8b462b/html5/thumbnails/32.jpg)
Thank you