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

How to develop LayerX INVOICE efficiently

shnjtk
April 27, 2021

How to develop LayerX INVOICE efficiently

shnjtk

April 27, 2021
Tweet

More Decks by shnjtk

Other Decks in Technology

Transcript

  1. © LayerX Inc.
    LayerX インボイス
    効率的な開発を目指して
    AWS Startup Tech Meetup Online #4

    View full-size slide

  2. © LayerX Inc.
    自己紹介
    高江 信次
    株式会社LayerX
    CTO室 リードエンジニア
    経歴:
    ソニー株式会社 技術開発部門 → EdTech系新規事業
    フリーランス
    2019年12月より現職 (主にインフラ担当)
    2

    View full-size slide

  3. © LayerX Inc.
    今日話すこと
    LayerX インボイスを短期間で開発し早期リリースするために
    プロジェクトの初期段階からリリースを経て現在までの各フェーズで
    どのように取り組んだかについてご紹介
    3

    View full-size slide

  4. © LayerX Inc.
    LayerX インボイスとは
    4
    https://www.layerx.jp/invoice
    『請求書処理を、手入力ゼロに』

    View full-size slide

  5. © LayerX Inc.
    プロジェクトタイムライン
    5
    2020年8月
    2020年10月
    2020年11月
    2020年12月
    2021年1月
    2021年4月
    プロジェクト開始 『バックオフィスのDX』
    クローズドαリリース
    LayerX インボイス 開発開始 『請求書AIクラウド』
    クローズドβリリース
    正式リリース
    ワークフロー機能 リリース

    View full-size slide

  6. © LayerX Inc.
    技術スタック
    ● フロントエンド : Nuxt + TypeScript
    ● バックエンド : Go
    ● データベース : MySQL
    ● インフラ : AWS
    6

    View full-size slide

  7. © LayerX Inc.
    プロジェクト開始時点のアーキテクチャ構成
    7
    Amazon CloudFront
    ● 最低限のリソースのみを使用したシンプルな構成
    ● アプリもモノリス
    ● 非同期処理や自動バッチ処理はなし
    ○ バッチは必要に応じて local環境から実施
    ● マネージドサービスを活用して運用コストを下げる
    ○ バックアップやスケーリングなど
    ● 一方で、セキュリティは最初からきちんと設計する
    ○ security group、IAM、KMS、etc.
    ○ これらは後からやろうとするとコストが
    かかるので、最初から構成に組み込んでおく
    ○ 「明日から本番運用開始」となっても
    大幅な変更なくすぐに対応できるように
    Amazon S3
    Elastic Load Balancing AWS Fargate
    Amazon Aurora
    Amazon S3

    View full-size slide

  8. © LayerX Inc.
    クローズドαリリース時点の構成
    8
    ● UX向上のためバックエンド処理の一部を非同期化
    ● APIサーバとは別に非同期ジョブ処理用の
    コンテナを立ち上げ、ジョブキューを介して
    メッセージをやり取り
    ● ジョブの進捗管理やエラー時のリトライ処理、
    重複制御や冪等性の担保などをケアする必要あり
    Amazon S3
    Amazon CloudFront
    Elastic Load Balancing AWS Fargate
    Amazon Aurora
    Amazon S3
    Amazon SQS AWS Fargate

    View full-size slide

  9. © LayerX Inc.
    クローズドβ〜正式リリース時点の構成
    9
    ● 今後のサービス展開を見据え、
    ユーザー情報&セッション管理機能を切り出して
    ID管理基盤として独立したサービスに
    ● それまでの構成を流用することで立ち上げの
    期間を短縮
    ● βリリースから正式リリースまでの間にも細かな改善を
    実施
    ● 正式リリースのための特別な作業はなく、
    早期リリースを実現
    Amazon CloudFront
    Elastic Load Balancing AWS Fargate
    Amazon S3
    Amazon Aurora
    Amazon CloudFront
    Elastic Load Balancing
    Amazon S3
    AWS Fargate Amazon SQS
    Amazon S3
    AWS Fargate
    ID管理基盤
    LayerX インボイス

    View full-size slide

  10. © LayerX Inc.
    ワークフロー機能リリース時点の構成
    10
    ● LayerX インボイス、ID管理基盤で基本的な『型』がで
    きていたので、アプリもインフラも
    既存資産の大部分を流用
    ● 結果、ワークフロー機能としてのアプリ開発以外の部
    分については所要期間をさらに大幅に短縮
    Amazon CloudFront
    Elastic Load Balancing AWS Fargate
    Amazon S3
    Amazon Aurora
    Amazon CloudFront
    Elastic Load Balancing
    Amazon S3
    AWS Fargate Amazon SQS
    Amazon S3
    AWS Fargate
    ワークフロー
    LayerX インボイス
    Amazon CloudFront
    Elastic Load Balancing AWS Fargate
    Amazon S3
    ID管理基盤
    Amazon SQS
    Amazon S3
    AWS Fargate

    View full-size slide

  11. © LayerX Inc.
    インフラ開発に要した期間
    ● LayerX インボイス : 2週間〜1ヶ月
    ● ID管理基盤 : 1週間
    ● ワークフロー機能 : 2日
    11

    View full-size slide

  12. © LayerX Inc.
    SaaSの活用 vs 自社開発
    ● メール送受信機能 : SendGrid
    ○ Inbound Parse Webhookという受信したメールを HTTPで転送してくれる機能が非常に便利
    ● ユーザー認証機能 : 自社開発
    ○ Amazon CognitoやAuth0などを検証したが結局自社開発することに
    12

    View full-size slide

  13. © LayerX Inc.
    まとめ
    ● コンセプト検証段階(PMF以前)は作り込みすぎない
    ○ 作るものが大きく変わったり捨てる可能性もあるので、捨てても惜しくないように
    ● マネージドサービスやSaaSを積極的に活用する
    ○ 自分たちが本来やるべきことに集中する
    ○ これらでは要件を満たせなくなったら自社での開発・運用を考える
    ● 横展開しやすいように、プロジェクトとして「型」を持っておく
    ○ 流用できるように資産としてストックする
    ○ 開発が進めば進むほどレバレッジを効かせることができる
    13

    View full-size slide

  14. © LayerX Inc.
    AWS Summit Online 2021
    14
    2021/5/12 (水) 17:00 - 17:30
    CI/CDパイプライン、TerraformによるIaC、AWSマルチアカウント管理など
    今日話してない内容盛り沢山です!是非ご覧ください!

    View full-size slide

  15. © LayerX Inc.
    エンジニア募集中!!
    ● 「ブロックチェーン詳しくないけど大丈夫?」とよく聞かれますが
    全く問題ありません! Web開発もやってます!
    ● 最近はGraphQLも始めました
    ● まずはカジュアルに話を聞いてみたいというレベルでも全然OKですので
    お気軽にご連絡ください!
    ● Tech Blog 『LayerX ENGINEERS’』
    ○ https://tech.layerx.co.jp/
    ● Podcast 『LayerX NOW!』
    ○ https://anchor.fm/layerx
    15
    https://herp.careers/v1/layerx

    View full-size slide