2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Memo] バックエンドAPIを作る際にいつも気にすること

Last updated at Posted at 2024-03-06

アーキテクチャ

  • リポジトリ構成
    • モノレポ or マルチレポ
    • Gitブランチ戦略
  • マイクロサービスの切り方
  • インタフェース仕様
    • RESTful / GraphQL / gRPC
    • レスポンス形状(JSON / XML etc.)

言語・フレームワーク・ミドルウェア

  • フルスタックフレームワーク or 軽量フレームワーク
  • DBMS
  • キャッシュ(KVS等)
  • 非同期/並行処理
  • ストリーム処理

インフラ

  • サーバ構築自動化
  • コンテナ化するかどうか
  • 物理サーバ(Baremetal) or IaaS or PaaS or SaaS or CaaS (Kubernetes)
  • サービスメッシュ
  • デプロイするサーバ
    • 台数
    • 地理的な場所(DC、AZ、Region)
  • コンピューティングリソース(CPU/RAM/Disk/ネットワーク帯域)

共通ロジック

  • クラス構造
    • 3層アーキテクチャ / オニオンアーキテクチャ etc.
    • DIの有無
  • タイムアウト
  • リトライ
  • サーキットブレーカー
  • レート制限
  • ログ設計
  • O/Rマッパー
  • 内部通信
    • HTTPS / HTTP2
  • ヘルスチェック / Probe
  • 設定ファイル中央管理

セキュリティ

  • 認証・認可
  • クレデンシャル管理

CI/CD

  • リンター、フォーマッター
  • 静的解析
  • ユニットテストフレームワーク
  • 自動脆弱性診断

監視

  • ログ、ログローテーション
  • インフラ監視
  • APM
  • アラート

テスト

  • テスト環境(Local / STG)
    • テスト環境構築自動化
  • スモークテスト
  • 負荷試験
    • 環境
    • 要件
  • Webパフォーマンスチェック(Core Web Vitals / Lighthouse)

リリース

  • リリース戦略
    • ロールバック
    • カナリアリリース / ブルーグリーン
  • 新旧システム移行戦略
    • データ不整合検知
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?