LADRのすすめ&先行技術検証PRJの紹介 / Introducing-LADR-and-Technology-verification

0aa238a274c2397214b20d6eed58939b?s=47 moomoo-ya
August 25, 2020

LADRのすすめ&先行技術検証PRJの紹介 / Introducing-LADR-and-Technology-verification

2020.08.25
RAKUS Meetup 8月
LADRのすすめ&先行技術検証PRJの紹介

0aa238a274c2397214b20d6eed58939b?s=128

moomoo-ya

August 25, 2020
Tweet

Transcript

  1. #RAKUSMeetup 新サービス立ち上げ時の技術 選定と、サービス立ち上げに 向けたラクスの取り組み(仮) 2020.8.25 RAKUS Meetup Aug. Isamu Suzuki

  2. #RAKUSMeetup 新サービス立ち上げ時の技術 選定と、サービス立ち上げに 向けたラクスの取り組み(仮) 2020.8.25 RAKUS Meetup Aug. Isamu Suzuki

    長い
  3. #RAKUSMeetup LADRのすすめ& 先行技術検証PRJの紹介 2020.8.25 RAKUS Meetup Aug. Isamu Suzuki

  4. #RAKUSMeetup 鈴木 勇 / Isamu Suzuki • 2013年にラクスへ中途入社 • ガンプラ部

    部長 • 先行技術検証とかアーキテクチャ選 定とか技術イベント司会とか • 上流から下流まで経験済み PjM含むフルスタック系 • C/Java → JavaScript → Python/TypeScrpt • 自宅にNuro光開通した • 約10年ぶりに自転車買った • Fat Project作者
  5. #RAKUSMeetup 今日話すこと • アーキテクチャ選定時にやると少し幸せになれること • 新規サービス立ち上げに向けてどんな活動をしているか

  6. #RAKUSMeetup 新サービスの アーキテクチャ選定

  7. #RAKUSMeetup 2018年 楽楽労務立ち上げ

  8. #RAKUSMeetup

  9. #RAKUSMeetup このときの社内の様子 • 東京拠点の開発言語は主にJava ※ • FWはSeasar2 ◦ 新しめのサービスでも 2012年以前に開発開始

    • モノリシックアーキテクチャ • インフラはオンプレミス ↑こうしている理由は長くいる人が  経験で何となく把握している感じ ※大阪では主にPHPを使っています
  10. #RAKUSMeetup なんにせよ

  11. #RAKUSMeetup 新しい技術を 導入したりしなかったりすることになる 新しい技術を 導入したりしなかったりすることになる

  12. #RAKUSMeetup 「導入しなかった」記録を残したい • 「導入したもの」は後に残るので記録しなくても残りがち • 「導入しなかったもの」は後から見るとわからないことが多い ◦ 検討はしたのか? ◦ 検討の上でなぜ導入しなかったのか?

    ◦ 今後も導入すべきではないと判断したのか、その時点の事情なのか
  13. #RAKUSMeetup LADR Lightweight Architecture Decision Records

  14. #RAKUSMeetup • ADRは米Sabreの Michael Nygard氏発案 • ThoughtWorks社の Technology Radarで紹介 •

    技術要素を4段階評価 ◦ Hold:慎重に ◦ Assess:よく調査して ◦ Trial:挑戦の価値あり ◦ Adopt:採用を推奨 https://www.thoughtworks.com/radar/techniques/lightweight-architecture-decision-records
  15. #RAKUSMeetup • 2017年11月にAdoptに昇格 • 要約すると ◦ 重要なアーキテクチャーの意思決定を、 その文脈や結果とともに記録するための テクニック ◦

    WikiやWebサイトではなくコード管理に 含むことを推奨 ◦ ほとんどのプロジェクトで採用しない理由 がない https://www.thoughtworks.com/radar/techniques/lightweight-architecture-decision-records
  16. #RAKUSMeetup Lightweightなのでやることはかんたん • ADRのフォーマットを決める • アーキテクチャ選定の意思決定 • フォーマットに従って記録 • ソース管理(gitなど)に格納

  17. #RAKUSMeetup . . .

  18. #RAKUSMeetup 要領わかんないし、フォーマット決めるのが面倒

  19. #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
  20. #RAKUSMeetup . . .

  21. #RAKUSMeetup 何を記録すればよいのか ニュアンスがわかりにくい

  22. #RAKUSMeetup ご用意いたしました

  23. #RAKUSMeetup moomoo-ya / LADR-template • 完全日本語版 • 何を書くべきなのかを記載 • もちろん各自カスタムしていくと

    なお良きかと • 使いやすいMITライセンス • https://github.com/moomoo-y a/LADR-template
  24. #RAKUSMeetup

  25. #RAKUSMeetup で、役に立つの?

  26. #RAKUSMeetup 2018年から 1年半ほど経った 2020年1月

  27. #RAKUSMeetup グループ企業のアーキテクチャ選定 • サービスのソフトウェアリプレイス的な計画 • 「マイクロサービスにするべきかどうか」 「コンテナの利用はどうか」 ◦ 聞き覚えのある検討項目

  28. #RAKUSMeetup やってました

  29. #RAKUSMeetup ※注意※ 今回のケース) 1年半経過 → 判断をそのまま流用していけない 「議論のスタート地点を前にずらす」イメージ この手の議論は想像以上に時間がかかるので 少しでもショートカットできるのは嬉しい

  30. #RAKUSMeetup LADR の Pros / Cons Pros • 選定理由が記録に残る ◦

    通常1年後には忘れている • 相談されたときに楽 ◦ 「あそこにあるよ」で済む • 新規メンバーの疑問解消 • 軽量だから更新が続く • 経緯を知った上で判断が出来る Cons • 記録するのがちょっと手間 ◦ しかし大した手間ではない • “LADR”が発音しにくい ◦ 今日も何度も噛んでます
  31. #RAKUSMeetup 新サービス立ち上げに 向けた日々の取り組み

  32. #RAKUSMeetup そもそも 新サービスの立ち上げは忙しい

  33. #RAKUSMeetup 理想と現実 流行りのフレームワーク 話題の言語 最新のツール イケてる設計手法 改善された開発プロセス いつから マネタイズ できますか?

  34. #RAKUSMeetup 新サービスの立ち上げは忙しい • リリースするまではコストにしかならない • 最低限の機能(MVP)でいち早いリリースが求められる • 「ノウハウのある技術で」となりがち • そもそも技術面より業務要件まとめる方が困難&優先

  35. #RAKUSMeetup 開発の未来に先手をうつプロジェクト 2017年2月ごろから   かいはつのみらいにせんてをうつ 「開発の未来に先手をうつ」かみせんプロジェクト としてプロジェクトが始動(命名は後日つけました)

  36. #RAKUSMeetup 何やるの? • 今後使う見込みの技術を先行検証するプロジェクト • サービス横断的に選抜した4名でスタート ◦ 途中で1名追加参加 • 半期ごとに1テーマ、毎週5時間

    • サービスへの導入を想定して検証 • ラクスは複数サービスあるので個別にやるとコスパが悪かった
  37. #RAKUSMeetup 発足の経緯 技術の更新 やらんとあかんよな やりましょう 利益も あがってるしね 現場は漠然とした 不安感は持っていた 経営層からの

    オーダー
  38. #RAKUSMeetup 3年経って……順調に拡大中 • 「かみせんプロジェクト」→「技術推進プロジェクト」に改名 • プロジェクトを推進する担当部署が設立 • 参加メンバーも10名を超えました • テーマも複数テーマを並行して検証を進めています

  39. #RAKUSMeetup 最近の成果は テックブログで公 開中 https://tech-blog.rakus.co.jp/archive/category/かみせん 『マイクロサービスアーキテクチャにおける サービス分割の難しさ』 『失敗しない機械学習プロジェクトの進め 方入門』

  40. #RAKUSMeetup 宣伝

  41. #RAKUSMeetup 明日はフロントエンドLT会 司会します Gatsby.jsテーマに ついて話します

  42. #RAKUSMeetup Thank ☺ you • アーキテクチャ選定時は記録を残そう ◦ LADRはいいぞ ◦ 割とすぐに活用される

    • 新サービス立ち上げに向けて備えをしよう ◦ 見えてからでは間に合わない(ことが多い)