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
freee-shigure-matsuri-20150321
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Keiji Matsuzaki
March 22, 2015
Technology
2.2k
8
Share
freee-shigure-matsuri-20150321
時雨祭 2015.03 (
http://shigure.connpass.com/event/11780/
) で発表した資料です。
Keiji Matsuzaki
March 22, 2015
More Decks by Keiji Matsuzaki
See All by Keiji Matsuzaki
note engineer meetup #3 インフラの現状 / note engineer meetup #3 infra
futoase
4
1.2k
ハマったところ 表参道.rb #44 / into a problem
futoase
0
1.2k
note meetup #2 Electronを利用した10面ディスプレイの操作 / Controll of gaienmae display
futoase
0
810
mastodon
futoase
0
140
susumekata
futoase
1
760
freee-wacul-web-app-lt-one
futoase
0
1.9k
Engineer All Hands #5 (freee) 「インフラ」
futoase
0
520
soracom-go
futoase
0
380
AWS Summit Tokyo 2015 freee
futoase
19
22k
Other Decks in Technology
See All in Technology
【ハノーバーメッセ振り返りイベントat名古屋】データは集約からAI起点の収集に ~組織内・組織間でのデータ連携~
tanakaseiya
0
150
ルールやカスタム機能、どう使う?理想の出力を引き出すために今知りたいIBM Bob 5つの機能
muehara
0
130
脅威をエンジニアリングの糧にして:恐怖を乗り越えた先にあったもの / Turn threats into fuel for engineering: what lay beyond overcoming fear
nrslib
1
350
Javaで学ぶSOLID原則
negima
1
230
AI時代に改めて考える、ドメイン駆動設計 - モデリングが「AIへの共通言語」になる
littlehands
8
2.9k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.7k
エンジニアは生成AIと どのように向き合うべきか? ことばの意味という観点から
verypluming
3
290
Kaggle未経験社員をメダリストに育てる「AIドラゴン桜」
lycorptech_jp
PRO
0
650
20260528_生成AIを専属DSに_Howの次にすべきことを考える
doradora09
PRO
0
260
はじめてのDatadog
kairim0
0
220
Cloud Run のアップデート 触ってみる&紹介
gre212
0
230
Fabric-cicd によるAzure DevOps デプロイ
ryomaru0825
0
140
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
610
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
370
The World Runs on Bad Software
bkeepers
PRO
72
12k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
So, you think you're a good person
axbom
PRO
2
2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
What's in a price? How to price your products and services
michaelherold
247
13k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
140
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Transcript
freeeを支える技術 時雨祭 (2015.3)
発表の機会をいただき、 ありがとうございますm(_ _)m
Github、3/21 21:00から15分ほどメンテナンス https://github.com/blog/1975-scheduled-maintenance-saturday-3-21-2015-12-00-utc
None
自己紹介
松崎 啓治(まつざき けいじ) 33歳 freee 入社(6社目...?) 2014年6月1日〜 やってること: インフラ担当 Twitter:
@xga Github: @futoase
確定申告という山場を越えた...
None
freee 株式会社
eは3つ
何をやってる会社か?
None
http://www.freee.co.jp/special/zeirishi/
クラウド会計ソフトfreee(フリー) https://secure.freee.co.jp/
None
口座情報から自動で入出金データを管理 仕訳帳の出力 確定申告書出力 レシートアップロード後OCR対応 etc...
クラウド給与計算ソフト freee(フリー) https://p.secure.freee.co.jp/
None
年末調整入力の対応 源泉徴収票の出力 勤務時間の管理 残業時間の管理(時給) etc...
今のところこの2つ
設計
Ruby on Rails Public API Private API 会計処理 給与計算 認証処理
Web front Backbone.js Vue.js Application Layer CSS
Application Layer Go サムネイル変換 OCR
Infrastructure Layer Amazon Web Service RDS ElastiCache EC2 SQS S3
SES Route 53 IAM RedShift
Mobile(会計のみ) iOS Android Reactive Cocoa Rx Java
開発体制
会計 給与 インフラ Engineer Engineer Engineer Analytics CTO アプリ基盤 Engineer
Adjuster UX Engineer
だいたいエンジニア30名ぐらい。 インターンまぜると35名ぐらいになる かな。
デプロイ体制
develop staging master
develop staging master 開発用branch staging向け release向け
develop staging master futoase Pull Request
develop staging master futoase Pull Request
develop staging master futoase git check out pr/10000 Pull Request
develop staging master futoase Pull Request test (Parallel test) Pull
Request
develop staging master futoase OK test Pull Request
PRを出すとJenkinsが Parallel testを実行してくれる
develop staging master futoase Pull Request
develop staging master futoase hoge氏 Review Pull Request
develop staging master futoase hoge氏 LGTM Pull Request
develop staging master futoase Merge hoge氏 LGTM
ReviewerがPRのReviewを行う。 RevieweeがMergeする
develop staging master futoase
develop staging master futoase @deploy pre-deploy repository develop to staging
develop staging master futoase @deploy pre-deploy repository develop to staging
Pull Request
develop staging master job: staging-deploy
job: staging-deploy web api admin cap deploy staging
botにHipChatからコマンドを投げ、 jenkinsにcapistrano taskを実行させる
監視体制
None
None
zabbix server web api auth
zabbix server web api auth zabbix get -> proc.cpu …
proc.mem… system.cpu… proc.num...
zabbix server web api auth
zabbix server web api auth zabbix get -> proc.cpu …
proc.mem… system.cpu… proc.num...
zabbix server web api auth
zabbix server web api auth zabbix get -> proc.cpu …
proc.mem… system.cpu… proc.num...
Zabbix serverのItemに 登録しているkeyを元に Zabbix agentが 各サーバのメトリクスを取得、監視
zabbix server web api auth
zabbix server web api auth CPU: 80% (user time) Mem:
available 10% Disk: available 10%
zabbix server web api auth CPU: 80% (user time) Mem:
available 10% Disk: available 10%
zabbix server CPU: 80% (user time) Mem: available 10% Disk:
available 10% Trigger CPU >= 80% (user time) web api auth
zabbix server HipChat ML チャットに通知 MLに通知
予めZabbix Itemに対してTrigger条件を指定し、 閾値を超えたら HipChat と MLに通知を送るようにしている 単純なActionで済むなら、プロセスを自動起動して なかったことにするとか。
jenkins web api auth bundle ex rake \ spec role=api
stage=production
jenkins web api auth server spec...
jenkins web api auth OK
EC2 Tagからインスタンス情報を取 り出し(Private IPアドレス)、 serverspecをインスタンスに対して 掛け、テストする。
パフォーマンス確認体制
MONyog Bugsnag Newrelic
MONyog Bugsnag Newrelic SQL Tuning Application Bug Performance
None
None
None
監視に割り当てる人力が少なめなため、 価値があるソフトウェアを購入し運用することで 穴を埋める。
ロギング体制
web api auth fluentd
web api auth fluentd td-agent td-agent td-agent
web api auth fluentd td-agent td-agent td-agent data
各サーバからtd-agentにより fluentdサーバ(1台)にデータを送信。
fluentd S3 ElasticSerch fluent-plugin-s3 fluent-plugin-elasticsearch
S3 ElasticSerch Kibana PostgreSQL JSONB + GIN index
kibanaは直近1ヶ月分のログを調査するときに利用する。 PostgreSQLは サービスインから今までのログを調査するのに利用する。 PostgreSQLのJSONB型のカラムにデータを突っ込んでGIN index貼ると2000万件ほどのレコードだと SELECT文 2〜3secで返ってきて便利
KPI体制
RedShift S3 Zendesk サポート サポートデータ RDS BI(内製) R言語 RPostgreSQL R
Studio
RedShiftを中心としてKPI体制を整えている。 Google Big Queryや Treasure Dataなどは今のところ検討せず。 独自BIの管理が課題。
サポート体制
文化
None
毎月最後の金曜日にTGIF 毎週火曜と木曜日に全体ミーティング 二週間に一回程度、社員全員で飯を食う リリースが終わったら適当に 立ち食い寿司屋に行く あとは定期的に何かしら飲みがある
Qiita::Teamにあれこれ書いたり。 何かあったらメールに書くという文化があるので何 があったのかがわからないということが少ない(今の ところ)
バグのことをハッピーと呼ぶ。 ハッピー担当というものが平時は毎日2名、 エンジニアがアサインされ、 負債を返していく。
asanaにサポートから バグを受け取ったら起票、 修正したらコメントの繰り返し。 タスク管理はほぼasana。 チームに寄っては wunderlistやTrello使ったり。
サーバプロビジョニングは 入社時にchefだったので駆逐していって、 後もうちょっと(data bagの管理)で終わる。 今はansibleに移行中。
採用 http://www.freee.co.jp/recruit_eng
エンジニア募集中なので freee株式会社が気になる人は 僕のほうまで話いただけるか、 Wantedlyなどの手段を利用オ ナシャス♥
あざっした