Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
FinTechスタートアップAnyPayを支える開発 @ Venture Engineer M...
Search
Tomohiro Nakamura
August 03, 2017
Technology
1.2k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
FinTechスタートアップAnyPayを支える開発 @ Venture Engineer Meetup #01 -Server Side Night-
FinTechスタートアップAnyPayを支える開発 @ Venture Engineer Meetup #01 -Server Side Night-
Tomohiro Nakamura
August 03, 2017
More Decks by Tomohiro Nakamura
See All by Tomohiro Nakamura
ICOコンサルティング事業から得たトークンと全体アーキテクチャ設計方針の知見 @ blockchain.tokyo #2
tomohiron
7
25k
Kotlin + Java EE + MongoDBでサーバ組んで本番で動かしてみた
tomohiron
2
2.1k
Other Decks in Technology
See All in Technology
[2026 Oracle Technical Deep Dive] エンタープライズAIエージェントを支えるOCIソリューション。ラインナップと特徴を理解しよう! (2026年9月17日開催)
oracle4engineer
PRO
0
560
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
330
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
290
おそらく日本で唯一のDevRelインターン生として
husengs7
0
170
AI Made Us Faster at Solving the Wrong Problems
marceloancelmo
0
170
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
430
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
400
2026-10-01_MagicPod_QAハーネスエンジニアリングとQA組織の未来像
ynisqa1988
1
550
[2026 Oracle Technical Deep Dive] AI時代のデータベース基盤をどう選ぶ? Exadata Database Serviceの選択肢と使い分け (2026年9月17日開催)
oracle4engineer
PRO
0
230
購入ドメインでの課題と取り組み
ykagano
0
150
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
860
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
10
3.2k
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
530
Accessibility Awareness
sabderemane
1
240
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Leo the Paperboy
mayatellez
10
2.4k
Agile that works and the tools we love
rasmusluckow
331
22k
Building AI with AI
inesmontani
PRO
1
1.3k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
Bash Introduction
62gerente
615
220k
Music & Morning Musume
bryan
48
7.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
30 Presentation Tips
portentint
PRO
1
420
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Transcript
FinTechスタートアップ AnyPayを⽀える開発 AnyPay Inc. Tomohiro Nakamura
⾃⼰紹介 AnyPay株式会社 CTO Tomohiro Nakamura ( @HAIL ) 2010年 早稲田大学大学院情報理工学専攻
2010年 Goldman Sachs 2012年 Electronic Arts (ex. Playfish) 2014年 Wekids Inc. 創業 2016年 AnyPay株式会社 CTOとして入社 好き: GCP, Java(Kotlin), golang, TypeScript, IntelliJ なう: AWS, Ruby On Rails, Kotlin, Swift, golang paymo招待コード: PNKYFNP
AnyPay株式会社とは スマートフォン決済を提供する会社
実現したい世界 友だち間のお⾦のやり取り そして、お店へのお⽀払いを キャッシュレスに
AnyPay/paymoの幅広い守備範囲 WEB販売 リアル店舗 個⼈間 εϚϗͰ lׂΓצz ॊೈʹ ৭ʑͳखஈͰ खܰʹ ίετ
͓ۚͷೖޱ ͓ۚͷग़ޱ Ϣʔβʔؒ ΫϨδοτ ΧʔυͰܾࡁ ۜߦޱ࠲ Ҿ͖ग़͠ ΞΧϯτߴʹΑΔ Ϣʔβʔؒͷࢧ͍ ׂΓצ
paymo/AnyPay֎Ͱ ͓ۚΛ͍͍ͨ ߴͰAnyPayͷ ग़ళऀ͔Βߪೖ ൢɺαʔϏε… ԿͰങ͑Δ͓ళʂ ΫϨδοτΧʔυͰ ߪೖՄೳ װࣄ ࢀՃऀ ビジネスモデル
EC2 RDS(Aurora) Lambda CloudWatch S3/CloudFront ElastiCache CloudFormation OpsWorks SNS まずざっくり技術スタックまとめ
Infra Server Web iOS Android BigQuery App Engine Rails 5.0 (unicorn) Paranoia Draper Delayed Job Slavery Vue.js 2 webpack 3 Swift 3 RxSwift 3 Kotlin 1.1 RxJava 2 Dagger 2 Retrofit 2 OkHttp 3 Picasso 2
開発チーム構成(積極採⽤中!) Infra Server Web iOS Android 2ͭҎ্ͷॴʹؔΘ͍ͬͯΔΤϯδχΞଟ͍
開発で⼤事にしていること • 社員全員GitHubを使う(マーケ、事業企画、CSなど) • みんながみんなサービスつくる会社から来ていない。だ からこそ形から⼊るのが⼤事 • ⼤まかな仕様→GitHub Wiki •
Due, 担当者, デザインもここ • CS→CS専⽤レポジトリ • 本番データ満載のissueが並ぶ正社員専⽤の場所
こういうこと
こういうこと
マーケの⼈もPR出すぞ • LPぐらい、SourceTreeとか使えばなんとかなるなる!
開発で⼤事にしていること • API仕様をapiary準拠のBlueprintで管理、サーバエンジニアだけでは なく、アプリエンジニアやディレクターも(!)書く ‒ PMもRESTfulを 理解する! • 全職種が⼀⼈以上Approveしたら開発 ⾮エンジニアによるPR例
API仕様のブランチ運⽤ • master: 本番サーバでの動作が保証されているAPI仕様 • develop: 開発サーバでの動作が保証されているAPI仕様 • feature/*, issue/*:
API仕様の策定・修正 〜 開発サーバでの動作確認 までやってdevelopに向けてマージされるAPI仕様
開発で⼤事にしていること • SQLぐらい皆書ける • ビジネス側も全員書く • 環境はエンジニアが⽤意したRedash • ⼀回社内勉強会する •
SQLをレビューし合うSlackチャンネルも⽤意 • 管理画⾯にちょっと機能が⽋けてたって、CSの⼈も SQL書ける! • こういう努⼒が「開発を皆でしているチーム」をつくる
QAをなるべく容易にする • リリース前に⼀通り確認をするのを前提に developブランチまでのマージは楽に • 各ブランチにpushがあったらHeroku Review Appsが上がる • 簡単なビューの修正はスクショGIF動画もあり
各PMにスタンプをつくる • リリースの最終GOはスタンプ • 最近神も⼊った
使っているサービスたち
サーバエラー統計: Raygun • サーバのスタックトレースを記録し統計情報として出して くれる。リファクタリング案出してアサイン⼤会と、 Raygun⼤掃除アサイン⼤会を隔週でやってる
外部死活監視: UptimeRobot • 定期的に指定URLにリクエストを投げる。4xx, 5xxが返っ てきたらOpsGenieに知らせる
外部死活監視: OpsGenie 異常を知らせるUpstreamからの連絡を受け、メールをくれた り電話をくれたりする。⼈間、最後は電話で起きることをよく 知っている。当番ローテとかも組める。
メール: SendGrid ⾔わずと知れたメールサービス。やや⾼級品だけど、 • API連携してセグメントを絞ってメールしたり、 • 変数⼊りのテンプレをSendGrid側に登録しておいて、⼩さ いJSONをPOSTするだけでメールできる
ちょっとだけ セキュリティの話
なぜ「ちょっとだけ」 • セキュリティの基本は、リスクをできる限り取らないこと。 よほど技術的に⾰新的なことをやらない限りは、セキュリテ ィも⾰新的になる必要は本来ない。 • Public IPや空いてるポートは最⼩限にする • (ある程度は)枯れてる技術を使う
• 脆弱性情報を追う。Struts2⼤事件は記憶に新しいが、Nginx, Bash, Railsみたいな著名なものでも稀に事件が起こる • 初回リリースや巨⼤アプデでは、外部セキュリティ監査(要はクラッ キングしてもらう)を受ける • Webサービスも、Netflixが使ってますよみたいな、巨⼈が使⽤して いるものを使うようにする
悪⼈退治の話 • 本⼈間取引によるクレジットカードの現⾦化 • ポイントを移動させて引き出し など、やっぱり悪い⼈はいる。 これまではルールベースでラベルをつけていたが、 これからは教師あり学習も合わせて倒していく
これからサーバサイドKotlinもやろう と思っています。JOIN US!