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
FinTechスタートアップAnyPayを支える開発 @ Venture Engineer M...
Search
Tomohiro Nakamura
August 03, 2017
Technology
2
1.1k
FinTechスタートアップAnyPayを支える開発 @ Venture Engineer Meetup #01 -Server Side Night-
FinTechスタートアップAnyPayを支える開発 @ Venture Engineer Meetup #01 -Server Side Night-
Tomohiro Nakamura
August 03, 2017
Tweet
Share
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
データ駆動経営の道しるべ:プロダクト開発指標の戦略的活用法
ham0215
1
110
How Do I Contact Jetblue Airlines® Reservation Number: Fast Support Guide
thejetblueairhelpsupport
0
150
VS CodeとGitHub Copilotで爆速開発!アップデートの波に乗るおさらい会 / Rapid Development with VS Code and GitHub Copilot: Catch the Latest Wave
yamachu
3
460
Snowflake Intelligenceという名のAI Agentが切り開くデータ活用の未来とその実現に必要なこと@SnowVillage『Data Management #1 Summit 2025 Recap!!』
ryo_suzuki
1
160
Talk to Someone At Delta Airlines™️ USA Contact Numbers
travelcarecenter
0
160
ソフトウェアテストのAI活用_ver1.25
fumisuke
1
620
サービスを止めるな! DDoS攻撃へのスマートな備えと最前線の事例
coconala_engineer
1
180
毎晩の 負荷試験自動実行による効果
recruitengineers
PRO
5
180
Maintainer Meetupで「生の声」を聞く ~講演だけじゃないKubeCon
logica0419
0
110
CDKコード品質UP!ナイスな自作コンストラクタを作るための便利インターフェース
harukasakihara
2
240
Amplify Gen2から知るAWS CDK Toolkit Libraryの使い方/How to use the AWS CDK Toolkit Library as known from Amplify Gen2
fossamagna
1
350
AWS Well-Architected から考えるオブザーバビリティの勘所 / Considering the Essentials of Observability from AWS Well-Architected
sms_tech
1
110
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Building an army of robots
kneath
306
45k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Balancing Empowerment & Direction
lara
1
460
Gamification - CAS2011
davidbonilla
81
5.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
How to Ace a Technical Interview
jacobian
278
23k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
750
Building Adaptive Systems
keathley
43
2.7k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
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!