Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

moomoo-ya
August 25, 2020

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

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

moomoo-ya

August 25, 2020
Tweet

More Decks by moomoo-ya

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. #RAKUSMeetup
    鈴木 勇 / Isamu Suzuki
    ● 2013年にラクスへ中途入社
    ● ガンプラ部 部長
    ● 先行技術検証とかアーキテクチャ選
    定とか技術イベント司会とか
    ● 上流から下流まで経験済み
    PjM含むフルスタック系
    ● C/Java → JavaScript
    → Python/TypeScrpt
    ● 自宅にNuro光開通した
    ● 約10年ぶりに自転車買った
    ● Fat Project作者

    View Slide

  5. #RAKUSMeetup
    今日話すこと
    ● アーキテクチャ選定時にやると少し幸せになれること
    ● 新規サービス立ち上げに向けてどんな活動をしているか

    View Slide

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

    View Slide

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

    View Slide

  8. #RAKUSMeetup

    View Slide

  9. #RAKUSMeetup
    このときの社内の様子
    ● 東京拠点の開発言語は主にJava ※
    ● FWはSeasar2
    ○ 新しめのサービスでも 2012年以前に開発開始
    ● モノリシックアーキテクチャ
    ● インフラはオンプレミス
    ↑こうしている理由は長くいる人が
     経験で何となく把握している感じ
    ※大阪では主にPHPを使っています

    View Slide

  10. #RAKUSMeetup
    なんにせよ

    View Slide

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

    View Slide

  12. #RAKUSMeetup
    「導入しなかった」記録を残したい
    ● 「導入したもの」は後に残るので記録しなくても残りがち
    ● 「導入しなかったもの」は後から見るとわからないことが多い
    ○ 検討はしたのか?
    ○ 検討の上でなぜ導入しなかったのか?
    ○ 今後も導入すべきではないと判断したのか、その時点の事情なのか

    View Slide

  13. #RAKUSMeetup
    LADR
    Lightweight Architecture Decision Records

    View Slide

  14. #RAKUSMeetup
    ● ADRは米Sabreの
    Michael Nygard氏発案
    ● ThoughtWorks社の
    Technology Radarで紹介
    ● 技術要素を4段階評価
    ○ Hold:慎重に
    ○ Assess:よく調査して
    ○ Trial:挑戦の価値あり
    ○ Adopt:採用を推奨
    https://www.thoughtworks.com/radar/techniques/lightweight-architecture-decision-records

    View Slide

  15. #RAKUSMeetup
    ● 2017年11月にAdoptに昇格
    ● 要約すると
    ○ 重要なアーキテクチャーの意思決定を、
    その文脈や結果とともに記録するための
    テクニック
    ○ WikiやWebサイトではなくコード管理に
    含むことを推奨
    ○ ほとんどのプロジェクトで採用しない理由
    がない
    https://www.thoughtworks.com/radar/techniques/lightweight-architecture-decision-records

    View Slide

  16. #RAKUSMeetup
    Lightweightなのでやることはかんたん
    ● ADRのフォーマットを決める
    ● アーキテクチャ選定の意思決定
    ● フォーマットに従って記録
    ● ソース管理(gitなど)に格納

    View Slide

  17. #RAKUSMeetup
    . . .

    View Slide

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

    View Slide

  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

    View Slide

  20. #RAKUSMeetup
    . . .

    View Slide

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

    View Slide

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

    View Slide

  23. #RAKUSMeetup
    moomoo-ya / LADR-template
    ● 完全日本語版
    ● 何を書くべきなのかを記載
    ● もちろん各自カスタムしていくと
    なお良きかと
    ● 使いやすいMITライセンス
    ● https://github.com/moomoo-y
    a/LADR-template

    View Slide

  24. #RAKUSMeetup

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  28. #RAKUSMeetup
    やってました

    View Slide

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

    View Slide

  30. #RAKUSMeetup
    LADR の Pros / Cons
    Pros
    ● 選定理由が記録に残る
    ○ 通常1年後には忘れている
    ● 相談されたときに楽
    ○ 「あそこにあるよ」で済む
    ● 新規メンバーの疑問解消
    ● 軽量だから更新が続く
    ● 経緯を知った上で判断が出来る
    Cons
    ● 記録するのがちょっと手間
    ○ しかし大した手間ではない
    ● “LADR”が発音しにくい
    ○ 今日も何度も噛んでます

    View Slide

  31. #RAKUSMeetup
    新サービス立ち上げに
    向けた日々の取り組み

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  36. #RAKUSMeetup
    何やるの?
    ● 今後使う見込みの技術を先行検証するプロジェクト
    ● サービス横断的に選抜した4名でスタート
    ○ 途中で1名追加参加
    ● 半期ごとに1テーマ、毎週5時間
    ● サービスへの導入を想定して検証
    ● ラクスは複数サービスあるので個別にやるとコスパが悪かった

    View Slide

  37. #RAKUSMeetup
    発足の経緯
    技術の更新
    やらんとあかんよな
    やりましょう
    利益も
    あがってるしね
    現場は漠然とした
    不安感は持っていた
    経営層からの
    オーダー

    View Slide

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

    View Slide

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

    View Slide

  40. #RAKUSMeetup
    宣伝

    View Slide

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

    View Slide

  42. #RAKUSMeetup
    Thank ☺ you
    ● アーキテクチャ選定時は記録を残そう
    ○ LADRはいいぞ
    ○ 割とすぐに活用される
    ● 新サービス立ち上げに向けて備えをしよう
    ○ 見えてからでは間に合わない(ことが多い)

    View Slide