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.7k
スタートアップは Rails を使うべきか / Should Startups Ride on Rails?
Yuya Takeyama
December 08, 2018
Tweet
Share
More Decks by Yuya Takeyama
See All by Yuya Takeyama
それぞれのペースでやっていく Bet AI / Bet AI at Your Own Pace
yuyatakeyama
1
760
標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless SaaS Account Management with Standard Technologies & Custom Systems
yuyatakeyama
3
1.7k
プロダクト開発、インフラ、コーポレート、そしてAIとの共通言語としての Terraform / Terraform as a Common Language for Product Development, Infrastructure, Corporate Engineering, and AI
yuyatakeyama
7
2.4k
Terraformで実現するHR Driven Provisioningとアクセス制御の自動化 / HR Driven Provisioning and automation of access control using Terraform
yuyatakeyama
1
1.5k
GitHub Actions/Docker/Terraform/Renovate で最小限の Monorepo CD パイプラインを作る / Minimalistic Monorepo CD Pipeline with GitHub Actions, Docker, Terraform and Renovate
yuyatakeyama
5
690
コンパウンドスタートアップのためのスケーラブルでセキュアなInfrastructure as Codeパイプラインを考える / Scalable and Secure Infrastructure as Code Pipeline for a Compound Startup
yuyatakeyama
5
6.8k
スタディサプリ小中高のオブザーバビリティ / Observability in StudySapuri
yuyatakeyama
1
3k
How Quipper Works with CircleCI
yuyatakeyama
4
3.2k
Quipper のマイクロサービス化への道のり / Quipper's Road to Microservices
yuyatakeyama
5
2.3k
Other Decks in Programming
See All in Programming
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
370
Fundamentals of Software Engineering In the Age of AI
therealdanvega
1
220
AIに任せる範囲を安全に広げるためにやっていること
fukucheee
0
110
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.2k
手戻りゼロ? Spec Driven Developmentとは@KAG AI week
tmhirai
1
170
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
360
Rails Girls Tokyo 18th GMO Pepabo Sponsor Talk
yutokyokutyo
0
210
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
320
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
4
380
15年目のiOSアプリを1から作り直す技術
teakun
1
610
AI活用のコスパを最大化する方法
ochtum
0
120
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
240
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
190
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
81
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
140
GraphQLとの向き合い方2022年版
quramy
50
14k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Into the Great Unknown - MozCon
thekraken
40
2.3k
RailsConf 2023
tenderlove
30
1.4k
The Invisible Side of Design
smashingmag
302
51k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
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 でも楽できるならなんでもよし • 何をやる・やらないにしても理由づけを明確に ◦ 枯れた技術でもプロダクトをしっかり作れている会 社はそれだけで十分魅力的
エンジニアとスタートアップの関係性 • 働くならプロダクトに向き合えている企業 ◦ その分技術的負債を抱えていたとしても、自 分の知見で一気にレバレッジがかけられるか も ◦ 短期間・高単価で働けるチャンスもあるかも •
そういったことがあちこちで起これば業界全体の レベルアップにも繋がりそう