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 Meetup #01 -Server Side Night-
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
2k
Other Decks in Technology
See All in Technology
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
2.1k
「スニダン」開発組織の構造に込めた意図 ~組織作りはパッションや政治ではない!~
rinchsan
3
570
JAWS-UG Bedrock Claude Night
yamahiro
3
610
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
200
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
530
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
1
150
JSON攻略法.pdf
miyakemito
8
5.1k
20240418_Google ColabにLLMが搭載されたようなのでPython x データ分析の勉強方法を考えてみる
doradora09
0
140
競技としてのKaggle、役に立つKaggle
yu4u
3
1.8k
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
2
1k
Python と Snowflake はズッ友だょ!~ Snowflake の Python 関連機能をふりかえる ~
__allllllllez__
1
120
Kernel MemoryでAzure OpenAI Serviceとお手軽データソース連携
mitsuzono
1
260
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
The Mythical Team-Month
searls
216
42k
The Cult of Friendly URLs
andyhume
74
5.7k
How GitHub (no longer) Works
holman
304
140k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
30
6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
The Language of Interfaces
destraynor
151
23k
BBQ
matthewcrist
80
8.8k
Making Projects Easy
brettharned
108
5.5k
Become a Pro
speakerdeck
PRO
11
4.5k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
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!