Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
スタートアップは Rails を使うべきか / Should Startups Ride on...
Search
Yuya Takeyama
December 08, 2018
Programming
7
2.6k
スタートアップは Rails を使うべきか / Should Startups Ride on Rails?
Yuya Takeyama
December 08, 2018
Tweet
Share
More Decks by Yuya Takeyama
See All by Yuya Takeyama
Terraformで実現するHR Driven Provisioningとアクセス制御の自動化 / HR Driven Provisioning and automation of access control using Terraform
yuyatakeyama
1
810
GitHub Actions/Docker/Terraform/Renovate で最小限の Monorepo CD パイプラインを作る / Minimalistic Monorepo CD Pipeline with GitHub Actions, Docker, Terraform and Renovate
yuyatakeyama
4
450
コンパウンドスタートアップのためのスケーラブルでセキュアなInfrastructure as Codeパイプラインを考える / Scalable and Secure Infrastructure as Code Pipeline for a Compound Startup
yuyatakeyama
5
6k
スタディサプリ小中高のオブザーバビリティ / Observability in StudySapuri
yuyatakeyama
1
2.7k
How Quipper Works with CircleCI
yuyatakeyama
4
3k
Quipper のマイクロサービス化への道のり / Quipper's Road to Microservices
yuyatakeyama
5
2.1k
Quipper における SRE チームの紹介 ~僕が SRE になった理由~ / Why I Became an SRE at Quipper
yuyatakeyama
3
2.9k
Other Decks in Programming
See All in Programming
SymfonyCon Vienna 2025: Twig, still relevant in 2025?
fabpot
3
1.2k
Effective Signals in Angular 19+: Rules and Helpers @ngbe2024
manfredsteyer
PRO
0
140
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
3.9k
Jakarta EE meets AI
ivargrimstad
0
260
「Chatwork」Android版アプリを 支える単体テストの現在
okuzawats
0
180
Cloudflare MCP ServerでClaude Desktop からWeb APIを構築
kutakutat
1
550
17年周年のWebアプリケーションにTanStack Queryを導入する / Implementing TanStack Query in a 17th Anniversary Web Application
saitolume
0
250
命名をリントする
chiroruxx
1
410
テストケースの名前はどうつけるべきか?
orgachem
PRO
0
140
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
290
テストコード文化を0から作り、変化し続けた組織
kazatohiei
2
1.5k
CSC305 Lecture 26
javiergs
PRO
0
140
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
88
5.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
How GitHub (no longer) Works
holman
311
140k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
KATA
mclloyd
29
14k
Making Projects Easy
brettharned
116
5.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
98
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Navigating Team Friction
lara
183
15k
Transcript
スタートアップは Rails を使うべきか @yuya-takeyama SRE at Quipper
今日話すこと • スタートアップ期をとっくに終えた今も Rails を 使い続ける会社にいて感じていること • 副業含めてスタートアップやベンチャーの人から の相談に対して話してきたこと •
そういった中から感じた「魅力的な会社」と「働 き方」について
自己紹介 • @yuya-takeyama • 2015 年 9 月 ~ Web
Developer at Quipper ◦ Rails, React, React Native など • 2018 年 4 月 ~ SRE at Quipper ◦ Kubernetes を使ったプラットフォームの構 築、移行
自己紹介 • 副業 at 株式会社オクタウェル ◦ ヘルスケア系スタートアップ ◦ PHP, Laravel,
AWS Lambda (TypeScript), CircleCI 等
スタートアップは Rails を使うべきか
結論
好きなフレームワークを 使えばいいと思う
2018 年における Web アプリケーション • フロントエンドも含めて作り込まれていて当たり 前 ◦ SPA, SSR,
PWA... • フレームワークにはフロントエンドの開発も含め た機能セットが求められる • 一方でサーバサイドでは API だけで十分、とい う領域も増えてきた
そんな時代における Rails • 時代に合わせて進化を重ねている ◦ Asset Pipeline (Rails 3.1~) ◦
Webpacker (Rails 5.1~) ◦ API モード (Rails 5~) • 基本的にはフロントエンド・サーバサイドともに いい感じのデフォルトが提供されている ◦ Rails is omakasae (2012)
Rails is omakase の逆の側面 • Rails のやり方が気に入らなければ Rails を使わ なければ良い
◦ フロントエンドは Babel, Webpack, TypeScript のビルド環境を自分で整えて ◦ サーバサイドは Go の net/http で手書きの Middleware と共に • 自分で選んで自分で作っていく (大変ですね...)
2018 年における Rails • 相対的には Rails を使い続ける理由は減ってきて いると言える ◦ 単純にその他の選択肢が増えて、意味を持っ
てきた、という意味で • でも絶対的に Rails の価値が下がったとは言えな い (たぶん)
Quipper と Rails • 2012 には Rails を使い始めている (今年で 7
年 目) • MongoDB (というか MongoMapper) が足かせと なって 4.2 で止まっている... • Heroku, Deis を経て Kubernetes に • マイクロサービス化がまさに始まろうとしている ところ
Web アプリケーションの構成要素と寿命 • アプリケーションコード • インフラ・クラウド • 言語・フレームワーク・ライブラリ • データ
Web アプリケーションの構成要素と寿命 • アプリケーションコード • インフラ・クラウド • 言語・フレームワーク・ライブラリ • データ
<- たぶんこれが一番長生き
データさえちゃんとしていればなんとかなる • 枯れたデータストアをちゃんと選んで使う • ちゃんとメンテされる ORM を選ぶ ◦ または ORM
を使わず抽象化を必要最小限にと どめる • データのモデリングはしっかり考える
データさえちゃんとしていればなんとかなる • という前提を踏まえれば、極論好きなフレーム ワークを使えばいいと思う • 特に好みや技術的に特殊な条件がなければ Rails 自体は決して悪い選択肢ではない ◦ 本当にダメそうならその時方向転換すれば良
い
スタートアップが 選ぶべきインフラとは
Heroku はいいぞ
複数のスタートアップの人と話して感じたこと • AWS 利用率の高さ ◦ EC2 を手動で立てて git pull でデプロイしてい
たり ◦ ECS でデプロイの仕組みをめっちゃ頑張って 構築しようとしていたり • イケてなかった選定理由「投資家に言われたか ら」「知り合いの起業家が使っていたから」
複数のスタートアップの人と話して感じたこと • Heroku 利用率の低さ ◦ AWS に比べると Heroku を偉い人に通しづら い?
◦ ここを通せる腕力、または会社側に柔軟性が あると色々と良くなる • レイテンシをネックとしてあげるケースもある • プロダクトの構築・改善を最優先にすべきでは?
Heroku の良いところ • とにかくアプリケーションを立ち上げるまでが早 い! • 金でスケールできる • インフラとかコンテナのことを意識しなくて良い ◦
コンテナの偏りを直したりとか... • Review Apps, Add-on
Heroku の良いところ • 12 Factor App! ◦ サーバサイドアプリケーションにおけるアー キテクチャの養成ギプス ◦
これだけ守れてれば将来的にコンテナ化した り Kubernetes に載せること自体は全然難しく ない
おまけ: Heroku のレイテンシに関して • CDN を利用すればある程度改善できる (キャッ シュしない動的コンテンツでも) ◦ Edge
TLS Termination, Route Optimization, Dynamic Site Acceleration… ◦ Sinatra で 800 msec 程度が 500 msec 程度に ◦ 速くはないがそんなに悪くもない? (B2B サー ビスなら特に)
まとめ
スタートアップ期の会社にオススメしたいこと • フレームワークに何を使うかは些細な問題 ◦ データやモデルにこそ目を向けるべき • プロダクトの開発に集中するためにコストを使う ◦ Heroku はいいぞ,
Kubernetes は多分まだいい ◦ 他の PaaS でも楽できるならなんでもよし • 何をやる・やらないにしても理由づけを明確に ◦ 枯れた技術でもプロダクトをしっかり作れている会 社はそれだけで十分魅力的
エンジニアとスタートアップの関係性 • 働くならプロダクトに向き合えている企業 ◦ その分技術的負債を抱えていたとしても、自 分の知見で一気にレバレッジがかけられるか も ◦ 短期間・高単価で働けるチャンスもあるかも •
そういったことがあちこちで起これば業界全体の レベルアップにも繋がりそう