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 CTO室 リードエンジニア 経歴:

    ソニー株式会社 技術開発部門 → EdTech系新規事業 フリーランス 2019年12月より現職 (主にインフラ担当) 2
  2. © LayerX Inc. プロジェクトタイムライン 5 2020年8月 2020年10月 2020年11月 2020年12月 2021年1月

    2021年4月 プロジェクト開始 『バックオフィスのDX』 クローズドαリリース LayerX インボイス 開発開始 『請求書AIクラウド』 クローズドβリリース 正式リリース ワークフロー機能 リリース
  3. © LayerX Inc. 技術スタック • フロントエンド : Nuxt + TypeScript

    • バックエンド : Go • データベース : MySQL • インフラ : AWS 6
  4. © LayerX Inc. プロジェクト開始時点のアーキテクチャ構成 7 Amazon CloudFront • 最低限のリソースのみを使用したシンプルな構成 •

    アプリもモノリス • 非同期処理や自動バッチ処理はなし ◦ バッチは必要に応じて local環境から実施 • マネージドサービスを活用して運用コストを下げる ◦ バックアップやスケーリングなど • 一方で、セキュリティは最初からきちんと設計する ◦ security group、IAM、KMS、etc. ◦ これらは後からやろうとするとコストが かかるので、最初から構成に組み込んでおく ◦ 「明日から本番運用開始」となっても 大幅な変更なくすぐに対応できるように Amazon S3 Elastic Load Balancing AWS Fargate Amazon Aurora Amazon S3
  5. © LayerX Inc. クローズドαリリース時点の構成 8 • UX向上のためバックエンド処理の一部を非同期化 • APIサーバとは別に非同期ジョブ処理用の コンテナを立ち上げ、ジョブキューを介して

    メッセージをやり取り • ジョブの進捗管理やエラー時のリトライ処理、 重複制御や冪等性の担保などをケアする必要あり Amazon S3 Amazon CloudFront Elastic Load Balancing AWS Fargate Amazon Aurora Amazon S3 Amazon SQS AWS Fargate
  6. © 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 インボイス
  7. © 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
  8. © LayerX Inc. SaaSの活用 vs 自社開発 • メール送受信機能 : SendGrid

    ◦ Inbound Parse Webhookという受信したメールを HTTPで転送してくれる機能が非常に便利 • ユーザー認証機能 : 自社開発 ◦ Amazon CognitoやAuth0などを検証したが結局自社開発することに 12
  9. © LayerX Inc. まとめ • コンセプト検証段階(PMF以前)は作り込みすぎない ◦ 作るものが大きく変わったり捨てる可能性もあるので、捨てても惜しくないように • マネージドサービスやSaaSを積極的に活用する

    ◦ 自分たちが本来やるべきことに集中する ◦ これらでは要件を満たせなくなったら自社での開発・運用を考える • 横展開しやすいように、プロジェクトとして「型」を持っておく ◦ 流用できるように資産としてストックする ◦ 開発が進めば進むほどレバレッジを効かせることができる 13
  10. © LayerX Inc. AWS Summit Online 2021 14 2021/5/12 (水)

    17:00 - 17:30 CI/CDパイプライン、TerraformによるIaC、AWSマルチアカウント管理など 今日話してない内容盛り沢山です!是非ご覧ください!
  11. © 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