2020.08.25 RAKUS Meetup 8月 LADRのすすめ&先行技術検証PRJの紹介
#RAKUSMeetup新サービス立ち上げ時の技術選定と、サービス立ち上げに向けたラクスの取り組み(仮)2020.8.25RAKUS Meetup Aug.Isamu Suzuki
View Slide
#RAKUSMeetup新サービス立ち上げ時の技術選定と、サービス立ち上げに向けたラクスの取り組み(仮)2020.8.25RAKUS Meetup Aug.Isamu Suzuki長い
#RAKUSMeetupLADRのすすめ&先行技術検証PRJの紹介2020.8.25RAKUS Meetup Aug.Isamu Suzuki
#RAKUSMeetup鈴木 勇 / Isamu Suzuki● 2013年にラクスへ中途入社● ガンプラ部 部長● 先行技術検証とかアーキテクチャ選定とか技術イベント司会とか● 上流から下流まで経験済みPjM含むフルスタック系● C/Java → JavaScript→ Python/TypeScrpt● 自宅にNuro光開通した● 約10年ぶりに自転車買った● Fat Project作者
#RAKUSMeetup今日話すこと● アーキテクチャ選定時にやると少し幸せになれること● 新規サービス立ち上げに向けてどんな活動をしているか
#RAKUSMeetup新サービスのアーキテクチャ選定
#RAKUSMeetup2018年楽楽労務立ち上げ
#RAKUSMeetup
#RAKUSMeetupこのときの社内の様子● 東京拠点の開発言語は主にJava ※● FWはSeasar2○ 新しめのサービスでも 2012年以前に開発開始● モノリシックアーキテクチャ● インフラはオンプレミス↑こうしている理由は長くいる人が 経験で何となく把握している感じ※大阪では主にPHPを使っています
#RAKUSMeetupなんにせよ
#RAKUSMeetup新しい技術を導入したりしなかったりすることになる新しい技術を導入したりしなかったりすることになる
#RAKUSMeetup「導入しなかった」記録を残したい● 「導入したもの」は後に残るので記録しなくても残りがち● 「導入しなかったもの」は後から見るとわからないことが多い○ 検討はしたのか?○ 検討の上でなぜ導入しなかったのか?○ 今後も導入すべきではないと判断したのか、その時点の事情なのか
#RAKUSMeetupLADRLightweight 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
#RAKUSMeetupLightweightなのでやることはかんたん● 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ご用意いたしました
#RAKUSMeetupmoomoo-ya / LADR-template● 完全日本語版● 何を書くべきなのかを記載● もちろん各自カスタムしていくとなお良きかと● 使いやすいMITライセンス● https://github.com/moomoo-ya/LADR-template
#RAKUSMeetupで、役に立つの?
#RAKUSMeetup2018年から1年半ほど経った2020年1月
#RAKUSMeetupグループ企業のアーキテクチャ選定● サービスのソフトウェアリプレイス的な計画● 「マイクロサービスにするべきかどうか」「コンテナの利用はどうか」○ 聞き覚えのある検討項目
#RAKUSMeetupやってました
#RAKUSMeetup※注意※今回のケース)1年半経過 → 判断をそのまま流用していけない「議論のスタート地点を前にずらす」イメージこの手の議論は想像以上に時間がかかるので少しでもショートカットできるのは嬉しい
#RAKUSMeetupLADR の Pros / ConsPros● 選定理由が記録に残る○ 通常1年後には忘れている● 相談されたときに楽○ 「あそこにあるよ」で済む● 新規メンバーの疑問解消● 軽量だから更新が続く● 経緯を知った上で判断が出来るCons● 記録するのがちょっと手間○ しかし大した手間ではない● “LADR”が発音しにくい○ 今日も何度も噛んでます
#RAKUSMeetup新サービス立ち上げに向けた日々の取り組み
#RAKUSMeetupそもそも新サービスの立ち上げは忙しい
#RAKUSMeetup理想と現実流行りのフレームワーク話題の言語最新のツールイケてる設計手法改善された開発プロセスいつからマネタイズできますか?
#RAKUSMeetup新サービスの立ち上げは忙しい● リリースするまではコストにしかならない● 最低限の機能(MVP)でいち早いリリースが求められる● 「ノウハウのある技術で」となりがち● そもそも技術面より業務要件まとめる方が困難&優先
#RAKUSMeetup開発の未来に先手をうつプロジェクト2017年2月ごろから かいはつのみらいにせんてをうつ「開発の未来に先手をうつ」かみせんプロジェクトとしてプロジェクトが始動(命名は後日つけました)
#RAKUSMeetup何やるの?● 今後使う見込みの技術を先行検証するプロジェクト● サービス横断的に選抜した4名でスタート○ 途中で1名追加参加● 半期ごとに1テーマ、毎週5時間● サービスへの導入を想定して検証● ラクスは複数サービスあるので個別にやるとコスパが悪かった
#RAKUSMeetup発足の経緯技術の更新やらんとあかんよなやりましょう利益もあがってるしね現場は漠然とした不安感は持っていた経営層からのオーダー
#RAKUSMeetup3年経って……順調に拡大中● 「かみせんプロジェクト」→「技術推進プロジェクト」に改名● プロジェクトを推進する担当部署が設立● 参加メンバーも10名を超えました● テーマも複数テーマを並行して検証を進めています
#RAKUSMeetup最近の成果はテックブログで公開中 https://tech-blog.rakus.co.jp/archive/category/かみせん『マイクロサービスアーキテクチャにおけるサービス分割の難しさ』『失敗しない機械学習プロジェクトの進め方入門』
#RAKUSMeetup宣伝
#RAKUSMeetup明日はフロントエンドLT会司会しますGatsby.jsテーマについて話します
#RAKUSMeetupThank ☺ you● アーキテクチャ選定時は記録を残そう○ LADRはいいぞ○ 割とすぐに活用される● 新サービス立ち上げに向けて備えをしよう○ 見えてからでは間に合わない(ことが多い)