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
LADRのすすめ&先行技術検証PRJの紹介 / Introducing-LADR-and-Te...
Search
moomoo-ya
August 25, 2020
Programming
5
2.3k
LADRのすすめ&先行技術検証PRJの紹介 / Introducing-LADR-and-Technology-verification
2020.08.25
RAKUS Meetup 8月
LADRのすすめ&先行技術検証PRJの紹介
moomoo-ya
August 25, 2020
Tweet
Share
More Decks by moomoo-ya
See All by moomoo-ya
サービスを陳腐化させない組織だった技術刷新 / Technology Renewal Initiatives
moomooya
0
1.1k
はじめてのオンラインイベント配信 with COVID-19 バグ修正版 / Online-Event-bugfixed
moomooya
0
79
一番安い子だーれだ?~黒字化のための無慈悲なタスク配分~ / Distribute tasks
moomooya
0
2.8k
はじめてのオンラインイベント配信 with COVID-19 バグあり版 / Online-Event-includes-bug
moomooya
0
780
やはり俺のLT登壇はまちがっている。 / my-lightning-talk-is-wrong-as-i-expected
moomooya
4
2.1k
Gatsby.jsで.md/.adocが混在できるテンプレートを作ったときの苦しみ / Pain-to-create-gatsby-template-that-supports-markdown-and-asciidoc
moomooya
0
560
技術書へのアクセスを劇的に向上させた話 / oreilly-safari-and-acm-membership
moomooya
2
7.2k
モノリスにおけるビジネスロジックの設計 ~アグリゲートパターン~ / aggregate-pattern-for-domain-modeling-on-monolithic
moomooya
2
1.3k
オブジェクト指向を学んでから20年間でモヤったこと / Object-Oriented-groomy-in-20-years
moomooya
0
470
Other Decks in Programming
See All in Programming
testcontainers のススメ
sgash708
1
120
42 best practices for Symfony, a decade later
tucksaun
1
180
Jakarta EE meets AI
ivargrimstad
0
250
Mermaid x AST x 生成AI = コードとドキュメントの完全同期への道
shibuyamizuho
0
160
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
190
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
360
創造的活動から切り拓く新たなキャリア 好きから始めてみる夜勤オペレーターからSREへの転身
yjszk
1
130
暇に任せてProxmoxコンソール 作ってみました
karugamo
2
720
103 Early Hints
sugi_0000
1
230
Haze - Real time background blurring
chrisbanes
1
510
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
240
生成AIでGitHubソースコード取得して仕様書を作成
shukob
0
430
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
328
21k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Making Projects Easy
brettharned
116
5.9k
Scaling GitHub
holman
458
140k
The Pragmatic Product Professional
lauravandoore
32
6.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Practical Orchestrator
shlominoach
186
10k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Transcript
#RAKUSMeetup 新サービス立ち上げ時の技術 選定と、サービス立ち上げに 向けたラクスの取り組み(仮) 2020.8.25 RAKUS Meetup Aug. Isamu Suzuki
#RAKUSMeetup 新サービス立ち上げ時の技術 選定と、サービス立ち上げに 向けたラクスの取り組み(仮) 2020.8.25 RAKUS Meetup Aug. Isamu Suzuki
長い
#RAKUSMeetup LADRのすすめ& 先行技術検証PRJの紹介 2020.8.25 RAKUS Meetup Aug. Isamu Suzuki
#RAKUSMeetup 鈴木 勇 / Isamu Suzuki • 2013年にラクスへ中途入社 • ガンプラ部
部長 • 先行技術検証とかアーキテクチャ選 定とか技術イベント司会とか • 上流から下流まで経験済み PjM含むフルスタック系 • C/Java → JavaScript → Python/TypeScrpt • 自宅にNuro光開通した • 約10年ぶりに自転車買った • Fat Project作者
#RAKUSMeetup 今日話すこと • アーキテクチャ選定時にやると少し幸せになれること • 新規サービス立ち上げに向けてどんな活動をしているか
#RAKUSMeetup 新サービスの アーキテクチャ選定
#RAKUSMeetup 2018年 楽楽労務立ち上げ
#RAKUSMeetup
#RAKUSMeetup このときの社内の様子 • 東京拠点の開発言語は主にJava ※ • FWはSeasar2 ◦ 新しめのサービスでも 2012年以前に開発開始
• モノリシックアーキテクチャ • インフラはオンプレミス ↑こうしている理由は長くいる人が 経験で何となく把握している感じ ※大阪では主にPHPを使っています
#RAKUSMeetup なんにせよ
#RAKUSMeetup 新しい技術を 導入したりしなかったりすることになる 新しい技術を 導入したりしなかったりすることになる
#RAKUSMeetup 「導入しなかった」記録を残したい • 「導入したもの」は後に残るので記録しなくても残りがち • 「導入しなかったもの」は後から見るとわからないことが多い ◦ 検討はしたのか? ◦ 検討の上でなぜ導入しなかったのか?
◦ 今後も導入すべきではないと判断したのか、その時点の事情なのか
#RAKUSMeetup LADR Lightweight Architecture Decision Records
#RAKUSMeetup • ADRは米Sabreの Michael Nygard氏発案 • ThoughtWorks社の Technology Radarで紹介 •
技術要素を4段階評価 ◦ Hold:慎重に ◦ Assess:よく調査して ◦ Trial:挑戦の価値あり ◦ Adopt:採用を推奨 https://www.thoughtworks.com/radar/techniques/lightweight-architecture-decision-records
#RAKUSMeetup • 2017年11月にAdoptに昇格 • 要約すると ◦ 重要なアーキテクチャーの意思決定を、 その文脈や結果とともに記録するための テクニック ◦
WikiやWebサイトではなくコード管理に 含むことを推奨 ◦ ほとんどのプロジェクトで採用しない理由 がない https://www.thoughtworks.com/radar/techniques/lightweight-architecture-decision-records
#RAKUSMeetup Lightweightなのでやることはかんたん • ADRのフォーマットを決める • アーキテクチャ選定の意思決定 • フォーマットに従って記録 • ソース管理(gitなど)に格納
#RAKUSMeetup . . .
#RAKUSMeetup 要領わかんないし、フォーマット決めるのが面倒
#RAKUSMeetup 公開されているテンプレート • joelparkerhenderson / architecture_decision_record • deshpandetanmay / lightweight-architecture-decision-records
• peter-evans / lightweight-architecture-decision-records • jgreeners / LADR ※英語のものしか(たぶん)ないので 頑張って読みましょう https://github.com/peter-evans/lightweight-architecture-decision-records
#RAKUSMeetup . . .
#RAKUSMeetup 何を記録すればよいのか ニュアンスがわかりにくい
#RAKUSMeetup ご用意いたしました
#RAKUSMeetup moomoo-ya / LADR-template • 完全日本語版 • 何を書くべきなのかを記載 • もちろん各自カスタムしていくと
なお良きかと • 使いやすいMITライセンス • https://github.com/moomoo-y a/LADR-template
#RAKUSMeetup
#RAKUSMeetup で、役に立つの?
#RAKUSMeetup 2018年から 1年半ほど経った 2020年1月
#RAKUSMeetup グループ企業のアーキテクチャ選定 • サービスのソフトウェアリプレイス的な計画 • 「マイクロサービスにするべきかどうか」 「コンテナの利用はどうか」 ◦ 聞き覚えのある検討項目
#RAKUSMeetup やってました
#RAKUSMeetup ※注意※ 今回のケース) 1年半経過 → 判断をそのまま流用していけない 「議論のスタート地点を前にずらす」イメージ この手の議論は想像以上に時間がかかるので 少しでもショートカットできるのは嬉しい
#RAKUSMeetup LADR の Pros / Cons Pros • 選定理由が記録に残る ◦
通常1年後には忘れている • 相談されたときに楽 ◦ 「あそこにあるよ」で済む • 新規メンバーの疑問解消 • 軽量だから更新が続く • 経緯を知った上で判断が出来る Cons • 記録するのがちょっと手間 ◦ しかし大した手間ではない • “LADR”が発音しにくい ◦ 今日も何度も噛んでます
#RAKUSMeetup 新サービス立ち上げに 向けた日々の取り組み
#RAKUSMeetup そもそも 新サービスの立ち上げは忙しい
#RAKUSMeetup 理想と現実 流行りのフレームワーク 話題の言語 最新のツール イケてる設計手法 改善された開発プロセス いつから マネタイズ できますか?
#RAKUSMeetup 新サービスの立ち上げは忙しい • リリースするまではコストにしかならない • 最低限の機能(MVP)でいち早いリリースが求められる • 「ノウハウのある技術で」となりがち • そもそも技術面より業務要件まとめる方が困難&優先
#RAKUSMeetup 開発の未来に先手をうつプロジェクト 2017年2月ごろから かいはつのみらいにせんてをうつ 「開発の未来に先手をうつ」かみせんプロジェクト としてプロジェクトが始動(命名は後日つけました)
#RAKUSMeetup 何やるの? • 今後使う見込みの技術を先行検証するプロジェクト • サービス横断的に選抜した4名でスタート ◦ 途中で1名追加参加 • 半期ごとに1テーマ、毎週5時間
• サービスへの導入を想定して検証 • ラクスは複数サービスあるので個別にやるとコスパが悪かった
#RAKUSMeetup 発足の経緯 技術の更新 やらんとあかんよな やりましょう 利益も あがってるしね 現場は漠然とした 不安感は持っていた 経営層からの
オーダー
#RAKUSMeetup 3年経って……順調に拡大中 • 「かみせんプロジェクト」→「技術推進プロジェクト」に改名 • プロジェクトを推進する担当部署が設立 • 参加メンバーも10名を超えました • テーマも複数テーマを並行して検証を進めています
#RAKUSMeetup 最近の成果は テックブログで公 開中 https://tech-blog.rakus.co.jp/archive/category/かみせん 『マイクロサービスアーキテクチャにおける サービス分割の難しさ』 『失敗しない機械学習プロジェクトの進め 方入門』
#RAKUSMeetup 宣伝
#RAKUSMeetup 明日はフロントエンドLT会 司会します Gatsby.jsテーマに ついて話します
#RAKUSMeetup Thank ☺ you • アーキテクチャ選定時は記録を残そう ◦ LADRはいいぞ ◦ 割とすぐに活用される
• 新サービス立ち上げに向けて備えをしよう ◦ 見えてからでは間に合わない(ことが多い)